I liked the previous system more than this. I think they could easily have the best of both worlds by making each pipe its own segment that pulls fluid from segments that have less fluid in them proportional to how much fluid that segment has. That way there’s both a propagation lag (and closer buildings getting more throughput than farther ones) like the current system and high throughout if the entire pipe is filled like the new system. This even opens up the possibility of higher quality pipes forming larger segments to increase throughout when the pipe isn’t fully filled.
This would cause sloshing, but that can be fixed by each segment checking if the segment they’re pulling from pulled from them last tick and if so temporarily combining into a single segment for the next tick.
The evaluation order feels tricky for this to work and the fill amounts of the segments would need to be updated right after evaluation instead of at the end of the tick for full throughput, but I think that can be figured out
I liked the previous system more than this. I think they could easily have the best of both worlds by making each pipe its own segment that pulls fluid from segments that have less fluid in them proportional to how much fluid that segment has. That way there’s both a propagation lag (and closer buildings getting more throughput than farther ones) like the current system and high throughout if the entire pipe is filled like the new system. This even opens up the possibility of higher quality pipes forming larger segments to increase throughout when the pipe isn’t fully filled.
This would cause sloshing, but that can be fixed by each segment checking if the segment they’re pulling from pulled from them last tick and if so temporarily combining into a single segment for the next tick.
The evaluation order feels tricky for this to work and the fill amounts of the segments would need to be updated right after evaluation instead of at the end of the tick for full throughput, but I think that can be figured out