StrangeLoopGames / EcoIssues

131 stars 24 forks source link

[0.9.0.0 beta staging-stable-8] Air pollution source position #17316

Closed Engimage closed 3 years ago

Engimage commented 3 years ago

image All Iron Cast Stoves in my house are connected to the pipe system, and the output pipe is moved to the side, to prevent pollution on the farming fields nearby.

However it seems air pollution originates from stations as opposed to pipe output.

On the screenshot I have marked pipe exit

SlayksWood commented 3 years ago

Version: 0.9.0.2 beta release-71

Steps to Reproduce: Connect iron pipes to blast furnace smog/sewage output and vent the output somewhere else. The ground/air pollution stills builds up at the blast furnace location

Expected behavior: Air/Ground pollution should build up at Smog/Sewage pipe end

Actual behavior: Air/Ground pollution build up at blast furnace output

Do you have mods installed? Does the issue happen when no mods are installed?: no

**Please provide log files. Instruction is here https://github.com/StrangeLoopGames/EcoIssues/wiki/Getting-the-Eco-game-log-file

OAKENSHIELD43 commented 3 years ago

I am also observing this issue, it is causing some serious pollution issues on our server.

Conchipedia commented 3 years ago

still an issue in 0.9.0.5 that Cement Kiln is polluting at source even though smoke effect can be seen to be coming out of the pipe end quite a distance away

FarenHawke commented 3 years ago

Still an issue as of 0.9.1.2

mirasrael commented 3 years ago

Was broken in these two commits: https://github.com/StrangeLoopGames/Eco/commit/96d73222bb83f638a6f36b502445c99382cfba89 - removed external polluter (for smog item output) https://github.com/StrangeLoopGames/Eco/commit/3380dab0d4232a9125ffcf8c875c4b9f5d976a2d - removed pollution from smog item output based on throughput, instead now uses fixed pollution for table at it's location

johnkslg commented 3 years ago

Pollution happens at table location to prevent exploit of crazy-pipes going far away, is intented

Conchipedia commented 3 years ago

are having pipes connected to a table to move pollution from smog and sewage now useless? If that is true why do we need to craft any pipes at all? we can just connect One pipe ( to allow the table to follow the connection rules, example output must be above the table and outside the room) and let it all just flow out at table location i thought pipes were brought in to manage the movement of pollution to a safer (or designated) area

OAKENSHIELD43 commented 3 years ago

I feel that to say "prevents an exploit of pipes working as intended" is a bit of a cop out to be honest... We wanted to move pollution away from farmland and dump the pollution in the desert far away. You should be able to make pipes as long as you please, as a lot of iron/copper is required to make them. I would like to request that you make the pipes work, regardless of length. Perhaps you could explain what exploit you mentioned, is there an exploit with pipes currently?

On Tue, Nov 10, 2020 at 7:31 AM Conchita notifications@github.com wrote:

are having pipes connected to a table to move pollution of smog and sewage now useless? so if that is true why do we need to craft any pipes at all? we can just connect One pipe and let it all flow to table location i thought pipes were brought in to manage Moving the pollution to a safer (or designated) area

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/StrangeLoopGames/EcoIssues/issues/17316#issuecomment-724261116, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMVNHAFQD2KZDNXDGF6IX3LSPBGSHANCNFSM4PI7LZAA .

raymondwilliamskc commented 3 years ago

I don't think this should be considered closed. The smog is the output, and the source of the pollution. If we see the smog elsewhere, then that is where the pollution should be. Either this should be fixed, or we should not be allowed to move the smog at all. It is counterintuitive.

Conchipedia commented 3 years ago

I'm not sure i follow this intended behavior of having pipes connected to move the smog effect (which is now classed as NOT pollution) is an exploit but table will pollute where it is placed whether they are connected or not?

Arend90 commented 3 years ago

LOL good to see this kinda dedication to fix problems is still a thing at SLG <3

