TL;DR
Instead of having a fluid system made of vessels of different size linked together, this proposal centers around the idea that pipes are just connectors and do not have a volume of their own.In detail?
My idea is to have the fluid system more representative of real-life flow models and incidentally also simpler to use.Right now the fluid system works by treating every object in the network as a vessel, and equalising the level between them: if a tank is filled to 50% capacity, then every pipe connected to that tank is also filled to 50% capacity.
My proposal is to remove pipe volume entirely: a pipe cannot store fluid. When connecting two tanks or buildings together, the pipes simply act as a link between them, they do not store fluid but simply allow it to flow. The flow rate is dependent on the difference between levels in the tanks as it is now (being highest when the difference is greatest and zero when the levels are equal), but also on a friction coefficient that includes the length of the pipeline, to preserve the mechanic that long pipelines require pumping to work.
The reason for this change would be:
- -No more waste of fluids when deconstructing pipes
-You can more easily see how much fluid you have because the only places that store it are tanks and buildings
-It's, at least in my opinion, more streamlined and understandable than the current system
-It may be more easy to optimize for performance