add Tile/TileChunk serialization helpers
This commit is contained in:
parent
a8cec9b065
commit
f02b511949
|
@ -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;
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue