tile-names: BuildingInfo: allow dyn-numbered tiles

This commit is contained in:
Jason Long 2014-06-21 21:04:07 -04:00
parent f136a3f4f4
commit d0fbfd92a2
4 changed files with 12 additions and 12 deletions

View file

@ -170,7 +170,7 @@ class MapScanner extends TileBehavior
{ {
for (int x = xorg; x < xorg+bi.width; x++) for (int x = xorg; x < xorg+bi.width; x++)
{ {
city.setTile(x, y, (char) bi.members[i]); city.setTile(x, y, (char) bi.members[i].tileNumber);
i++; i++;
} }
} }
@ -406,7 +406,7 @@ class MapScanner extends TileBehavior
int xx = xorg + x; int xx = xorg + x;
int yy = yorg + y; int yy = yorg + y;
TileSpec ts = Tiles.get(bi.members[i]); TileSpec ts = bi.members[i];
if (powerOn && ts.onPower != null) { if (powerOn && ts.onPower != null) {
ts = ts.onPower; ts = ts.onPower;
} }

View file

@ -60,7 +60,7 @@ public class TileSpec
{ {
int width; int width;
int height; int height;
short [] members; TileSpec [] members;
} }
public BuildingInfo getBuildingInfo() public BuildingInfo getBuildingInfo()
@ -79,14 +79,14 @@ public class TileSpec
bi.width = Integer.parseInt(p2[0]); bi.width = Integer.parseInt(p2[0]);
bi.height = Integer.parseInt(p2[1]); bi.height = Integer.parseInt(p2[1]);
bi.members = new short[bi.width*bi.height]; bi.members = new TileSpec[bi.width*bi.height];
int startTile = tileNumber; int startTile = Integer.parseInt(name);
if (bi.width >= 3) { startTile--; } if (bi.width >= 3) { startTile--; }
if (bi.height >= 3) { startTile -= bi.width; } if (bi.height >= 3) { startTile -= bi.width; }
for (int row = 0; row < bi.height; row++) { for (int row = 0; row < bi.height; row++) {
for (int col = 0; col < bi.width; col++) { for (int col = 0; col < bi.width; col++) {
bi.members[row*bi.width+col] = (short)startTile; bi.members[row*bi.width+col] = tileMap.get(Integer.toString(startTile));
startTile++; startTile++;
} }
} }

View file

@ -64,17 +64,17 @@ public class Tiles
TileSpec.BuildingInfo bi = tiles[i].getBuildingInfo(); TileSpec.BuildingInfo bi = tiles[i].getBuildingInfo();
if (bi != null) { if (bi != null) {
for (int j = 0; j < bi.members.length; j++) { for (int j = 0; j < bi.members.length; j++) {
int tid = bi.members[j]; TileSpec memberTile = bi.members[j];
int offx = (bi.width >= 3 ? -1 : 0) + j % bi.width; int offx = (bi.width >= 3 ? -1 : 0) + j % bi.width;
int offy = (bi.height >= 3 ? -1 : 0) + j / bi.width; int offy = (bi.height >= 3 ? -1 : 0) + j / bi.width;
if (tiles[tid].owner == null && if (memberTile.owner == null &&
(offx != 0 || offy != 0) (offx != 0 || offy != 0)
) )
{ {
tiles[tid].owner = tiles[i]; memberTile.owner = tiles[i];
tiles[tid].ownerOffsetX = offx; memberTile.ownerOffsetX = offx;
tiles[tid].ownerOffsetY = offy; memberTile.ownerOffsetY = offy;
} }
} }
} }

View file

@ -164,7 +164,7 @@ public class ToolStroke
{ {
for (int columnNum = 0; columnNum < bi.width; columnNum++) for (int columnNum = 0; columnNum < bi.width; columnNum++)
{ {
eff.setTile(columnNum, rowNum, (char) bi.members[i]); eff.setTile(columnNum, rowNum, (char) bi.members[i].tileNumber);
i++; i++;
} }
} }