Fluid Must Flow


Adds very large pipes with enormous throughput capabilities.

Content
11 months ago
0.17 - 1.1
147K
Logistics Fluids

b [Fixed] In/Outlets lose circuit network connection/setup when blueprinted

3 years ago

FMF Version: 1.2.7
Factorio Version: 0.18.21 (MacOS)

Other mod:

1.722 Loading mod settings ModuleInserter 5.0.3 (settings.lua)
1.722 Loading mod settings GhostScanner 1.5.5 (settings.lua)
1.722 Loading mod settings recursive-blueprints 0.18.0 (settings.lua)
1.722 Loading mod settings showTileGridLite 0.3.11 (settings.lua)
1.723 Loading mod settings Squeak Through 1.8.0 (settings.lua)
1.723 Loading mod settings Todo-List 18.0.1 (settings.lua)
1.723 Loading mod settings FluidMustFlow 1.2.7 (settings.lua)
1.723 Loading mod settings Krastorio2 0.9.13 (settings.lua)
1.724 Loading mod settings LogisticTrainNetwork 1.13.1 (settings.lua)
1.724 Loading mod settings PickerAtheneum 1.2.0 (settings.lua)
1.725 Loading mod settings LTN_Content_Reader 0.3.2 (settings.lua)
1.725 Loading mod settings PickerBlueprinter 1.1.2 (settings.lua)
1.725 Loading mod settings PickerExtended 4.1.2 (settings.lua)
1.726 Loading mod settings nixie-tubes 0.18.2 (settings.lua)
1.727 Loading mod settings Krastorio2 0.9.13 (settings-updates.lua)

Bug Description:

When copying ducting that includes inlet/outlet parts that are attached to the circuit network with wires, the placed items do not preserve the circuit wiring, or the circuit config (signal condition, etc).

The non-return valves /do/ work and connect properly.

It doesn't seem to matter whether any modifications are made, ducts rotated, etc.

It doesn't make a difference if using Ctrl-C/V or creating an actual blueprint object.

Mining the in/outlet and Ctrl-Z'ing doesn't restore connections. Mining the pole it connects to and undoing that /does/ restore correctly.

The blueprint ghost preview shows the wires attached, but that disappears when the actual items are placed. It doesn't seem to matter whether placement is manual or by construction bots.

