tile-names: change format of relative building offsets
This commit is contained in:
parent
d3009d1b9f
commit
de36ad6590
1 changed files with 19 additions and 3 deletions
|
@ -97,9 +97,7 @@ public class TileSpec
|
||||||
int mrow = bi.height >= 3 ? -1 : 0;
|
int mrow = bi.height >= 3 ? -1 : 0;
|
||||||
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++) {
|
||||||
String n = this.name + (
|
String n = this.name + makeOffsetSuffix(col+mcol, row+mrow);
|
||||||
(row + mrow == 0 && col + mcol == 0) ? "" :
|
|
||||||
("@"+(col+mcol)+","+(row+mrow)));
|
|
||||||
bi.members[row*bi.width+col] = tileMap.get(n);
|
bi.members[row*bi.width+col] = tileMap.get(n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,6 +106,24 @@ public class TileSpec
|
||||||
this.buildingInfo = bi;
|
this.buildingInfo = bi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate the suffix used to identify a member tile of a building.
|
||||||
|
* E.g. for the tile directly north of the center tile, the suffix is
|
||||||
|
* "{@literal @}N1". For the tile southeast of the center tile, the
|
||||||
|
* suffix is "{@literal @}S1E1". For the center tile itself, the suffix
|
||||||
|
* is an empty string.
|
||||||
|
*/
|
||||||
|
static String makeOffsetSuffix(int dx, int dy)
|
||||||
|
{
|
||||||
|
if (dx == 0 && dy == 0) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "@" +
|
||||||
|
(dy > 0 ? ("S"+dy) : dy < 0 ? ("N"+(-dy)) : "") +
|
||||||
|
(dx > 0 ? ("E"+dx) : dx < 0 ? ("W"+(-dx)) : "");
|
||||||
|
}
|
||||||
|
|
||||||
public CityDimension getBuildingSize()
|
public CityDimension getBuildingSize()
|
||||||
{
|
{
|
||||||
if (buildingInfo != null) {
|
if (buildingInfo != null) {
|
||||||
|
|
Reference in a new issue