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.
zztong, I took your city grid code and expanded it to what I believe my airport on my map, Navezgane Regional Airport, would look like as a 10x12 Grid.
Here is my airport depicted as a grid:
And here is the XML code:
<rwgmixer>
<!-- RWG City District Grid
Original Code Author: zztong, 22 August 2022
Modified: AH64_Jimbo, 14 March 2023
used original 2x2 Grid code to expand to a 10x12 Grid for
the airport found on map Navezgane Regional Airport -->
<!-- Defines an Airport as a City District of type "Grid" -->
<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 10x12 Tiles -->
<grid name="airport">
<!-- First Row, Row 0 -->
<row id="0">
<column id="6">
<property name="tile" value="rwg_tile_airport_runway_17" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_airport_taxiway_corner" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_rural_corner" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="1,2" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_rural_straight" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="1,3" />
</column>
<column id="10">
<property name="tile" value="rwg_tile_rural_t_02" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="1,2,3" />
</column>
<column id="11">
<property name="tile" value="rwg_tile_gateway_cap" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="3" />
</column>
</row>
<!-- Second Row, Row 1 -->
<row id="1">
<column id="6">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_airport_tarmac_corner" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_hangars_cap_01" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_airport_tarmac_corner" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="10">
<property name="tile" value="rwg_tile_commercial_straight" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
</row>
<!-- Thrid Row, Row 2 -->
<row id="2">
<column id="6">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_tarmac_edge" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_airport_tarmac_01R" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_hangars_cap_01" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="1" />
</column>
<column id="10">
<property name="tile" value="rwg_tile_commercial_t" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="0,2,3" />
</column>
</row>
<!-- Fourth Row, Row 3 -->
<row id="3">
<column id="6">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_tarmac_edge" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_airport_regional_concourse" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_airport_regional_terminal" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="1" />
</column>
<column id="10">
<property name="tile" value="rwg_tile_rwg_commercial_corner" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="0,3" />
</column>
</row>
<!-- Fifth Row, Row 4 -->
<row id="4">
<column id="6">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_tarmac_edge" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_airport_tarmac_01L" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_tarmac_edge" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
</row>
<!-- Sixth Row, Row 5 -->
<row id="5">
<column id="6">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_airport_tarmac_corner" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_tarmac_edge" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_airport_tarmac_corner" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
</row>
<!-- Seventh Row, Row 6 -->
<row id="6">
<column id="6">
<property name="tile" value="rwg_tile_airport_runway_35" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_airport_taxiway_t" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_airport_filler" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
</row>
<!-- Eighth Row, Row 7 -->
<row id="7">
<column id="6">
<property name="tile" value="rwg_tile_airport_filler" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_airport_filler" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="3" />
<property name="exits" value="" />
</column>
</row>
<!-- Ninth Row, Row 8 -->
<row id="8">
<column id="0">
<property name="tile" value="rwg_tile_airport_taxiway_corner" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="1">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="2">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="3">
<property name="tile" value="rwg_tile_airport_taxiway_t" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
<column id="4">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="5">
<property name="tile" value="rwg_tile_airport_taxiway_t" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="6">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_airport_taxiway_4-way" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_airport_taxiway_straight" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_airport_taxiway_t" />
<property name="RotationToFaceNorth" value="0" />
<property name="exits" value="" />
</column>
<column id="10">
<property name="tile" value="rwg_tile_airport_taxiway_corner" />
<property name="RotationToFaceNorth" value="1" />
<property name="exits" value="" />
</column>
</row>
<!-- Tenth Row, Row 9 -->
<row id="9">
<column id="0">
<property name="tile" value="rwg_tile_airport_runway_08" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="1">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="2">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="3">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
<column id="4">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="5">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="6">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="7">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="8">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="9">
<property name="tile" value="rwg_tile_runway_segment" />
<property name="RotationToFaceNorth" value="2" />
<property name="exits" value="" />
</column>
<column id="10">
<property name="tile" value="rwg_tile_airport_runway_26" />
<property name="RotationToFaceNorth" value="2" />
<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.
May need one or more additional attributes to work with RWG
TAXIWAYCONNECTOR: Signals that a Taxiway Connector Part needs to be placed between a runway/tarmac and taxiway.
AIRPORTTILES: Specifies which sides of an Airport tile can be adjacent to other Airport tiles.
PERIMETER: Specifies which sides have no adjacent Airport tiles. Important for defining airport fence placement.
Note that these last two attributes may be able to be rolled into one.
-->
</rwgmixer>
One glaring issue is that this would, in theory, lay out the RWG tiles, but NOT any critical parts such as the taxiway-runway connectors, taxiway-to runway connectors, taxiway lines on the tarmac as well as the entire perimeter fence. These could be laid out using part spawners on the RWG tiles, however they would have to be dependent on
certain conditions and should
not left up to random chance.
This is one step closer to adding airports to random gen. Thoughts?