The old system was single pass. That's why the build order could have an affect in designs that weren't producing enough for the demand.
The new system is a "no pass" within segments, which are broken apart only by machines and pumps.
The old system was single pass. That's why the build order could have an affect in designs that weren't producing enough for the demand.
Man just give up already, why do you keep trying? Your arguments went from weak to absolutely null.
I thought you were the one who plans to quit if these changes go through? Seeing as they obviously will, I suppose it won't be me giving up innit? (Though I know you wont quit, but it's still funny)
And what is a storage tank?As a special case, pumps can pull at a faster rate if they are connected directly to a storage tank
Alright, so I can do special cases just anywhere. I end every pipe with a storage tank, then place pump, and it becomes a special case, pumping at faster rate than pipe normally can.Pipes, underground pipes, and storage tanks are merged into fluid "segments".
Throughput limit through long pipes can be calculated statically as a matrix of input-output, and that limit may be applied as an additional restriction to pulling ability. But that square matrix can be very big, so maybe replace it with input-output coordinate distance, even if pipe makes a labyrinth. Segment has a volume, but this volume is dynamically divided between inputs. When output pulls, the rate is limited by distance to the input that contributed the volume to be pulled.Each segment inherits its volume from the fluid boxes that comprise it and can hold one fluid.
I've wondered about that, I think the issue is that they can both be sources and sinks depending on the state of the rest of the network and can possibly be connected across different networks or have multiple connections onto the same network depending on connectivity elsewhere and I'm not sure how you could make that work while still being performant enough for large numbers of storage tanks.
I've tried a few times to come up with a suggestion for something like this (using one of the max-flow algorithms in my case) to keep some complexity/realism while pushing the expensive calculations outside of the main update loop but there's always some weird edge (and sometimes not so edge) cases that don't work. Notably it has to be able to deal with filling up a network with no sinks and draining a network with no sources and ideally not allow cheeses involving setting up false sources/sinks using pumps to artificially increase the calculated throughput. Creating a separate fluid box per input and calculating the outflow separately is an interesting one I hadn't thought of but, again, I'm not sure how much that would impact performance...
Which would be awkward.
Luckily in Factorio ALL chunks are loaded at all times, so there isn't such an issue, like with the shitshow that is Minecraft, lol
Why just don't add new types of pipes with different volume (therefore, throughput)? To use small ones long defensive walls flamethrowers, and huge ones in crazy legendary speed beacon builds like those were shown in FFF. So that becomes a solution without a drawback. (Want them to still be 1*1. Some 'polymer coated pipes' from steel and plastic to lower friction or smth.)In an attempt to avoid a total rewrite, we first tried increasing throughput by increasing pipe volume. This "solved" the primary issue of low throughput with the trade-off of massively increasing buffer sizes. Storage tanks became effectively useless, and defensive walls utilizing flamethrower turrets were buffering tens of thousands of units of fluid, sucking bases dry.