Okay guys, I'm tired and should've probably have been in bed by now, but I just got a radical idea that is probably impossible and most definitely crazy.
What if we could allow steam machines to be built *without DFHack*? That is, pure vanilla raw modding.
Hear me out. Suppose we create 6 different material types -- north-flowing, south-flowing, west-flowing, east-flowing, up-flowing, and down-flowing steam. (They would all display as "Steam" in-game.) The trick here is we define steam pipes, valves, and all that as creatures, and have these steam types give syndromes to them.
For example, suppose we have an E/W steam pipe. West-flowing steam would trigger the pipe to produce more west-flowing steam, allowing the next E/W pipe to pick up that new steam, and the next, and so on. Similarly with east-flowing steam. However, all the other steam types won't affect the E/W pipe at all.
With corner pipes, steam of the type of *the opposite* of one of the corner directions would produce steam of the other corner direction. (In the case of a N/E pipe, S steam would produce E steam, and W steam would produce N steam.)
Valves can react to only one steam type. Suppose there is an E/W valve that only allows steam to flow E. E steam would affect the valve but W steam wouldn't.
Pressure-operated valves can also be made -- we could have an E/W valve allow passage only if it has a tag set by N steam.
There are a couple concerns:
- Unless we can restrict the flow of steam in only one direction, steam can pass between pipes it shouldn't (e.g. two W/E pipes situated above each other vertically can pick up on each other's steam.)
- I'm not that sure how it would possible to construct these machines in Fortress mode. We could use pastures, but then how do we make the components themselves? They are creatures, after all.
- It doesn't fit into roleplay that well (and is a bit confusing) that steam components seem to be leaking steam.
Maybe this is all a sleep-deprived ramble or I actually have something here. I don't know. I'll find out in the morning.