The following blueprint string should have the NR duct connected via red wire (works) and both in/outlet connected to power pole by green wire (doesn't work)

0eNq9VMtugzAQ/Jc944hHCBHqpX/QUy9VhAhsE6tgI2NHjSL+vbshQihAlVZqDzzWj5nZ2bUvsK8cNkYqC+kFZKFVC+nbBVp5UHnFY/bcIKQgLdbggcprjkpXWOFUieZgNH2h80BS+Alp0HmPbUdVikYTs6An/8ARRjiLcZLGOhoZYPoVwuCYP+p2HqCy0krsc7kG50y5eo+GBC7J0M6yDoF5a4mk0S1haMUKCFeEq9iDM/0Eq5joSmmw6OdDD8g4a3SV7fGYn6Q2vKmQpnDSZjRXDkjv0rQ2ezi3V86Mq2JzLpHPQd3kJrfMAU/Q9fOq19IyZMCvg0FU4/Rlyb7uuo69vbMkHGhrLKWrBVaEZ2RBzlQ49cK/GbHAzQW5Y465KrOagpEejqMFjdH33SNaKt9xKnW5auu/q9rLv1RtvXwcp90b3XyYNu8McjwgK63ofFlnlGCSGeBgEfjv/H3+rb8znbnk7uYH7vpLHmy47a93Xzq6aT04oWmvC5IkCvxkm8Tbddd9AVig4xU=

If it's not obvious to reproduce/see the problem, I can try to test with various mods disabled and see if that makes any difference, since I'm runnign quite a few that could plausibily get involved.

Thanks!

Linver β˜†
3 years ago

Hi, thank u for ur report. Fixed in version 1.2.8.

3 years ago

Hey, thanks for the quick work, but I'm not sure its entirely fixed (although it is definitely better).

With the following test blueprint, some of the wires are reattached, but not all of them, and the conditions are not set in the endpoints.

0eNq1VNtqwzAM/ZWi53g0aUNHYA976du+YJTiJmormtjBVspK8b9PTqB0vWzrYA+5yJZ1js4RPsKq7rB1ZBiKI1BpjYfi/QieNkbXcY0PLUIBxNhAAkY3Mdo5ta47qpRn6/QGVQohATIVfkCRhuTHAlVXskJTqdYKtpJH7/CsRhYWCaBhYsKBUR8clqZrVugE5FSqwYq6RmGNJTsqpWKNAtRaL4etiRSkoJokcJBPJhjSpZFk6ps9QhpfDqtzGJJoEhYhxF4uoLMHoX9A3jhEc4md38GefK+gMtbx9kb32VPes0if8oEGO1svV7jVe7IuZpXkyo54KXvV6eianOfllZd7ctzJyonMkKHKLZY7GAA86zhU4xg0rXaaIw68QPi9A+mZAjGe3lFl+t1gXokxHpR4aBCSx2zK79lkO+598vJzw6evNlXkBnZ9h/9l2ms0zGMs8Senf2XuTfWmF/ZmvZqidX9XFGd3UwK1XqEQg/nbfBQ1HTF6HmWys0fn+85ns0k6nj3P8udpCJ/0gqax

A semi-workaround seems to be to paste the blueprint twice - once to have it built, and second to set the wiring/conditions. This doesn't seem to work if the BP is rotated though; I'm guessing there may be some entity replacement happening that makes them not appear 'the same' to the BP logic?

As a sidenote, Ctrl-Z to undo will remove the powerpoles and tank, but leave the endpoints, again possibly because they're not what it thought it was placing?

3 years ago

The problem is not solved, half of the wires and all settings are lost when copying.

3 years ago

I also still experience this problem. I always have to configure the inlets/outlets again when I paste a blueprint because it looses its configuration.

3 years ago
(updated 3 years ago)

Experiencing the same, in Factorio 1.0.
Sometimes there is no problem and all the wires are they are supposed to, and sometimes wires is missing. The enabled conditions though are consistently missing, or atleast the lefthand signal.

Linver β˜†
3 years ago

I have fix the problem with the conditions, but seems that when an entity is a ghost with some other ghost is impossible restore the connections via script so, I will investigate more but seems that is a game limitation.

3 years ago

Thanks for looking into it :)

3 years ago

I feel that the issue is due to you having 4 entities for each inlet/outlet (n/s/e/w) - if you set up a square of 4 one-way-valves each pointing in their own direction, connect them by wires and set some settings, then blueprint it, rotate, and place over the existing, everything works as expected. If you try the same thing with the inlet/outlet pumps though, you cant place over the existing in any rotation except the original.
Was there no way of setting up the inlet/outlet pumps with just one entity each?

Linver β˜†
3 years ago

Unfortunatelly seems that with ghost is not possible manage circuit connections, so... probably is not fixable.

3 years ago
(updated 3 years ago)

So this kind of got on my nerves (didnt notice it until it was mentioned, mostly because I didnt know you can connect them to the circuit network).
In the end I figured it out.
The reason you are using 4 entities is to allow the pipe covers to be drawn correctly (your inlets/outlets have 8 connections, 6 are regular pipes but 2 are the 'duct' pipes). since you want to draw the regular pipe covers but not draw the 'duct' covers, you ended up creating 4 entities with the duct covers on the correct face set to empty sprites. Naturally this means that when you rotate an entity you have to run a script in the background in order to replace said entity with the correctly facing one. This works ok in terms of regular usage (you copy circuit connection & settings between them), but breaks down in case of blueprints and as you said... not quite fixable.
In other words, the only solution is to go back to the beginning; that is - use just one entity for the inlet and one for the outlet and try to fix the pipe cover drawing within that single entity. What I did was make all connections between ducts be 'underground' (thus not require the pipe caps to be drawn) with the underground distance of 1 (basically, they are underground, but any distance besides right next to each other prevents connection).
This of-course raises a second issue that you can now connect an underground duct to a regular duct connection the 'wrong' way if you place them right next to each other, and I fixed that by shifting the underground duct connection a tiny bit inwards such that even when placed right next to each other the connection is longer than 1 and as such cant be connected even though the entities are placed right next to each other and are both underground type.

