NewGRF House Spec Improvements #12281
Replies: 11 comments 19 replies
-
Larger multi-tile housesHouses must have a substitute base game house ID, and multi-tile houses must use the IDs of a similarly-sized base game house. This limits available houses to 1x1, 1x2, 2x1, or 2x2 tiles. It would be nice to allow GRF houses to be larger than 2x2 tiles. |
Beta Was this translation helpful? Give feedback.
-
Increase total number of house tile types.I now have a patch for this that increases the limit to 4096, using 12 bits instead of 9 bits of map storage. More is possible I suppose... |
Beta Was this translation helpful? Give feedback.
-
Upgrade path callbackThe biggest problem with multi-tile houses is that when a house is rebuilt, it is demolished and then a substitute house is randomly chosen to take its place. When a multi-tile house is demolished, the house which takes its place is often smaller, leading to the other tiles being filled in by other houses. This space will never again have a multi-tile house, because the space is gone. We could add a callback, called when a house is about to be demolished, that allows that house to choose its replacement. Multi-tile houses could only allow other multi-tile houses to replace them, keeping that space reserved. This also allows for other fun features like house upgrades and modernization, and whatever else GRF authors can dream up. 😄 |
Beta Was this translation helpful? Give feedback.
-
Callback for type of serviceCurrently there is a callback which tells you if e.g. PASS have been delivered in current or previous month. Could there be a way to determine if this is road, rail etc service? Thinking being a bus service is not good enough to allow skyscrapers, but a rail station would be. |
Beta Was this translation helpful? Give feedback.
-
Population of nearby citiesPlayers often grow cities into each other, making a larger mega city. However the spec just allows you to get the population of city of the relevant tile. Is there a way to get the population of the larger mega city? E.g. return the population of all cities within n tiles. |
Beta Was this translation helpful? Give feedback.
-
Height and bridgingIt would be great if bridges could span over houses, so long as the house is short enough and the bridge is high enough. This is similar to behaviour of objects since OpenTTD 1.1, where a combination of an object flag and a height define if an object can have a bridge above it: A ... paired with... A |
Beta Was this translation helpful? Give feedback.
-
More terrain variables for townsAnalogs of more house variables for towns, which would allow houses to access parent town properties which give context like elevation, hillyness, proximity to a coastline, etc. This would allow houses to only spawn in a hilly town in the desert, or a flat town near a coast, and give a unified appearance by deciding per town rather than per house. This is essentialy implementing property |
Beta Was this translation helpful? Give feedback.
-
Town-wide cargo acceptance/production variablesIt'd be nice for NewGRFs to access more information about how much cargo is produced and transported by towns. Currently,
|
Beta Was this translation helpful? Give feedback.
-
Presence and activity of nearby industriesQuerying for the presence of either specific industries (maybe difficult to indicate which one you want) or industries meeting specific produces-cargoes/accepts-cargoes masks could let houses be selected by what kind of industry is present in or around a town. Maybe the presence of a Bank in the town would allow more office buildings to appear? Presence of a power plant in early years would give the town a more early-industrialized look? And so on. |
Beta Was this translation helpful? Give feedback.
-
I've thought long and hard about this, and I didn't think I had anything to add, but I think the only major thing I'd want beyond what some of the other folks have suggested is some additional properties/callbacks for setting whether when this building gets picked for creation is whether it can blow up everything in its path that would otherwise block it's construction. Optionally, I'd like to be able to specify whether it's allowed to knock down other 'protected' buildings. Perhaps also able to be tied to a callback so I can check the class id of a building to be knocked down so I don't accidentally clobber a 'monument' Reason I'd want this? Large 2x2 buildings (and larger if we get them) can sometimes be difficult to spawn, and in particular if I'm trying to spawn in a new monument after a certain date, it can be hard to guarantee that it actually spawns. |
Beta Was this translation helpful? Give feedback.
-
Depth and tunnelingLike adding height and a flag to allow bridging, it might be interesting to have a flag which disallows tunneling under a house. This could be extended to have a depth, and tunnels would have to be at least that deep. This could add nice flavour, eg. disallow tunnels under a landmark, or ensure tunnels are deep under buildings with basements Could be extended to objects, industries too. |
Beta Was this translation helpful? Give feedback.
-
There's been some discussion on Discord recently about improvements to the NewGRF house spec. Let's not lose these ideas.
(Each suggestion has its own post below, allowing replies to be made to that suggestion.)
Beta Was this translation helpful? Give feedback.
All reactions