id = id & ~MASK_CLEAR;
tilesets.getTile(id);
TiledMapTile tile = tilesets.getTile(id);
if (tile != null) {
Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally);
cell.setTile(tile);
layer.setCell(x, yUp ? height - 1 - y : y, cell);
}
}
}
} else {
if (encoding.equals("base64")) {
byte[] bytes = Base64Coder.decode(data.getText());
if (compression == null) {
int read = 0;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int id = unsignedByteToInt(bytes[read++]) | unsignedByteToInt(bytes[read++]) << 8
| unsignedByteToInt(bytes[read++]) << 16 | unsignedByteToInt(bytes[read++]) << 24;
final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);
id = id & ~MASK_CLEAR;
tilesets.getTile(id);
TiledMapTile tile = tilesets.getTile(id);
if (tile != null) {
Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally);
cell.setTile(tile);
layer.setCell(x, yUp ? height - 1 - y : y, cell);
}
}
}
} else if (compression.equals("gzip")) {
GZIPInputStream GZIS = null;
try {
GZIS = new GZIPInputStream(new ByteArrayInputStream(bytes), bytes.length);
} catch (IOException e) {
throw new GdxRuntimeException("Error Reading TMX Layer Data - IOException: " + e.getMessage());
}
byte[] temp = new byte[4];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
try {
GZIS.read(temp, 0, 4);
int id = unsignedByteToInt(temp[0]) | unsignedByteToInt(temp[1]) << 8
| unsignedByteToInt(temp[2]) << 16 | unsignedByteToInt(temp[3]) << 24;
final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);
id = id & ~MASK_CLEAR;
tilesets.getTile(id);
TiledMapTile tile = tilesets.getTile(id);
if (tile != null) {
Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally);
cell.setTile(tile);
layer.setCell(x, yUp ? height - 1 - y : y, cell);
}
} catch (IOException e) {
throw new GdxRuntimeException("Error Reading TMX Layer Data.", e);
}
}
}
} else if (compression.equals("zlib")) {
Inflater zlib = new Inflater();
byte[] temp = new byte[4];
zlib.setInput(bytes, 0, bytes.length);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
try {
zlib.inflate(temp, 0, 4);
int id = unsignedByteToInt(temp[0]) | unsignedByteToInt(temp[1]) << 8
| unsignedByteToInt(temp[2]) << 16 | unsignedByteToInt(temp[3]) << 24;
final boolean flipHorizontally = ((id & FLAG_FLIP_HORIZONTALLY) != 0);
final boolean flipVertically = ((id & FLAG_FLIP_VERTICALLY) != 0);
final boolean flipDiagonally = ((id & FLAG_FLIP_DIAGONALLY) != 0);
id = id & ~MASK_CLEAR;
tilesets.getTile(id);
TiledMapTile tile = tilesets.getTile(id);
if (tile != null) {
Cell cell = createTileLayerCell(flipHorizontally, flipVertically, flipDiagonally);
cell.setTile(tile);
layer.setCell(x, yUp ? height - 1 - y : y, cell);
}
} catch (DataFormatException e) {
throw new GdxRuntimeException("Error Reading TMX Layer Data.", e);