Page 1 of 1

[Dominik][0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Fri Aug 16, 2019 1:38 pm
by boskid
Using mods:
- "advanced underground piping"

Issue: when using underground pipes of different lengths, it is possible to create long reach underground pipe that shows as connected when in fact it is blocked.
  1. Setup (with ruler to show where regular undergrounds will not connect):
    ovup-1.png
    ovup-1.png (103.1 KiB) Viewed 5147 times
  2. Place pipe-to-ground near water. It will not connect to right underground pipe because of distance
    ovup-2.png
    ovup-2.png (56.49 KiB) Viewed 5147 times
  3. Place "Tier 3 1 to 1 forward pipe" near crude oil. It will not connect to right underground pipe because of regular pipe to ground 2 tiles to right
    ovup-3.png
    ovup-3.png (57.22 KiB) Viewed 5147 times
  4. Remove regular pipe-to-ground near water. After this, outer two long range pipe to grounds show as connected even if no fluid system merge is performed
    ovup-4.png
    ovup-4.png (57.9 KiB) Viewed 5147 times
  5. Outer undergrounds show as connected
----

There is also crash possibility:

Code: Select all

 196.709 Error FluidSystem.cpp:171: connection.isConnected() was not true
When outer undergrounds are indeed marked as blocked, by building regular pipe to ground near water, outer undergrounds will still show as paired+blocked but removing one assembler will crash:
overlap-undergrounds-crash.gif
overlap-undergrounds-crash.gif (468.51 KiB) Viewed 5147 times
----
Also there are other issues with undergrounds of different length: build long underground section using long reach underground pipes, then inside build next underground section with shorter reach undergrounds so that they will not reach outer pipe-to-grounds so they do not disconnect.
ovup-5.png
ovup-5.png (89.52 KiB) Viewed 5147 times

Re: [0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Sat Aug 17, 2019 1:14 am
by Staplergun
This was able to be done under the old system, too. Here's an example of tri layer. https://www.reddit.com/r/factorio/comme ... _give_you/

Re: [0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Sat Aug 17, 2019 4:42 am
by boskid
Staplergun wrote: Sat Aug 17, 2019 1:14 am This was able to be done under the old system, too. Here's an example of tri layer. https://www.reddit.com/r/factorio/comme ... _give_you/
Oh, 3 underground pipes overlapping, so cute.
can-i-do-more-underground-pipes.gif
can-i-do-more-underground-pipes.gif (2.63 MiB) Viewed 5057 times
log

Re: [0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Sat Aug 17, 2019 6:47 am
by Staplergun
Oh man. Total power move. Well played.

Re: [0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Sat Aug 17, 2019 7:53 am
by Oktokolo
Another oportunity to fix a bug into a feature: Let us have pipe weaving like we already have for belts.

Re: [0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Sat Aug 17, 2019 8:08 am
by BlueTemplar
One problem is that, unlike for belts, the pipes that are underground, do not exist - IMHO it's better to keep both behaviors as different as possible ?

Re: [Dominik][0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Sat Aug 17, 2019 12:19 pm
by Staplergun
Yeah, pipes don't work like that....it's only working because of odd checks by the long pipes based on which side you start with.

Re: [Dominik][0.17.65] Underground pipes of different length issue+crash [mods]

Posted: Wed Aug 21, 2019 10:38 am
by Dominik
Ahhh, I think that I was aware of this issue long time ago when fixing something for these modded pipes. Left it alone until it reveals itself.
Problem is that when building a pipe, it searches for a connection as far as its range is. So when you build the normal pipe, the search does not reach the long one and does not tell it that it should disconnect. It looks like that all underground connections will have to seach as far as is the longest connection possible in the game. Which is not nice.