mirasrael commented 3 years ago

We discussed it with @johnkslg in Discord. His position same - he don't wanna Smog to be moved outside of production place with horizontal pipes. But as it seems non intuitive we decided it should be fixed to not allow to flow smog in horizontal pipes with corresponding message. We also discussed option to make pollution less concentrated depending on height of pipe (it will have same amount, but will spread for wider area).

mirasrael commented 3 years ago

I read about smog pipes and seems in realty nobody uses them for horizontal gas transfer. Even more, it is very important to make them vertical and tall for safety and efficiency reasons. If they are not tall enough then they will make backdraft which is dangerous for working people. So probably it should not only prevented to make them horizontal, but also has requirement for minimal height of pipe depending on a table. https://en.wikipedia.org/wiki/Chimney

mirasrael commented 3 years ago

Another important thing about Smog. Not always Smog is equal to Air Pollution. So we decided to make separate part for CO2 and Air Pollution for tables. In this case all of tables with smog pipes will create CO2 in atmosphere, but not all of them will make air pollution. This is especially important for Bakery Oven and another cooking tables.

Conchipedia commented 3 years ago

I can now understand more now behind @johnkslg idea of Smog transfer along pipes as we do sometimes need a slight horizontal movement to get a pipe outside of a room, Unless a Chimney Building block which has an iron/Copper/Steel Pipe Connection can be brought into the Game to Force Players to go through the Roof and then have a Higher pipe above the crafting station.

To be honest i am guilty of moving the Output from the exhaust of a table along long Horizontal pipes that may even go Down to join in with an existing Pipe network to get all my Smog ending up in one Single Output a distance away from the crafting tables.

The only way (in the real world) to physically get Smog/Smoke/Gas to travel along this Pipe system of various ups and downs and long horizontal runs would be to Introduce a NEW Machine into the game which would be an Air Pump that will force it along the pipe system.

We can still have Fun with our Water/Sewage Pipes doing all sorts of runs (Vertical and Horizontal) over long distances dues to the fact that we have Mechanical/Electrical Water Pump that forces it to the Machines, and by the same idea the Machine will be pumping the waste out

Conchipedia commented 3 years ago

i think a lot of us old Eco players are used to how smog/smoke goes in one end of a pipe and after hundreds of pipes in varying up, down, back and forth connections it just appears at the other end magically, seeing as a lot of Eco now is more being based on How things work in the real world we need to rethink our piping strategy and try and think more logically of placement of the Industrial Tables/machines that Pollute.

mirasrael commented 3 years ago

I added tracking for vertical and horizontal pipes length. And now table will only work with strictly vertical pipes.

Engimage commented 3 years ago

@mirasrael @johnkslg This makes chimney blocks a must have now. With pipes leaving holes in the roof this is gonna be disgusting Also it means every table will have its own pipe making it even worse. I think at least small horizontal deviation should be possible to allow pipes go out the windows or group 2-3 tables into one pipe

Conchipedia commented 3 years ago

will a bend count as Vertical or horizontal when a pipe is placed one block away and the pipe auto joins to it?

Two Sets of Vertical Pipes snap7602 Now placing a Vertical pipe snap7603 after Placing the Vertical Pipe snap7604

now will Eco think this is vertical or Horizontal?

Praefator commented 3 years ago

Seconded. While I understand there could technically be an "exploit" if one chooses to route piping hundreds of blocks away, some sort of leeway would go a long way towards those of us who simply want to group up a couple of adjacent polluters and create a singular point of exit roughly in between those same polluters.

Either that, or allow some sort of pump (akin to a tier system like with mech/electric water pumps) which would in some capacity extend the ability to group exhaust together over say 10 or 20 blocks max.

Conchipedia commented 3 years ago

to add on previous point made by @Praefator snap7606 This one contains 8 Horizontal pipes so would fail and not work

snap7605 This one contains ZERO Horizontal Pipes and all turns/joints are added by eco itself so in theory should work.

