Deadlock989 wrote: ↑Tue Jan 19, 2021 1:23 am
Strictly speaking this is not "doubling the pollution". If a machine's pollution is negative it is effectively "cleaning" the chunk it is in, i.e. it removes pollution from the chunk like a tree does. If the chunk's pollution is already zero, nothing is removed because a chunk's pollution value can't be negative. So efficiency modules simply make cleaning machines less effective - you're not "doubling the pollution", you're "halving the cleaning".
Yes, you're right of course -- "doubling" the pollution isn't what it does, it just leaves you with twice the pollution (compared to the un-moduled variety).
You could do as DaveMcW suggests and create a special anti-efficiency module. You can use the module limitation table to make this anti-efficiency module only work on the recipes that your machine works with. You could also add a limitation blacklist to the real efficiency modules.
As mentioned in my reply to DaveMcW, I'm a bit in doubt about creating a new prototype for just one machine. However, making duplicates of the different efficiency modules (hidden items that differ from the original only in the effect on pollution) and changing the vanilla modules to the custom modules on inserting into one of my machines could be an option. (Have to check if the events allow to catch that.)
However all of that falls apart for drills and labs - those don't work with recipes so the only way to stop modules with effect X (positive or negative) being used in those machines is to ban that effect completely from drills and labs.
No concern in this case, I really wanted the module only for a particular kind of assembly-machine.
Another way of finessing it for specific situations is to set up an emissions multiplier scheme on all the recipes that the machine uses, e.g. create "more effective" variants of the recipe which multiply the cleaning power. It depends what you are trying to achieve.
Actually, we do have a "more effective" variant: BI's bio gardens have one recipe for cleaning air using fertilizer + water and one using advanced fertilizer + water. Both recipe have the same non-result:
Code: Select all
results = {
{type = "item", name = "bi-purified-air", amount = 1, probability = 0},
},
The purified air is just a fake item that exists because recipes must have a result. The actual purpose of the recipe is that the garden can work and produce negative pollution while running. The main difference between the two recipes is energy_required, e.g. the time it takes to complete one non-product: It is 40 seconds with normal fertilizer vs. 100 seconds with advanced fertilizer. So everything is turned around (the gain of the recipe with advanced fertilizer is that you need much longer to produce one non-item, thus keeping the garden emitting negative pollution for a longer time, while consuming the same amount of ingredients per non-crafting run).
My experience with air-cleaning machines is that you end up banning burner energy sources (because fuels can have emissions multipliers as well, creating the same problems; electric and void are fine) and also banning efficiency effects because it just saves you choosing from between two or three varieties of lightly broken hassle. Banning the efficiency effect does not change the way recipe and fuel emissions multipliers work.
I've already considered removing all module slots from the gardens, actually. Productivity modules obviously make no sense when the output will always be 0. Speed modules don't make sense either because they would reduce the time the garden can emit negative pollution and increase consumption of ingredients (slow-down modules would be viable, though). But cluttering the crafting menu with new modules (the different tiers) that can only be used in one particular machine would be a waste of screen real estate, and trying to replace the module in the cursor on inserting may open up a whole box of new problems (e.g. with blueprints), so no modules seems like the easiest way out.
But if I may change the topic to pollution:
If a machine's pollution is negative it is effectively "cleaning" the chunk it is in, i.e. it removes pollution from the chunk like a tree does. If the chunk's pollution is already zero, nothing is removed because a chunk's pollution value can't be negative.
The wiki:
https://wiki.factorio.com/Pollution wrote:
[Pollution] is produced by many buildings involved in processing items and spreads outwards at a steady rate.
The evolution factor is not increased by the spreading/absorbed pollution, but by the pollution produced by all the player's machinery at every tick.
The bio gardens are 3x3 entities, so for the sake of the argument, let's assume you could place 100 of them on chunk.Together, they'd reduce the pollution value of that chunk by 4500/minute, but that would have no immediate effect on that chunk because no machines with positive pollution could be placed there, so the chunk would end up with 0 pollution according to you. However, that chunk would remove any pollution spreading in from adjoining chunks (as long as that is less than 4500/minute), so it would make sense to place a chunk full of gardens in the center of heavily polluting chunks (to suck up pollution from all directions) and at the very border (to reduce the amount of pollution reaching the biters) -- is that correct? Also, while the cleaned area is limited to one chunk, a chunk full of those gardens would reduce the total amount of pollution produced by the complete factory and thus inhibit evolution, or is that assumption wrong? I'm asking because there was a request for a bigger version of the gardens, and I've played with the thought of making it a really huge entity (half a chunk, perhaps). Just want to make sure something like this really makes sense.