final Map m = new Map(RubyHelper.toInt(o, "@width"), RubyHelper.toInt(o, "@height"));
m.setFilename(RGSS1Load.getMapFile(project, id));
m.setProject(project);
m.setMid(id);
TileSet autotiles = buildAutoTileset(RubyHelper.toInt(o, "@tileset_id"));
m.addTileset(autotiles);
TileSet tileset = buildTileset(RubyHelper.toInt(o, "@tileset_id"));
m.addTileset(tileset);
m.setTileHeight(32);
m.setTileWidth(32);
// tileset.
// def [](x,y=0,z=0)
// @data[x+y*@xsize+z*@xsize*@ysize]
// build layers
// load map data
IRubyObject[] data = ((RubyArray) ((RubyObject) o.getInstanceVariable("@data")).getInstanceVariable("@data")).toJavaArray();
final String[] names = { "Down", "Middle", "Up" };
int z = 0;
for (final String a : names) {
final TileLayer l = (TileLayer) m.addLayer();
l.setName(a);
// set tiles
for (int x = 0, u = m.getWidth(); x < u; x++) {
for (int y = 0, v = m.getHeight(); y < v; y++) {
int tid = Integer.valueOf(data[x + y * u + z * u * v].toString());
// get id
if (tid < 384) {
l.setTileAt(x, y, autotiles.getTile(tid));
} else {
// t.setId(((Long) data[x + y * u + z * u * v]);
l.setTileAt(x, y, tileset.getTile(tid - 384));
}
}
}
z++;
}