From 36acbb9baed7dae4e19fde7a95852b7d002b2f5c Mon Sep 17 00:00:00 2001 From: Abdiel Kavash <19243993+AbdielKavash@users.noreply.github.com> Date: Wed, 20 Nov 2024 11:08:11 -0600 Subject: Follow up fixes for multiple muffler hatches. (#3505) Co-authored-by: Martin Robertz --- .../implementations/MTEHatchMufflerAdvanced.java | 17 ++++++++++------- .../implementations/base/GTPPMultiBlockBase.java | 13 ++----------- 2 files changed, 12 insertions(+), 18 deletions(-) (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/api') diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchMufflerAdvanced.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchMufflerAdvanced.java index 5919a71b25..40e804bf36 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchMufflerAdvanced.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/MTEHatchMufflerAdvanced.java @@ -84,18 +84,21 @@ public class MTEHatchMufflerAdvanced extends MTEHatchMuffler implements IAddGreg } @Override - public boolean polluteEnvironment(MetaTileEntity parentTileEntity) { + public boolean polluteEnvironment(MetaTileEntity parentTileEntity, int pollutionAmount) { if (!airCheck()) return false; // Muffler obstructed. - - int emission = 10000; - if (damageAirFilter(parentTileEntity)) { + if (pollutionAmount < 10000 && pollutionAmount <= parentTileEntity.getBaseMetaTileEntity() + .getRandomNumber(10000)) { + // If we are venting less than the maximum amount of pollution, damage filter with a lower chance. + // This happens if a multiblock has more than one muffler. + pollutionAmount = calculatePollutionReduction(pollutionAmount, true); + } else if (damageAirFilter(parentTileEntity)) { // damageAirFilter already checks that we have a valid filter. - emission = calculatePollutionReduction(emission, true); + pollutionAmount = calculatePollutionReduction(pollutionAmount, true); } else { // Revert to reduction of the basic muffler. - emission = super.calculatePollutionReduction(emission); + pollutionAmount = super.calculatePollutionReduction(pollutionAmount); } - Pollution.addPollution(getBaseMetaTileEntity(), emission); + Pollution.addPollution(getBaseMetaTileEntity(), pollutionAmount); return true; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java index df55649bb5..9b5448ac49 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GTPPMultiBlockBase.java @@ -240,7 +240,6 @@ public abstract class GTPPMultiBlockBase 0) { - int mPollutionReduction = getPollutionReductionForAllMufflers(); mInfo.add( StatCollector.translateToLocal("GTPP.multiblock.pollution") + ": " + EnumChatFormatting.RED @@ -250,7 +249,7 @@ public abstract class GTPPMultiBlockBase StatCollector.translateToLocal("GTPP.multiblock.pollutionreduced") + ": " + EnumChatFormatting.GREEN - + getPollutionReductionForAllMufflers() + + getAveragePollutionPercentage() + EnumChatFormatting.RESET + " %") .setDefaultColor(COLOR_TEXT_WHITE.get()) -- cgit