zztong Posted June 21, 2022 Share Posted June 21, 2022 Currently, you can have one District identified in a Settlement's "outskirt_district" property: <property name="outskirt_district" value="rural"/> And, presently, townships of type "city" all come with rural Tiles that wrap around the outside. This can be pretty repetitive. I've considered making a "bigcity" township with the outskirts being residential. Then it occurred to me it would be cool if you could list more than one District in the "outskirt_district" property. (This is the suggestion. Allow this...) <property name="outskirt_district" value="rural,residential"/> Then, when RWG is generating the outskirts of a settlement, for each Tile to be placed it would first randomize a selection from the outskirts_district List, then determine which Tile from that Distict to use. In this way, the outter ring of Tiles for a city could be a mixture of both Rural and Residential Tiles. BTW, I tried listing two. It results in a KeyNotFoundException, which makes sense. It is probably looking for a district named "rural,residential". Another thing I tried was a District with this: <property name="poi_required_tags_all" value="rural,residential"/> The idea being that maybe the District would accept POIs of either tag. That attempt resulted in a NullReferenceException. Link to comment Share on other sites More sharing options...
Kinyajuu Posted June 28, 2022 Share Posted June 28, 2022 Never thought of this use case. Consider it done for A21. if(outskirtDistrict.Contains(",")) { string[] districts = outskirtDistrict.Split(','); outskirtDistrict = districts[Rand.Instance.Range(0,districts.Length)]; } Link to comment Share on other sites More sharing options...
n2n1 Posted June 28, 2022 Share Posted June 28, 2022 @Kinyajuu Why did you stop binding prefabs to the type of biome? Link to comment Share on other sites More sharing options...
zztong Posted June 29, 2022 Author Share Posted June 29, 2022 21 hours ago, Kinyajuu said: Never thought of this use case. Consider it done for A21. if(outskirtDistrict.Contains(",")) { string[] districts = outskirtDistrict.Split(','); outskirtDistrict = districts[Rand.Instance.Range(0,districts.Length)]; } So would it select one District from the list to be the outskirt for the entire city or is this code run on a Tile by Tile basis? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.