If you are interested, I uploaded the changed mod to dropbox so you can get to it and test it / see what I did. I kind of wasnt sure what the issue was originally so I changed some other parameters (creating entities directly instead of copying from pump for example), but the key changes are pretty much summed up in removing the 4 entities for each inlet/outlet, removing the update code for switching between them, and the fluid_box changes necessary to set the underground pipe connections. Lastly there was a bit of a bounding box change to underground ducts necessary to prevent them from connecting incorrectly.
Oh, and I didnt try to make any update scripts necessary to update an existing save to the new setup; pretty sure opening an old map with the updated mod will cause some issues with the duct systems.

The only 'bug' right now is that regular underground pipes seem to be able to connect to duct underground pipes... not sure what I broke for that to happen.
EDIT: right. I was a bit too zealous with the removal of the control.lua code and removed the actual connections responsible for strict pipe connection checks. Fixed it up and uploaded a new version.
Link:
https://www.dropbox.com/s/cn0k168b3awdnq4/FluidMustFlow_1.2.9%20-%20modified.zip?dl=0

Linver β˜†
3 years ago

This is not a solution, will loose the correct placing of the pipe connection...

3 years ago
(updated 3 years ago)

Could you be a bit specific on what would be wrong with it? I tested my changes against a second copy of factorio running the original mod and everything seems to work as intended. The only bug I found was if you disable strict connections (thus allowing regular pipes and ducts to be connected together) you can connect the underground duct (above-ground connection side) to a regular underground pipe (into-the-earth connection side) which I do agree is a bit weird, but its honestly such an edge case I feel its worth it for the ease of blueprinting.
Additionally, I was planning on using these modifications for my own seablock run - and as you might know those take a while. Since I wanted to have replay available and thus wont be able to switch mods halfway through, I would really be interested in hearing a bit more in depth what you consider wrong with this.
EDIT: just tested it again with 2 versions of factorio against the original mod. Seems like everything works the same (except for the blueprinting):
- throughput numbers are equal in the various setups i tried
- connections are allowed only where they are supposed to be (above ground ducts to above ground ducts only, underground ducts to underground ducts only)

Linver β˜†
3 years ago
(updated 3 years ago)

I have to correct me, this didn't work when I design the mod in the 0.17, seems that something change, have u test all possible ducts placing? I can't test propetly the mod, but if u have test it enough I can upload over mine

Linver β˜†
3 years ago

Ok I want trust u

Linver β˜†
3 years ago
(updated 3 years ago)

I'm uploading ur version, if u want I can add u with the modder allowed to uload new version of this mod in case u want upload better versions. I'm to busy and I'm near to leave modding, so I can't follow more mods and dev them.

PS: I add the migration file

3 years ago

Nah, its all good - im not much into the overall modding community, just play around with the various mods (seablock stuff primarily) and switch things around for my personal use. Just thought my changes would be helpful here.
Thanks for all your work with this mod (I was almost ready to use one of the pressurized fluid mods to get the proper throughput before i stumbled across this mod!), and for the beauty that is Krastorio! Krastorio 2 + space exploration will be the next run for me :)

Linver β˜†
3 years ago

Anyway, thanks for ur fix, and test ur version a bit ;)
I hope now all working but I have not enough time to test all possible problems