- load "fluid-mixing-by-rotation"
save
- Remove cutter underground pipe
- Try rotating right underground pipe (near acid output)
- Underground pipes connect:
[Dominik][0.17.60] Fluid mixing by rotation
[Dominik][0.17.60] Fluid mixing by rotation
Re: [Dominik][0.17.60] Fluid mixing by rotation
So all these three reports (this, viewtopic.php?f=182&t=73840, viewtopic.php?f=182&t=73890) were very similar in that the issue would require rewriting and complicating the current code beyond what is reasonable, considering how rare these issues actually are (from automatic reports I would guess that 1 in 100s of players ever encounters it.) So as a solution I have instead prevented the action that triggered the problem. In this case and the upgrade there is an error text imploring the player to fix the blocked connection, with teleport there is not as that would also be complicated and not that useful.
Re: [Dominik][0.17.60] Fluid mixing by rotation
I think this was fixed in a sub-optimal way, I'll explain why and suggest alternatives.
- Here's how to make the new error message appear (movie credit to @Bilka):
Evidently, the removal of the central pipe section creates fluid mixing (a situation that shouldn't ever be possible). - In following, upon attempting to resolve the problem (by rotating one of the problematic pipes), an error message appears, effectively preventing the player from fixing it.
Suggestion 2: Rephrase the message to better explain what needs to be done to fix it. For example: "Fluid mixing found. Please remove this pipe and try a different layout."
Leading Hebrew translator of Factorio.
Re: [Dominik][0.17.60] Fluid mixing by rotation
No, underground pipes did not connect so there is no fluid mixing.
This is how underground pipe looks when not connected (to prevent fluid mixing) - there are red boxes on tiles where there are implicit buried pipe segments: And this if they are connected - there are two dotted lines: Fluid mixing is if you manage to connect two fluid boxes with different filters (like crude-oil and acid [i used them in almost all cases so they are good representative here ])
Implemented solution is good enough with given fluid engine implementation limitations: Because it is not possible to decide if this pipe segment after rotation will indeed be allowed without removing it first (more on that in viewtopic.php?p=447186#p447186) and because if it would happen it should not be rotated, there would be no way to restore previous state, this action is prevented all the way from start. This is good solution.
-- edit:
It would be helpful if unconnected underground pipes would announce themselves with proper alert with map coordinates. This would help finding them.
paint crafted proposition:
Re: [Dominik][0.17.60] Fluid mixing by rotation
I see your point. What I meant was that the pipes appear connected when you glance at them (w/o mousing over). If they appear connected but are not actually connected - it's a point of confusion. There should be some way that differentiates this scenario from a "proper connection" (for example: a small next to the ug connection when it's not really connected, like the blue "missing modules" icon).
I have to disagree with your here - the current solution is simply confusing, and not as informative as it could be. My main argument is that that the current message doesn't indicate what the player action should be. I meant to add a 3rd possible solution to my previous post, which is a combination of 1+2 and that it: keep the current text but associate it with the action of removing the central pipe (that causes an apparent connection), and also keep the current warning logic, but write a different string for it (like the one I suggested above), in case it can be reached from by different path of actions.
Leading Hebrew translator of Factorio.
Re: [Dominik][0.17.60] Fluid mixing by rotation
Preventing underground pipe removal because it would create unconnected underground pair? Tell this to biters: "please choose different path to destroy players base because this pipe is untouchable" or "hey biter, could you please fix underground pipe issue before going for this underground pipe?". I can imagine biters prevention setups that abuse undestructible entity.
There is no blue "missing modules" icon, it is item-request-proxy and it shows that item is requested
Every solution to highlight that underground pipe is unconnected would however be better than no hint. Even reducing its health to not be higher that max-1 would be better (pros: would show on map that it needs repair. cons: 1/ would need roboport in range and 2/would deploy bots that cannot repair underground pipe issue)
There is no blue "missing modules" icon, it is item-request-proxy and it shows that item is requested
Every solution to highlight that underground pipe is unconnected would however be better than no hint. Even reducing its health to not be higher that max-1 would be better (pros: would show on map that it needs repair. cons: 1/ would need roboport in range and 2/would deploy bots that cannot repair underground pipe issue)
Re: [Dominik][0.17.60] Fluid mixing by rotation
I didn't say that the current logic should be removed. Think of my suggestion as another precaution - if the pipe was removed somehow (bots, biters, nukes), you would end up in the present situation, with the current solution being the fallback. That doesn't mean that the user should be allowed to do it deliberately (unless it greatly complicates the logic).boskid wrote: ↑Sun Aug 04, 2019 8:59 am Preventing underground pipe removal because it would create unconnected underground pair? Tell this to biters: "please choose different path to destroy players base because this pipe is untouchable" or "hey biter, could you please fix underground pipe issue before going for this underground pipe?". I can imagine biters prevention setups that abuse undestructible entity.
I'm well aware of this. I meant to demonstrate that a method of showing some icon on top of entities already exists, and that adapting it for pipes should probably not be too difficult.
Thank you
If you disagree with my claim that the popup message is confusing, please suggest something else.
Leading Hebrew translator of Factorio.
Re: [Dominik][0.17.60] Fluid mixing by rotation
It would greatly complicate logic. Lets see this case: Here middle U.P. is disconnected from left U.P. to prevent fluid mixing. If you want to prevent removing it because if would create new disconnected U.P. pair, you first need to detect that removal is bad (would create this disconnected pair). For this you need to remove U.P. in question (engine limitation) to check if there are new disconnected underground pipes. If you find that removing it should be avoided, you need to restore original middle U.P. and it looks this action is hard in current code because this U.P. would now need to know to which fluid boxes nearby it should connect (restore lost state).
Preventing would also be extra irritating because without possibility of removal underground pipe, you would need to: 1/ guess which pipes nearby can be removed in a way that would prevent fluid mixing check, or 2/ find other action which is allowed and solves issue. This would work as rails with train on top - you cannot remove rails under train, but here it is obvious what prevents you from removing rails - it is exacly same entity that overlaps with most of rail collision box.
--
popup message is not confusing on its own because it is precise. Confusing is lack of extra details of where this issue is (like alert "some undergrounds are disconnected to prevent fluix mixing" with "click to show on map"). If would be better to rephrase it to "cannot do that yet. check alerts for fluid mixing disconnected underground pipes" but given occurence rate of this issue for standard player it is not likely it will be fixed other way because of poor gain to work ratio.
IMO this fix is more to prevent rouge players from connecting to multiplayer and creating this fluid mixing setup to prevent other players to join because of consistency errors and in that sense it works good - prevents you from creating fluid mixing with underground pipes.
Re: [Dominik][0.17.60] Fluid mixing by rotation
Ok, you win - it's not as simple as I thought.
Leading Hebrew translator of Factorio.
Re: [Dominik][0.17.60] Fluid mixing by rotation
Yes, preventing the action in the first place would be nice, but it is not realistic.
"user can't fix the issue by rotation" - deleting the pipe is what I would think of to fix it, not rotating the pipe.
I left it only at the message as this issue is really rare - before it would cause mixing and we never got a report of it. I think it would be reasonable to always have these blocked connections highlighted, but I left it open to decide based on what people think.
"user can't fix the issue by rotation" - deleting the pipe is what I would think of to fix it, not rotating the pipe.
I left it only at the message as this issue is really rare - before it would cause mixing and we never got a report of it. I think it would be reasonable to always have these blocked connections highlighted, but I left it open to decide based on what people think.