Yeah, I was pretty much aware that that's what that would mean. I'm still kind of noobish, but I don't see why it's that hard to define another variable and link it to the building's structure. Is there anything that I'm not aware of that would make this super time consuming and hard?
No; it's a completely normal thing, and it's the most reasonable way to accommodate your request (pressure, powergen, criticality, warnings, explosions, etc). But - from a programming point of view - the memory structure of a building is surprisingly small (especially when contrasted with the jillions of thoughts and emotions which define creatures). This may indicate that Toady is deliberately avoiding complexity in his Buildings, and (if so) might make him opt for a native solution (e.g. DFHack's use of inventory) rather than including a new variable.
I was under the impression that he was just prioritizing. From all of the interviews I've read, he only goes into detail on any particular subject when ( ( It's fun for him || He thinks it'll enrich the world ) && Player demand is medium-to-high || He needs it for another function of the game || Player demand is VERY HIGH.
* || he's determined to get a feature just because he said he would in his plans for the update) The demand for this is only medium at best, but I'm hoping the fact that it wouldn't be masochistically difficult can be used as a reason to do it, with some friendly nudging. That'll only work if he can just slap in the values within less than a week and shove the next version out to testing without being off-schedule. Besides, buildings are (relatively) simple compared to creatures, no matter how you're looking at it, so the need is not that great to go into it. I mean power production or receiving power and the ability to mod that into a building are seriously the only things I can think of that would improve the game by going into further detail on buildings. ( And even then, I only thought of them because I wanted a new power-source to go with my infinite energy generators to get them going easier.)
Well, I guess there's also automatic reactions on receiving power, but we'll cross that bridge when we come to it. (Again, just being a noob, but even that seems like it could be handled with a simple if statement: like
if(IS_POWERED==TRUE){ //While the building has power, within the main execution loop.
while(REACTIONS){ //A stand-in for the actual while statement which is basically to read for reactions until there are no more.
if(REACTION.IS_POWERED && REACTION.REQUIRES POWER) { //A dummy check for the [IS_POWERED] and [REQUIRES_POWER]
//execute reaction.
}
read(NEXT_REACTION) //Fetch the next reaction, whatever it is.
}
}
I don't really know how the internal mechanisms of DF work, but that's just general programming reasoning that should work if there's no more complicated stipulations that I'm just simply not foreseeing due to ignorance. )
* Something like >=95% of all the players based on sampling the suggestion forum.~snip: the rest.~
Huh. Who knew that water would be the most complicated element of a
nuclear reactor steam engine? Water, you're stupid flexible and useful, but that leads to a lot of stipulations on your functions. ( Both true IRL and in DF. ) I'll probably go with the magically pumping up water and add a corkscrew and a pipe to the building's ingredients to justify it in my feelings. It'd be more realistic anyway.
As per the only other stipulation I can think of - where to plug your gears/axles into - here's what I have, in the form of options.
Option 1:
[][][]
IN>[][][]>OUT
[][][]
If the building both requires power and produces it, just as an example. With the hard-coded values for where the in and out go for a custom building. ( Like how water-wheels and wind-mills work. )
Option 2:
^
V
[][][]
<>[][][]<>
[][][]
^
V
Have the ability to select a building's orientation at building, with input and output on opposite sides and based on context. ( Like how axles and screw-pumps work. )
Option 1 is simpler, but Option 2 is better. I'll take whichever gets this in the game faster.