aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api')
-rw-r--r--src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java
index d250943a23..5b29f886f0 100644
--- a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java
+++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java
@@ -635,7 +635,11 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity
// Early exit if pollution is disabled
if (!GTMod.gregtechproxy.mPollution) return true;
mPollution += aPollutionLevel;
- for (MTEHatchMuffler tHatch : validMTEList(mMufflerHatches)) {
+ if (mPollution < 10000) return true;
+ var validMufflers = new ArrayList<MTEHatchMuffler>(mMufflerHatches.size());
+ validMTEList(mMufflerHatches).forEach(validMufflers::add);
+ Collections.shuffle(validMufflers);
+ for (MTEHatchMuffler tHatch : validMufflers) {
if (mPollution >= 10000) {
if (tHatch.polluteEnvironment(this)) {
mPollution -= 10000;
@@ -1823,8 +1827,13 @@ public abstract class MTEMultiBlockBase extends MetaTileEntity
@Override
public String[] getInfoData() {
int mPollutionReduction = 0;
- for (MTEHatchMuffler tHatch : validMTEList(mMufflerHatches)) {
- mPollutionReduction = Math.max(tHatch.calculatePollutionReduction(100), mPollutionReduction);
+ var validMufflers = new ArrayList<MTEHatchMuffler>(mMufflerHatches.size());
+ validMTEList(mMufflerHatches).forEach(validMufflers::add);
+ if (validMufflers.size() > 0) {
+ for (MTEHatchMuffler tHatch : validMufflers) {
+ mPollutionReduction += tHatch.calculatePollutionReduction(100);
+ }
+ mPollutionReduction /= validMufflers.size();
}
long storedEnergy = 0;