so we need a small leeway in number of horizontal pipes allowed if multiple machines are grouped together to output out of chimney port

mirasrael commented 3 years ago

@Conchipedia It counts length by pipe direction, so for last screenshot it will have lot of horizontal pipes and won't work. This structure has VerticalLength = 2 and HorizontalLength = 2 while TotalLength = 3

 |
++
|

VerticalLength = 1 and HorizontalLength = 2 while TotalLength = 2

++
|
Conchipedia commented 3 years ago

Looks like we are going to have to be super careful we don't put even a bend in the pipe as that will break it, sadly can see quite a few players having problems with why a pipe wont work with those bends as some even have problems sorting out why a room will drop 0.1 of a tier when they are convinced the room should be a perfect tier score,

Conchipedia commented 3 years ago

@mirasrael but wouldn't the first one you did (cant quite draw it 😛 ) have a vertical score of 3 and horizontal score of 1 ? as they are half pipes not even covering a whole block? (and technically you are only using 4 pipes which is 3+1)

snap7603

as you can see above the pipe comes up the middle of the block then turns half right which would force the other pipe to turn half left so making a single pipe? Unless I'm just working Visually and by code its counted differently ( to me a turn would be 0.5 horizontal and 0.5 vertical)

mirasrael commented 3 years ago

Fixed it to use pipe output position, but we will add restrictions later when we decide what it should be.

mirasrael commented 3 years ago

We end up with restriction which allows you to have chimney output position within 10 blocks from a table output position in each horizontal direction. It should allow to engineer pipe system with connecting outputs together, avoid ugly building with holes in roof, but still do not abuse air pollution mechanic.

SlayksWood commented 3 years ago

Doesn't work at all. Always red status( image

Engimage commented 3 years ago

Well and the text in the Status window on the screenshot above also does not reflect the rule. It says Chimney pipe must have only one open end, which has nothing to do with the 10 distance rule

mirasrael commented 3 years ago

It was an error with status check. Now fixed.

Correct (max distance): image image

It says exact problem when invalid. Output farther than allowed: image image

Multiple open ends: image

Below the object output: image

Conchipedia commented 3 years ago

is that 10 max distance calculation per table or total of pipes connected in a line? as most players would probably be adding Piping from another tables output system into an existing upwards output line so it pollutes in the same place just wondering if something like this would work or would the total length of 12 horizontal pipes break the calculation?

snap7655edited

so my questions are-_ Is Furnace 1 seeing 3 or 12 horizontal pipes to the right? Is Furnace 2 Seeing seeing 3 pipes to the left and 3 or 9 to the right? Is Furnace 3 Seeing 3 or 6 to the left? 3 or 6 to the right? Is Furnace 4 Seeing 3 or 9 to the left? and 3 to the right? Is Furnace 5 Seeing 3 or 12 to the left?

mirasrael commented 3 years ago

It counts distance from Furnace output to pipe output (as it said in status). So: 1st has 3 + 1 + 3 + 1 = 8 2nd has 3 + 1 = 4 3rd has 0 4th has 3 + 1 = 4 5th has 3 + 1 + 3 + 1 = 8

image

Conchipedia commented 3 years ago

thanks for clearing that up, not as if i was trying to find a way around that 10 pipe limit 👼

SlayksWood commented 3 years ago

validation doesn't work when pipe croses zero point. image

SlayksWood commented 3 years ago

It's more complex. Only first blast furnace works with air pipe more than 10 in horizontal. If I place second one nearby, first will stop working immediately: https://drive.google.com/file/d/1rC-87lqzNpdh_MGXgBLqIOB5ycMjrnv9/view?usp=sharing

mirasrael commented 3 years ago

It actually was issue not in pipe implementation, but in neighbor chunks detection. They just wasn't correctly added to monitoring and didn't trigger updates for pipe and so it didn't recalculate it's stats.