add TilePrefab saving

This commit is contained in:
Gered 2013-10-14 22:29:26 -04:00
parent 41c7dce4f4
commit a64683f74b

View file

@ -34,4 +34,25 @@ public class TilePrefabLoader {
return prefab;
}
public static void save(TilePrefab prefab, String outputFilename) {
if (prefab == null)
throw new IllegalArgumentException();
JsonTilePrefab jsonPrefab = new JsonTilePrefab();
jsonPrefab.width = prefab.getWidth();
jsonPrefab.height = prefab.getHeight();
jsonPrefab.depth = prefab.getDepth();
byte[] dataBytes = new byte[prefab.getData().length * TileDataSerializer.TILE_SIZE_BYTES];
ByteBuffer buffer = ByteBuffer.wrap(dataBytes);
TileDataSerializer.serialize(prefab, buffer);
jsonPrefab.data = new String(Base64Coder.encode(dataBytes));
Json json = new Json();
String output = json.prettyPrint(jsonPrefab);
FileHandle outputFile = Gdx.files.local(outputFilename);
outputFile.writeString(output, false);
}
}