zztong
Well-known member
A number of players have requested an Airport POI. Yet, the scale of such a POI presents a challenge. If we were to mimic an actual regional airport runway, we'd need 1500 blocks in length, or more. That's 10 Tiles (unless you make the runway run diagonally along the hypotenuse of a square area).
Obviously, POI designers take liberties with scale. How many blocks makes a reasonable runway? Unless the answer is less than 150, you need more than one tile. If you settle on 100 blocks of runway to allow for various runway trappings (lights, barriers), then your runway will be rivaled by the in-game equivalent of the Walmart parking lot.
An idea for getting around this is having a way to specify groups of Tiles that appear together in a predictable pattern. The following example XML attempts to suggest letting folks define a District in grid form, specifying which Tiles are placed where, how they are rotated, and how other tiles can connect to them. As a District, it could be part of a larger city. Or, the District could be the only District of some custom settlement.
A 2x2 Grid is depicted. I suspect an airport would probably need to be 3x2, but its the grid concept that matters, probably not any potential limits on max dimensions.
<rwgmixer>
<!-- Defines an Airport as a City District of type "Grid" -->
<!-- Alternatively, the presence of a "grid" property might be enough. -->
<district name="airport" type="grid">
<property name="district_spawn_weight" value="0.2"/>
<property name="district_required_township" value="city"/>
<property name="district_preview_color" value="0.5,0.5,0.1"/>
<property name="poi_required_tags_all" value="airport"/>
<property name="grid" value="airport"/>
</district>
<!-- Defines an Airport Grid as 2x2 Tiles -->
<grid name="airport">
<row id="0">
<column id="0">
<property name="tile" value="rwg_tile_airport_parking_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="0,3" />
</column>
<column id="1">
<property name="tile" value="rwg_tile_airport_terminal_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="0,1" />
</column>
</row>
<row id="1">
<column id="0">
<property name="tile" value="rwg_tile_airport_runway_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="1">
<property name="tile" value="rwg_tile_airport_runway_02" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
</row>
</grid>
<!--
TAGS: Row, Column - Specify the Grid Cells.
TILE: Specifies the Tile's filename root.
ROTATION: Just like a POI's Rotation to Face North value.
EXITS: Tells RWG the tile sides to connect to City Tiles.
I had thought about Tiles having "Corner", "T", etc. But within a grid
you can end up with Tiles that have no exits to the city, like the
runway tiles in this example.
Perhaps an Airport would be better as its own settlement. In which
case, make it the only district of that settlement.
-->
</rwgmixer>
Thanks for listening.
Obviously, POI designers take liberties with scale. How many blocks makes a reasonable runway? Unless the answer is less than 150, you need more than one tile. If you settle on 100 blocks of runway to allow for various runway trappings (lights, barriers), then your runway will be rivaled by the in-game equivalent of the Walmart parking lot.
An idea for getting around this is having a way to specify groups of Tiles that appear together in a predictable pattern. The following example XML attempts to suggest letting folks define a District in grid form, specifying which Tiles are placed where, how they are rotated, and how other tiles can connect to them. As a District, it could be part of a larger city. Or, the District could be the only District of some custom settlement.
A 2x2 Grid is depicted. I suspect an airport would probably need to be 3x2, but its the grid concept that matters, probably not any potential limits on max dimensions.
<rwgmixer>
<!-- Defines an Airport as a City District of type "Grid" -->
<!-- Alternatively, the presence of a "grid" property might be enough. -->
<district name="airport" type="grid">
<property name="district_spawn_weight" value="0.2"/>
<property name="district_required_township" value="city"/>
<property name="district_preview_color" value="0.5,0.5,0.1"/>
<property name="poi_required_tags_all" value="airport"/>
<property name="grid" value="airport"/>
</district>
<!-- Defines an Airport Grid as 2x2 Tiles -->
<grid name="airport">
<row id="0">
<column id="0">
<property name="tile" value="rwg_tile_airport_parking_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="0,3" />
</column>
<column id="1">
<property name="tile" value="rwg_tile_airport_terminal_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="0,1" />
</column>
</row>
<row id="1">
<column id="0">
<property name="tile" value="rwg_tile_airport_runway_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="1">
<property name="tile" value="rwg_tile_airport_runway_02" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
</row>
</grid>
<!--
TAGS: Row, Column - Specify the Grid Cells.
TILE: Specifies the Tile's filename root.
ROTATION: Just like a POI's Rotation to Face North value.
EXITS: Tells RWG the tile sides to connect to City Tiles.
I had thought about Tiles having "Corner", "T", etc. But within a grid
you can end up with Tiles that have no exits to the city, like the
runway tiles in this example.
Perhaps an Airport would be better as its own settlement. In which
case, make it the only district of that settlement.
-->
</rwgmixer>
Thanks for listening.