add Tile/TileChunk serialization helpers

This commit is contained in:
Gered 2013-07-18 19:18:35 -04:00
parent a8cec9b065
commit f02b511949
2 changed files with 40 additions and 0 deletions

View file

@ -23,6 +23,10 @@ public class TileChunk extends TileContainer implements Disposable {
public TileChunkMesh alphaMesh;
public final TileMap tileMap;
public Tile[] getData() {
return data;
}
@Override
public int getWidth() {
return width;

View file

@ -0,0 +1,36 @@
package com.blarg.gdx.tilemap3d.serialization;
import com.blarg.gdx.tilemap3d.Tile;
import com.blarg.gdx.tilemap3d.TileChunk;
import java.nio.ByteBuffer;
public class TileChunkSerializer {
public static void serialize(TileChunk chunk, ByteBuffer buffer) {
Tile[] tiles = chunk.getData();
for (int i = 0; i < tiles.length; ++i)
serialize(tiles[i], buffer);
}
public static void deserialize(ByteBuffer buffer, TileChunk out) {
Tile[] tiles = out.getData();
for (int i = 0; i < tiles.length; ++i)
deserialize(buffer, tiles[i]);
}
public static void serialize(Tile tile, ByteBuffer buffer) {
buffer.putShort(tile.tile);
buffer.putShort(tile.flags);
buffer.put(tile.tileLight);
buffer.put(tile.skyLight);
buffer.putInt(tile.color);
}
public static void deserialize(ByteBuffer buffer, Tile out) {
out.tile = buffer.getShort();
out.flags = buffer.getShort();
out.tileLight = buffer.get();
out.skyLight = buffer.get();
out.color = buffer.getInt();
}
}