diff options
99 files changed, 1454 insertions, 657 deletions
diff --git a/src/main/java/bartworks/common/configs/Configuration.java b/src/main/java/bartworks/common/configs/Configuration.java index 50d144dc32..5ac693b92c 100644 --- a/src/main/java/bartworks/common/configs/Configuration.java +++ b/src/main/java/bartworks/common/configs/Configuration.java @@ -19,8 +19,6 @@ public class Configuration { public static final SingleBlocks singleBlocks = new SingleBlocks(); - public static final Pollution pollution = new Pollution(); - public static final RossRuinMetas rossRuinMetas = new RossRuinMetas(); @Config.Comment("Mixins section.") @@ -106,18 +104,6 @@ public class Configuration { public int mbWaterperSec; } - @Config.Comment("Pollution section.") - public static class Pollution { - - @Config.Comment("How much should the Simple Stirling Water Pump produce pollution per second") - @Config.DefaultInt(5) - public int pollutionHeatedWaterPumpSecond; - - @Config.Comment("How much should the MBF produce pollution per tick per ingot. Then it'll be multiplied by the amount of ingots done in parallel") - @Config.DefaultInt(400) - public int basePollutionMBFSecond; - } - @Config.Comment("Ross' ruins machine metaIDs section.") public static class RossRuinMetas { diff --git a/src/main/java/bartworks/common/tileentities/classic/TileEntityHeatedWaterPump.java b/src/main/java/bartworks/common/tileentities/classic/TileEntityHeatedWaterPump.java index 046ecb40f2..88afbd821c 100644 --- a/src/main/java/bartworks/common/tileentities/classic/TileEntityHeatedWaterPump.java +++ b/src/main/java/bartworks/common/tileentities/classic/TileEntityHeatedWaterPump.java @@ -49,7 +49,8 @@ import bartworks.API.modularUI.BWUITextures; import bartworks.MainMod; import bartworks.common.configs.Configuration; import gregtech.api.util.GTUtility; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; public class TileEntityHeatedWaterPump extends TileEntity implements ITileDropsContent, IFluidHandler, IFluidTank, ITileWithModularUI, ITileAddsInformation, ITileHasDifferentTextureSides { @@ -167,8 +168,7 @@ public class TileEntityHeatedWaterPump extends TileEntity implements ITileDropsC .ifPresent(e -> { if (e.getTotalWorldTime() % 20 == 0) { Optional.ofNullable(e.getChunkFromBlockCoords(this.xCoord, this.zCoord)) - .ifPresent( - c -> Pollution.addPollution(c, Configuration.pollution.pollutionHeatedWaterPumpSecond)); + .ifPresent(c -> Pollution.addPollution(c, PollutionConfig.pollutionHeatedWaterPumpSecond)); } }); } @@ -334,7 +334,7 @@ public class TileEntityHeatedWaterPump extends TileEntity implements ITileDropsC + GTUtility.formatNumbers(Configuration.singleBlocks.mbWaterperSec) + String.format( StatCollector.translateToLocal("tooltip.tile.waterpump.1.name"), - Configuration.pollution.pollutionHeatedWaterPumpSecond), + PollutionConfig.pollutionHeatedWaterPumpSecond), StatCollector.translateToLocal("tooltip.tile.waterpump.2.name") }; } diff --git a/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaBlastFurnace.java b/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaBlastFurnace.java index 7a5e361c8d..9fb028d51c 100644 --- a/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaBlastFurnace.java +++ b/src/main/java/bartworks/common/tileentities/multis/mega/MTEMegaBlastFurnace.java @@ -71,6 +71,7 @@ import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; +import gregtech.common.pollution.PollutionConfig; public class MTEMegaBlastFurnace extends MegaMultiBlockBase<MTEMegaBlastFurnace> implements ISurvivalConstructable { @@ -151,7 +152,7 @@ public class MTEMegaBlastFurnace extends MegaMultiBlockBase<MTEMegaBlastFurnace> Materials.CarbonMonoxide.getGas(1000), Materials.SulfurDioxide.getGas(1000) }; private int mHeatingCapacity; private byte glassTier; - private final static int polPtick = Configuration.pollution.basePollutionMBFSecond / 20 + private final static int polPtick = PollutionConfig.basePollutionMBFSecond / 20 * Configuration.Multiblocks.megaMachinesMax; public MTEMegaBlastFurnace(int aID, String aName, String aNameRegional) { diff --git a/src/main/java/detrav/items/behaviours/BehaviourDetravToolProspector.java b/src/main/java/detrav/items/behaviours/BehaviourDetravToolProspector.java index 79da529aeb..22a9f7b220 100644 --- a/src/main/java/detrav/items/behaviours/BehaviourDetravToolProspector.java +++ b/src/main/java/detrav/items/behaviours/BehaviourDetravToolProspector.java @@ -36,11 +36,11 @@ import gregtech.api.items.MetaBaseItem; import gregtech.api.objects.ItemData; import gregtech.api.util.GTLanguageManager; import gregtech.api.util.GTOreDictUnificator; -import gregtech.common.Pollution; import gregtech.common.UndergroundOil; import gregtech.common.blocks.BlockOresAbstract; import gregtech.common.blocks.TileEntityOres; import gregtech.common.items.behaviors.BehaviourNone; +import gregtech.common.pollution.Pollution; /** * Created by wital_000 on 19.03.2016. diff --git a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java index e9364f922b..3d6a33fe7f 100644 --- a/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java +++ b/src/main/java/gregtech/api/graphs/consumers/NodeEnergyReceiver.java @@ -14,7 +14,7 @@ import gregtech.api.enums.GTValues; import gregtech.api.enums.SoundResource; import gregtech.api.util.GTUtility; import gregtech.api.util.WorldSpawnedEventBuilder; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; // consumer for RF machines public class NodeEnergyReceiver extends ConsumerNode { diff --git a/src/main/java/gregtech/api/interfaces/ICleanroomReceiver.java b/src/main/java/gregtech/api/interfaces/ICleanroomReceiver.java index b26c7035c7..c7c488ccbd 100644 --- a/src/main/java/gregtech/api/interfaces/ICleanroomReceiver.java +++ b/src/main/java/gregtech/api/interfaces/ICleanroomReceiver.java @@ -4,7 +4,7 @@ import javax.annotation.Nullable; import net.minecraft.tileentity.TileEntity; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; /** * Implement this interface for TileEntities that can have association to cleanroom. diff --git a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java index e39f78cee0..da81e7d9cb 100644 --- a/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java +++ b/src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java @@ -83,8 +83,8 @@ import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; import gregtech.api.util.shutdown.ShutDownReason; import gregtech.api.util.shutdown.ShutDownReasonRegistry; -import gregtech.common.Pollution; import gregtech.common.covers.CoverInfo; +import gregtech.common.pollution.Pollution; import ic2.api.Direction; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEBasicGenerator.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEBasicGenerator.java index 963acf191f..8ab0da4349 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEBasicGenerator.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEBasicGenerator.java @@ -22,7 +22,7 @@ import gregtech.api.recipe.maps.FuelBackend; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; public abstract class MTEBasicGenerator extends MTEBasicTank implements RecipeMapWorkable { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMuffler.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMuffler.java index 179ba56254..576389de80 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMuffler.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEHatchMuffler.java @@ -18,7 +18,7 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.render.TextureFactory; import gregtech.api.util.GTLanguageManager; import gregtech.api.util.WorldSpawnedEventBuilder; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; @SuppressWarnings("unused") // Unused API is expected within scope public class MTEHatchMuffler extends MTEHatch { diff --git a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java index 363c45bfc9..ce508433ec 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/MTEMultiBlockBase.java @@ -95,11 +95,11 @@ import gregtech.api.util.VoidProtectionHelper; import gregtech.api.util.shutdown.ShutDownReason; import gregtech.api.util.shutdown.ShutDownReasonRegistry; import gregtech.client.GTSoundLoop; -import gregtech.common.Pollution; import gregtech.common.config.MachineStats; import gregtech.common.gui.modularui.widget.CheckRecipeResultSyncer; import gregtech.common.gui.modularui.widget.ShutDownReasonSyncer; import gregtech.common.items.MetaGeneratedTool01; +import gregtech.common.pollution.Pollution; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; import gregtech.common.tileentities.machines.IRecipeProcessingAwareHatch; diff --git a/src/main/java/gregtech/api/task/tasks/PollutionTask.java b/src/main/java/gregtech/api/task/tasks/PollutionTask.java index 3770409fb1..c8c9705e6c 100644 --- a/src/main/java/gregtech/api/task/tasks/PollutionTask.java +++ b/src/main/java/gregtech/api/task/tasks/PollutionTask.java @@ -8,7 +8,7 @@ import gregtech.api.enums.TickTime; import gregtech.api.interfaces.tileentity.IMachineProgress; import gregtech.api.task.TaskHost; import gregtech.api.task.TickableTask; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; public class PollutionTask<T extends TaskHost & IMachineProgress> extends TickableTask<T> { diff --git a/src/main/java/gregtech/api/util/GTUtility.java b/src/main/java/gregtech/api/util/GTUtility.java index 83cd5ced7a..da805f995d 100644 --- a/src/main/java/gregtech/api/util/GTUtility.java +++ b/src/main/java/gregtech/api/util/GTUtility.java @@ -167,8 +167,8 @@ import gregtech.api.objects.ItemData; import gregtech.api.recipe.RecipeMaps; import gregtech.api.threads.RunnableSound; import gregtech.api.util.extensions.ArrayExt; -import gregtech.common.Pollution; import gregtech.common.blocks.BlockOresAbstract; +import gregtech.common.pollution.Pollution; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; import ic2.api.recipe.RecipeInputOreDict; diff --git a/src/main/java/gregtech/asm/GTCorePlugin.java b/src/main/java/gregtech/asm/GTCorePlugin.java index 3b8aa08d16..f8dde28c58 100644 --- a/src/main/java/gregtech/asm/GTCorePlugin.java +++ b/src/main/java/gregtech/asm/GTCorePlugin.java @@ -10,6 +10,7 @@ import com.gtnewhorizon.gtnhmixins.IEarlyMixinLoader; import bartworks.common.configs.Configuration; import cpw.mods.fml.relauncher.IFMLLoadingPlugin; +import gregtech.common.pollution.PollutionConfig; import gregtech.mixin.Mixin; import gtPlusPlus.core.config.ASMConfiguration; @@ -20,8 +21,9 @@ public class GTCorePlugin implements IFMLLoadingPlugin, IEarlyMixinLoader { static { try { - ConfigurationManager.registerConfig(Configuration.class); ConfigurationManager.registerConfig(ASMConfiguration.class); + ConfigurationManager.registerConfig(Configuration.class); + ConfigurationManager.registerConfig(PollutionConfig.class); } catch (ConfigException e) { throw new RuntimeException(e); } diff --git a/src/main/java/gregtech/client/GTGUIClientConfig.java b/src/main/java/gregtech/client/GTGUIClientConfig.java index cf063acf55..875e62f7f8 100644 --- a/src/main/java/gregtech/client/GTGUIClientConfig.java +++ b/src/main/java/gregtech/client/GTGUIClientConfig.java @@ -11,6 +11,7 @@ import gregtech.common.config.Client; import gregtech.common.config.Gregtech; import gregtech.common.config.MachineStats; import gregtech.common.config.Worldgen; +import gregtech.common.pollution.PollutionConfig; public class GTGUIClientConfig extends SimpleGuiConfig { @@ -23,6 +24,7 @@ public class GTGUIClientConfig extends SimpleGuiConfig { Client.class, Gregtech.class, MachineStats.class, + PollutionConfig.class, Worldgen.class); } } diff --git a/src/main/java/gregtech/common/GTClient.java b/src/main/java/gregtech/common/GTClient.java index 844731e82f..7cd673c001 100644 --- a/src/main/java/gregtech/common/GTClient.java +++ b/src/main/java/gregtech/common/GTClient.java @@ -92,6 +92,8 @@ import gregtech.client.GTMouseEventHandler; import gregtech.client.SeekingOggCodec; import gregtech.common.blocks.BlockFrameBox; import gregtech.common.blocks.ItemMachines; +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionRenderer; import gregtech.common.render.BlackholeRenderer; import gregtech.common.render.DroneRender; import gregtech.common.render.FlaskRenderer; @@ -101,7 +103,6 @@ import gregtech.common.render.GTRendererBlock; import gregtech.common.render.LaserRenderer; import gregtech.common.render.MetaGeneratedToolRenderer; import gregtech.common.render.MultiTileRenderer; -import gregtech.common.render.PollutionRenderer; import gregtech.common.render.WormholeRenderer; import gregtech.common.render.items.DataStickRenderer; import gregtech.common.render.items.InfiniteSprayCanRenderer; @@ -670,6 +671,7 @@ public class GTClient extends GTProxy implements Runnable { .forEach(CoverBehaviorBase::reloadColorOverride); } }); + Pollution.onPostInitClient(); } @Override diff --git a/src/main/java/gregtech/common/GTProxy.java b/src/main/java/gregtech/common/GTProxy.java index 643811234d..e7cb627c91 100644 --- a/src/main/java/gregtech/common/GTProxy.java +++ b/src/main/java/gregtech/common/GTProxy.java @@ -167,6 +167,7 @@ import gregtech.common.items.MetaGeneratedTool01; import gregtech.common.misc.GlobalEnergyWorldSavedData; import gregtech.common.misc.GlobalMetricsCoverDatabase; import gregtech.common.misc.spaceprojects.SpaceProjectWorldSavedData; +import gregtech.common.pollution.Pollution; import gregtech.common.tileentities.machines.multi.drone.MTEDroneCentre; import gregtech.nei.GTNEIDefaultHandler; diff --git a/src/main/java/gregtech/common/config/Gregtech.java b/src/main/java/gregtech/common/config/Gregtech.java index a293b6cba7..e852a6b022 100644 --- a/src/main/java/gregtech/common/config/Gregtech.java +++ b/src/main/java/gregtech/common/config/Gregtech.java @@ -27,9 +27,6 @@ public class Gregtech { @Config.Comment("Ore drop behavior section") public static final OreDropBehavior oreDropBehavior = new OreDropBehavior(); - @Config.Comment("Pollution section") - public static final Pollution pollution = new Pollution(); - @Config.LangKey("GT5U.gui.config.gregtech.debug") public static class Debug { @@ -558,128 +555,4 @@ public class Gregtech { @Config.RequiresMcRestart public GTProxy.OreDropSystem setting = GTProxy.OreDropSystem.FortuneItem; } - - @Config.LangKey("GT5U.gui.config.gregtech.pollution") - public static class Pollution { - - @Config.Comment("if true, enables pollution in the game.") - @Config.DefaultBoolean(true) - @Config.RequiresMcRestart - public boolean pollution; - - @Config.Comment("Controls the threshold starting from which you can see fog.") - @Config.DefaultInt(550_000) - @Config.RequiresMcRestart - public int pollutionSmogLimit; - @Config.Comment("Controls the threshold starting from which players get poison effect.") - @Config.DefaultInt(750_000) - @Config.RequiresMcRestart - public int pollutionPoisonLimit; - @Config.Comment("Controls the threshold starting from which vegetation starts to be killed.") - @Config.DefaultInt(1_000_000) - @Config.RequiresMcRestart - public int pollutionVegetationLimit; - @Config.Comment("Controls the threshold starting from which if it rains, will turn cobblestone into gravel and gravel into sand.") - @Config.DefaultInt(2_000_000) - @Config.RequiresMcRestart - public int pollutionSourRainLimit; - @Config.Comment("Controls the pollution released by an explosion.") - @Config.DefaultInt(100_000) - @Config.RequiresMcRestart - public int pollutionOnExplosion; - @Config.Comment("Controls the pollution released per second by the bricked blast furnace.") - @Config.DefaultInt(200) - @Config.RequiresMcRestart - public int pollutionPrimitveBlastFurnacePerSecond; - @Config.Comment("Controls the pollution released per second by the charcoal pile igniter.") - @Config.DefaultInt(100) - @Config.RequiresMcRestart - public int pollutionCharcoalPitPerSecond; - @Config.Comment("Controls the pollution released per second by the EBF.") - @Config.DefaultInt(400) - @Config.RequiresMcRestart - public int pollutionEBFPerSecond; - @Config.Comment("Controls the pollution released per second by the large combustion engine.") - @Config.DefaultInt(480) - @Config.RequiresMcRestart - public int pollutionLargeCombustionEnginePerSecond; - @Config.Comment("Controls the pollution released per second by the extreme combustion engine.") - @Config.DefaultInt(3_840) - @Config.RequiresMcRestart - public int pollutionExtremeCombustionEnginePerSecond; - @Config.Comment("Controls the pollution released per second by the implosion compressor.") - @Config.DefaultInt(10_000) - @Config.RequiresMcRestart - public int pollutionImplosionCompressorPerSecond; - @Config.Comment("Controls the pollution released per second by the large bronze boiler.") - @Config.DefaultInt(1_000) - @Config.RequiresMcRestart - public int pollutionLargeBronzeBoilerPerSecond; - @Config.Comment("Controls the pollution released per second by the large steel boiler.") - @Config.DefaultInt(2_000) - @Config.RequiresMcRestart - public int pollutionLargeSteelBoilerPerSecond; - @Config.Comment("Controls the pollution released per second by the large titanium boiler.") - @Config.DefaultInt(3_000) - @Config.RequiresMcRestart - public int pollutionLargeTitaniumBoilerPerSecond; - @Config.Comment("Controls the pollution released per second by the large tungstensteel boiler.") - @Config.DefaultInt(4_000) - @Config.RequiresMcRestart - public int pollutionLargeTungstenSteelBoilerPerSecond; - @Config.Comment("Controls the pollution reduction obtained with each increment of the circuit when throttling large boilers.") - @Config.DefaultFloat(1.0f / 24.0f) // divided by 24 because there are 24 circuit configs. - @Config.RequiresMcRestart - public float pollutionReleasedByThrottle; - @Config.Comment("Controls the pollution released per second by the large gas turbine.") - @Config.DefaultInt(300) - @Config.RequiresMcRestart - public int pollutionLargeGasTurbinePerSecond; - @Config.Comment("Controls the pollution released per second by the multi smelter.") - @Config.DefaultInt(400) - @Config.RequiresMcRestart - public int pollutionMultiSmelterPerSecond; - @Config.Comment("Controls the pollution released per second by the pyrolyse oven.") - @Config.DefaultInt(300) - @Config.RequiresMcRestart - public int pollutionPyrolyseOvenPerSecond; - @Config.Comment("Controls the pollution released per second by the small coil boiler.") - @Config.DefaultInt(20) - @Config.RequiresMcRestart - public int pollutionSmallCoalBoilerPerSecond; - @Config.Comment("Controls the pollution released per second by the high pressure lava boiler.") - @Config.DefaultInt(20) - @Config.RequiresMcRestart - public int pollutionHighPressureLavaBoilerPerSecond; - @Config.Comment("Controls the pollution released per second by the high pressure coil boiler.") - @Config.DefaultInt(30) - @Config.RequiresMcRestart - public int pollutionHighPressureCoalBoilerPerSecond; - - @Config.Comment("Controls the pollution released per second by the base diesel generator.") - @Config.DefaultInt(40) - @Config.RequiresMcRestart - public int pollutionBaseDieselGeneratorPerSecond; - - // reading double as strings, not perfect, but better than nothing - @Config.Comment({ - "Pollution released by tier, with the following formula: PollutionBaseDieselGeneratorPerSecond * PollutionDieselGeneratorReleasedByTier[Tier]", - "The first entry has meaning as it is here to since machine tier with array index: LV is 1, etc." }) - @Config.DefaultDoubleList({ 0.1, 1.0, 0.9, 0.8 }) - @Config.RequiresMcRestart - public double[] pollutionDieselGeneratorReleasedByTier; - - @Config.Comment("Controls the pollution released per second by the base gas turbine.") - @Config.DefaultInt(40) - @Config.RequiresMcRestart - public int pollutionBaseGasTurbinePerSecond; - - // reading double as strings, not perfect, but better than nothing - @Config.Comment({ - "Pollution released by tier, with the following formula: PollutionBaseGasTurbinePerSecond * PollutionGasTurbineReleasedByTier[Tier]", - "The first entry has meaning as it is here to since machine tier with array index: LV is 1, etc." }) - @Config.DefaultDoubleList({ 0.1, 1.0, 0.9, 0.8, 0.7, 0.6 }) - @Config.RequiresMcRestart - public double[] pollutionGasTurbineReleasedByTier; - } } diff --git a/src/main/java/gregtech/common/misc/GTCommand.java b/src/main/java/gregtech/common/misc/GTCommand.java index f1590ec792..e6fbe12144 100644 --- a/src/main/java/gregtech/common/misc/GTCommand.java +++ b/src/main/java/gregtech/common/misc/GTCommand.java @@ -25,8 +25,8 @@ import gregtech.api.enums.GTValues; import gregtech.api.objects.GTChunkManager; import gregtech.api.util.GTMusicSystem; import gregtech.api.util.GTUtility; -import gregtech.common.Pollution; import gregtech.common.misc.spaceprojects.SpaceProjectManager; +import gregtech.common.pollution.Pollution; public final class GTCommand extends CommandBase { diff --git a/src/main/java/gregtech/common/pollution/BlockMatcher.java b/src/main/java/gregtech/common/pollution/BlockMatcher.java new file mode 100644 index 0000000000..a701d323bd --- /dev/null +++ b/src/main/java/gregtech/common/pollution/BlockMatcher.java @@ -0,0 +1,96 @@ +package gregtech.common.pollution; + +import java.util.Map; +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.client.multiplayer.WorldClient; +import net.minecraftforge.event.world.WorldEvent; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.registry.FMLControlledNamespacedRegistry; +import cpw.mods.fml.common.registry.GameData; +import gregtech.GTMod; + +// Shamelessly Taken from BetterFoliage by octarine-noise +public class BlockMatcher { + + public Map<Class<?>, ColorOverrideType> whiteList = Maps.newHashMap(); + public Set<Class<?>> blackList = Sets.newHashSet(); + public Map<Integer, ColorOverrideType> blockIDs = Maps.newHashMap(); + + public ColorOverrideType matchesID(int blockId) { + return blockIDs.get(blockId); + } + + public ColorOverrideType matchesID(Block block) { + return blockIDs.get(Block.blockRegistry.getIDForObject(block)); + } + + public void updateClassList(String[] cfg) { + whiteList.clear(); + blackList.clear(); + for (String line : cfg) { + GTMod.GT_FML_LOGGER.info("Checking for block:" + line); + String[] lines = line.split(":"); + ColorOverrideType type = null; + if (lines.length > 1) { + try { + type = ColorOverrideType.fromName(lines[1].trim()); + } catch (NumberFormatException e) { + GTMod.GT_FML_LOGGER.error(String.format("Invalid type [%s]", line)); + continue; + } + } + + if (lines[0].startsWith("-")) { + try { + blackList.add(Class.forName(lines[0].substring(1))); + GTMod.GT_FML_LOGGER.info("\t added blacklist:" + lines[0].substring(1)); + } catch (ClassNotFoundException ignored) {} + } else { + if (type == null) { + GTMod.GT_FML_LOGGER.error(String.format("Invalid type [%s]", line)); + continue; + } + + try { + whiteList.put(Class.forName(lines[0]), type); + GTMod.GT_FML_LOGGER.info("\t added whitelist:" + lines[0]); + } catch (ClassNotFoundException ignored) {} + } + } + // updateBlockIDs(); + } + + private void updateBlockIDs() { + blockIDs.clear(); + FMLControlledNamespacedRegistry<Block> blockRegistry = GameData.getBlockRegistry(); + for (Block block : blockRegistry.typeSafeIterable()) { + ColorOverrideType t = matchesClass(block); + if (t != null) blockIDs.put(Block.blockRegistry.getIDForObject(block), t); + } + } + + private ColorOverrideType matchesClass(Block block) { + for (Class<?> clazz : blackList) if (clazz.isAssignableFrom(block.getClass())) return null; + for (Class<?> clazz : whiteList.keySet()) + if (clazz.isAssignableFrom(block.getClass())) return whiteList.get(clazz); + return null; + } + + /** + * Caches block IDs on world load for fast lookup + * + * @param event + */ + @SubscribeEvent + public void handleWorldLoad(WorldEvent.Load event) { + if (event.world instanceof WorldClient) { + updateBlockIDs(); + } + } +} diff --git a/src/main/java/gregtech/common/pollution/ColorOverrideType.java b/src/main/java/gregtech/common/pollution/ColorOverrideType.java new file mode 100644 index 0000000000..de0a44a835 --- /dev/null +++ b/src/main/java/gregtech/common/pollution/ColorOverrideType.java @@ -0,0 +1,28 @@ +package gregtech.common.pollution; + +public enum ColorOverrideType { + + FLOWER, + GRASS, + LEAVES, + LIQUID; + + public static ColorOverrideType fromName(String name) { + return switch (name) { + case "FLOWER" -> FLOWER; + case "GRASS" -> GRASS; + case "LEAVES" -> LEAVES; + case "LIQUID" -> LIQUID; + default -> throw new RuntimeException(); + }; + } + + public int getColor(int oColor, int x, int z) { + return switch (this) { + case FLOWER -> PollutionRenderer.colorFoliage(oColor, x, z); + case GRASS -> PollutionRenderer.colorGrass(oColor, x, z); + case LEAVES -> PollutionRenderer.colorLeaves(oColor, x, z); + case LIQUID -> PollutionRenderer.colorLiquid(oColor, x, z); + }; + } +} diff --git a/src/main/java/gregtech/common/entities/EntityFXPollution.java b/src/main/java/gregtech/common/pollution/EntityFXPollution.java index facd3d3364..f1a1f18447 100644 --- a/src/main/java/gregtech/common/entities/EntityFXPollution.java +++ b/src/main/java/gregtech/common/pollution/EntityFXPollution.java @@ -1,4 +1,4 @@ -package gregtech.common.entities; +package gregtech.common.pollution; import java.util.Random; diff --git a/src/main/java/gregtech/common/misc/GTClientPollutionMap.java b/src/main/java/gregtech/common/pollution/GTClientPollutionMap.java index 546f8e8d12..0fd1da309b 100644 --- a/src/main/java/gregtech/common/misc/GTClientPollutionMap.java +++ b/src/main/java/gregtech/common/pollution/GTClientPollutionMap.java @@ -1,4 +1,4 @@ -package gregtech.common.misc; +package gregtech.common.pollution; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; diff --git a/src/main/java/gregtech/common/Pollution.java b/src/main/java/gregtech/common/pollution/Pollution.java index 4245a0ef12..10b8ffcfa7 100644 --- a/src/main/java/gregtech/common/Pollution.java +++ b/src/main/java/gregtech/common/pollution/Pollution.java @@ -1,4 +1,4 @@ -package gregtech.common; +package gregtech.common.pollution; import static gregtech.api.objects.XSTR.XSTR_INSTANCE; import static gregtech.common.GTProxy.dimensionWisePollution; @@ -45,7 +45,6 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.net.GTPacketPollution; import gregtech.api.util.GTChunkAssociatedData; import gregtech.api.util.GTUtility; -import gregtech.common.render.PollutionRenderer; public class Pollution { @@ -101,6 +100,33 @@ public class Pollution { pollutionInstance.tickPollutionInWorld((int) (aEvent.world.getTotalWorldTime() % cycleLen)); } + public static BlockMatcher standardBlocks; + public static BlockMatcher liquidBlocks; + public static BlockMatcher doublePlants; + public static BlockMatcher crossedSquares; + public static BlockMatcher blockVine; + + public static void onPostInitClient() { + if (PollutionConfig.pollution) { + standardBlocks = new BlockMatcher(); + liquidBlocks = new BlockMatcher(); + doublePlants = new BlockMatcher(); + crossedSquares = new BlockMatcher(); + blockVine = new BlockMatcher(); + standardBlocks.updateClassList(PollutionConfig.renderStandardBlock); + liquidBlocks.updateClassList(PollutionConfig.renderBlockLiquid); + doublePlants.updateClassList(PollutionConfig.renderBlockDoublePlant); + crossedSquares.updateClassList(PollutionConfig.renderCrossedSquares); + blockVine.updateClassList(PollutionConfig.renderblockVine); + MinecraftForge.EVENT_BUS.register(standardBlocks); + MinecraftForge.EVENT_BUS.register(liquidBlocks); + MinecraftForge.EVENT_BUS.register(doublePlants); + MinecraftForge.EVENT_BUS.register(crossedSquares); + MinecraftForge.EVENT_BUS.register(blockVine); + MinecraftForge.EVENT_BUS.register(new PollutionTooltip()); + } + } + private void tickPollutionInWorld(int aTickID) { // called from method above // gen data set if (aTickID == 0 || blank) { @@ -406,7 +432,7 @@ public class Pollution { addPollution(aWorld.getChunkFromBlockCoords(aPos.chunkPosX, aPos.chunkPosZ), aPollution); } - static void migrate(ChunkDataEvent.Load e) { + public static void migrate(ChunkDataEvent.Load e) { addPollution( e.getChunk(), e.getData() diff --git a/src/main/java/gregtech/common/pollution/PollutionConfig.java b/src/main/java/gregtech/common/pollution/PollutionConfig.java new file mode 100644 index 0000000000..90098791c4 --- /dev/null +++ b/src/main/java/gregtech/common/pollution/PollutionConfig.java @@ -0,0 +1,397 @@ +package gregtech.common.pollution; + +import com.gtnewhorizon.gtnhlib.config.Config; + +import gregtech.api.enums.Mods; + +// needs to be loaded early from the coremod because +// it decides to load some mixins or not +@Config(modid = Mods.Names.GREG_TECH, category = "Pollution", configSubDirectory = "GregTech", filename = "Pollution") +public class PollutionConfig { + + // override name to be at the top of the cfg file + @Config.Name("Activate Pollution") + @Config.Comment("if true, enables pollution in the game.") + @Config.DefaultBoolean(true) + @Config.RequiresMcRestart + public static boolean pollution; + + @Config.Comment("Controls the threshold starting from which you can see fog.") + @Config.DefaultInt(550_000) + @Config.RequiresMcRestart + public static int pollutionSmogLimit; + @Config.Comment("Controls the threshold starting from which players get poison effect.") + @Config.DefaultInt(750_000) + @Config.RequiresMcRestart + public static int pollutionPoisonLimit; + @Config.Comment("Controls the threshold starting from which vegetation starts to be killed.") + @Config.DefaultInt(1_000_000) + @Config.RequiresMcRestart + public static int pollutionVegetationLimit; + @Config.Comment("Controls the threshold starting from which if it rains, will turn cobblestone into gravel and gravel into sand.") + @Config.DefaultInt(2_000_000) + @Config.RequiresMcRestart + public static int pollutionSourRainLimit; + @Config.Comment("Controls the pollution released by an explosion.") + @Config.DefaultInt(100_000) + @Config.RequiresMcRestart + public static int pollutionOnExplosion; + @Config.Comment("Controls the pollution released per second by the bricked blast furnace.") + @Config.DefaultInt(200) + @Config.RequiresMcRestart + public static int pollutionPrimitveBlastFurnacePerSecond; + @Config.Comment("Controls the pollution released per second by the charcoal pile igniter.") + @Config.DefaultInt(100) + @Config.RequiresMcRestart + public static int pollutionCharcoalPitPerSecond; + @Config.Comment("Controls the pollution released per second by the EBF.") + @Config.DefaultInt(400) + @Config.RequiresMcRestart + public static int pollutionEBFPerSecond; + @Config.Comment("Controls the pollution released per second by the large combustion engine.") + @Config.DefaultInt(480) + @Config.RequiresMcRestart + public static int pollutionLargeCombustionEnginePerSecond; + @Config.Comment("Controls the pollution released per second by the extreme combustion engine.") + @Config.DefaultInt(3_840) + @Config.RequiresMcRestart + public static int pollutionExtremeCombustionEnginePerSecond; + @Config.Comment("Controls the pollution released per second by the implosion compressor.") + @Config.DefaultInt(10_000) + @Config.RequiresMcRestart + public static int pollutionImplosionCompressorPerSecond; + @Config.Comment("Controls the pollution released per second by the large bronze boiler.") + @Config.DefaultInt(1_000) + @Config.RequiresMcRestart + public static int pollutionLargeBronzeBoilerPerSecond; + @Config.Comment("Controls the pollution released per second by the large steel boiler.") + @Config.DefaultInt(2_000) + @Config.RequiresMcRestart + public static int pollutionLargeSteelBoilerPerSecond; + @Config.Comment("Controls the pollution released per second by the large titanium boiler.") + @Config.DefaultInt(3_000) + @Config.RequiresMcRestart + public static int pollutionLargeTitaniumBoilerPerSecond; + @Config.Comment("Controls the pollution released per second by the large tungstensteel boiler.") + @Config.DefaultInt(4_000) + @Config.RequiresMcRestart + public static int pollutionLargeTungstenSteelBoilerPerSecond; + @Config.Comment("Controls the pollution reduction obtained with each increment of the circuit when throttling large boilers.") + @Config.DefaultFloat(1.0f / 24.0f) // divided by 24 because there are 24 circuit configs. + @Config.RequiresMcRestart + public static float pollutionReleasedByThrottle; + @Config.Comment("Controls the pollution released per second by the large gas turbine.") + @Config.DefaultInt(300) + @Config.RequiresMcRestart + public static int pollutionLargeGasTurbinePerSecond; + @Config.Comment("Controls the pollution released per second by the multi smelter.") + @Config.DefaultInt(400) + @Config.RequiresMcRestart + public static int pollutionMultiSmelterPerSecond; + @Config.Comment("Controls the pollution released per second by the pyrolyse oven.") + @Config.DefaultInt(300) + @Config.RequiresMcRestart + public static int pollutionPyrolyseOvenPerSecond; + @Config.Comment("Controls the pollution released per second by the small coil boiler.") + @Config.DefaultInt(20) + @Config.RequiresMcRestart + public static int pollutionSmallCoalBoilerPerSecond; + @Config.Comment("Controls the pollution released per second by the high pressure lava boiler.") + @Config.DefaultInt(20) + @Config.RequiresMcRestart + public static int pollutionHighPressureLavaBoilerPerSecond; + @Config.Comment("Controls the pollution released per second by the high pressure coil boiler.") + @Config.DefaultInt(30) + @Config.RequiresMcRestart + public static int pollutionHighPressureCoalBoilerPerSecond; + + @Config.Comment("Controls the pollution released per second by the base diesel generator.") + @Config.DefaultInt(40) + @Config.RequiresMcRestart + public static int pollutionBaseDieselGeneratorPerSecond; + + // reading double as strings, not perfect, but better than nothing + @Config.Comment({ + "Pollution released by tier, with the following formula: PollutionBaseDieselGeneratorPerSecond * PollutionDieselGeneratorReleasedByTier[Tier]", + "The first entry has meaning as it is here to since machine tier with array index: LV is 1, etc." }) + @Config.DefaultDoubleList({ 0.1, 1.0, 0.9, 0.8 }) + @Config.RequiresMcRestart + public static double[] pollutionDieselGeneratorReleasedByTier; + + @Config.Comment("Controls the pollution released per second by the base gas turbine.") + @Config.DefaultInt(40) + @Config.RequiresMcRestart + public static int pollutionBaseGasTurbinePerSecond; + + // reading double as strings, not perfect, but better than nothing + @Config.Comment({ + "Pollution released by tier, with the following formula: PollutionBaseGasTurbinePerSecond * PollutionGasTurbineReleasedByTier[Tier]", + "The first entry has meaning as it is here to since machine tier with array index: LV is 1, etc." }) + @Config.DefaultDoubleList({ 0.1, 1.0, 0.9, 0.8, 0.7, 0.6 }) + @Config.RequiresMcRestart + public static double[] pollutionGasTurbineReleasedByTier; + + // Minecraft + @Config.Comment("Explosion pollution") + @Config.DefaultFloat(333.34f) + public static float explosionPollutionAmount; + + @Config.Comment("Make furnaces Pollute") + @Config.DefaultBoolean(true) + @Config.RequiresMcRestart + public static boolean furnacesPollute; + + @Config.Comment("Furnace pollution per second, min 1!") + @Config.DefaultInt(20) + public static int furnacePollutionAmount; + + // Galacticraft + + @Config.Comment("Pollution Amount for Rockets") + @Config.DefaultInt(10000) + public static int rocketPollutionAmount; + + @Config.Comment("Make rockets Pollute") + @Config.DefaultBoolean(true) + @Config.RequiresMcRestart + public static boolean rocketsPollute; + + // Railcraft + + @Config.Comment("Pollution Amount for Advanced Coke Ovens") + @Config.DefaultInt(80) + public static int advancedCokeOvenPollutionAmount; + + @Config.Comment("Pollution Amount for Coke Ovens") + @Config.DefaultInt(10) + public static int cokeOvenPollutionAmount; + + @Config.Comment("Pollution Amount for RC Firebox") + @Config.DefaultInt(20) + public static int fireboxPollutionAmount; + + @Config.Comment("Pollution Amount for hobbyist steam engine") + @Config.DefaultInt(20) + public static int hobbyistEnginePollutionAmount; + + @Config.Comment("Make Railcraft Pollute") + @Config.DefaultBoolean(true) + @Config.RequiresMcRestart + public static boolean railcraftPollutes; + + @Config.Comment("Pollution Amount for tunnel bore") + @Config.DefaultInt(2) + public static int tunnelBorePollutionAmount; + + // bartworks + @Config.Comment("How much should the Simple Stirling Water Pump produce pollution per second") + @Config.DefaultInt(5) + public static int pollutionHeatedWaterPumpSecond; + + @Config.Comment("How much should the MBF produce pollution per tick per ingot. Then it'll be multiplied by the amount of ingots done in parallel") + @Config.DefaultInt(400) + public static int basePollutionMBFSecond; + + @Config.Comment("Changes colors of certain blocks based on pollution levels") + @Config.DefaultBoolean(true) + @Config.RequiresMcRestart + public static boolean pollutionBlockRecolor; + + @Config.Comment("Double Plant Blocks - Recolor Block List") + @Config.DefaultStringList({ "net.minecraft.block.BlockDoublePlant:FLOWER", }) + @Config.RequiresMcRestart + public static String[] renderBlockDoublePlant; + + @Config.Comment("Liquid Blocks - Recolor Block List") + @Config.DefaultStringList({ "net.minecraft.block.BlockLiquid:LIQUID" }) + @Config.RequiresMcRestart + public static String[] renderBlockLiquid; + + @Config.Comment("Block Vine - Recolor Block List") + @Config.DefaultStringList({ "net.minecraft.block.BlockVine:FLOWER", }) + @Config.RequiresMcRestart + public static String[] renderblockVine; + + @Config.Comment("Crossed Squares - Recolor Block List") + @Config.DefaultStringList({ "net.minecraft.block.BlockTallGrass:FLOWER", "net.minecraft.block.BlockFlower:FLOWER", + "biomesoplenty.common.blocks.BlockBOPFlower:FLOWER", "biomesoplenty.common.blocks.BlockBOPFlower2:FLOWER", + "biomesoplenty.common.blocks.BlockBOPFoliage:FLOWER", }) + @Config.RequiresMcRestart + public static String[] renderCrossedSquares; + + @Config.Comment("Standard Blocks - Recolor Block List") + @Config.DefaultStringList({ "net.minecraft.block.BlockGrass:GRASS", "net.minecraft.block.BlockLeavesBase:LEAVES", + "biomesoplenty.common.blocks.BlockOriginGrass:GRASS", "biomesoplenty.common.blocks.BlockLongGrass:GRASS", + "biomesoplenty.common.blocks.BlockNewGrass:GRASS", "tconstruct.blocks.slime.SlimeGrass:GRASS", + "thaumcraft.common.blocks.BlockMagicalLeaves:LEAVES", }) + @Config.RequiresMcRestart + public static String[] renderStandardBlock; + + // gt++ + @Config.Comment("pollution rate in gibbl/s for the Amazon warehousing depot") + @Config.DefaultInt(40) + public static int pollutionPerSecondMultiPackager; + @Config.Comment("pollution rate in gibbl/s for the Alloy blast smelter") + @Config.DefaultInt(300) + public static int pollutionPerSecondMultiIndustrialAlloySmelter; + @Config.Comment("pollution rate in gibbl/s for the High current arc furnace") + @Config.DefaultInt(2_400) + public static int pollutionPerSecondMultiIndustrialArcFurnace; + @Config.Comment("pollution rate in gibbl/s for the Industrial centrifuge") + @Config.DefaultInt(300) + public static int pollutionPerSecondMultiIndustrialCentrifuge; + @Config.Comment("pollution rate in gibbl/s for the Industrial coke oven") + @Config.DefaultInt(80) + public static int pollutionPerSecondMultiIndustrialCokeOven; + @Config.Comment("pollution rate in gibbl/s for the Cutting factory") + @Config.DefaultInt(160) + public static int pollutionPerSecondMultiIndustrialCuttingMachine; + @Config.Comment("pollution rate in gibbl/s for the Utupu-Tanuri") + @Config.DefaultInt(500) + public static int pollutionPerSecondMultiIndustrialDehydrator; + @Config.Comment("pollution rate in gibbl/s for the Industrial electrolyzer") + @Config.DefaultInt(300) + public static int pollutionPerSecondMultiIndustrialElectrolyzer; + @Config.Comment("pollution rate in gibbl/s for the Industrial extrusion machine") + @Config.DefaultInt(1_000) + public static int pollutionPerSecondMultiIndustrialExtruder; + @Config.Comment("pollution rate in gibbl/s for the Maceration stack") + @Config.DefaultInt(400) + public static int pollutionPerSecondMultiIndustrialMacerator; + @Config.Comment("pollution rate in gibbl/s for the Industrial mixing machine") + @Config.DefaultInt(800) + public static int pollutionPerSecondMultiIndustrialMixer; + @Config.Comment("pollution rate in gibbl/s for the Large processing factory in metal mode") + @Config.DefaultInt(400) + public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal; + @Config.Comment("pollution rate in gibbl/s for the Large processing factory in fluid mode") + @Config.DefaultInt(400) + public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid; + @Config.Comment("pollution rate in gibbl/s for the Large processing factory in misc mode") + @Config.DefaultInt(600) + public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc; + @Config.Comment("pollution rate in gibbl/s for the Industrial material press in forming mode") + @Config.DefaultInt(240) + public static int pollutionPerSecondMultiIndustrialPlatePress_ModeForming; + @Config.Comment("pollution rate in gibbl/s for the Industrial material press in bending mode") + @Config.DefaultInt(480) + public static int pollutionPerSecondMultiIndustrialPlatePress_ModeBending; + @Config.Comment("pollution rate in gibbl/s for the Industrial Forge Hammer") + @Config.DefaultInt(250) + public static int pollutionPerSecondMultiIndustrialForgeHammer; + @Config.Comment("pollution rate in gibbl/s for the Large Sifter") + @Config.DefaultInt(40) + public static int pollutionPerSecondMultiIndustrialSifter; + @Config.Comment("pollution rate in gibbl/s for the Large thermal refinery") + @Config.DefaultInt(1_000) + public static int pollutionPerSecondMultiIndustrialThermalCentrifuge; + @Config.Comment("pollution rate in gibbl/s for the Industrial fluid heater") + @Config.DefaultInt(1_000) + public static int pollutionPerSecondMultiIndustrialFluidHeater; + @Config.Comment("pollution rate in gibbl/s for the Cryogenic freezer") + @Config.DefaultInt(500) + public static int pollutionPerSecondMultiIndustrialVacuumFreezer; + @Config.Comment("pollution rate in gibbl/s for the Ore washing plant in chemical bath mode") + @Config.DefaultInt(400) + public static int pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath; + @Config.Comment("pollution rate in gibbl/s for the Ore washing plant in ore washer mode") + @Config.DefaultInt(100) + public static int pollutionPerSecondMultiIndustrialWashPlant_ModeWasher; + @Config.Comment("pollution rate in gibbl/s for the Wire factory") + @Config.DefaultInt(100) + public static int pollutionPerSecondMultiIndustrialWireMill; + @Config.Comment("pollution rate in gibbl/s for the IsaMill grinding machine") + @Config.DefaultInt(1_280) + public static int pollutionPerSecondMultiIsaMill; + @Config.Comment("pollution rate in gibbl/s for the Dangote distillus in distillery mode") + @Config.DefaultInt(240) + public static int pollutionPerSecondMultiAdvDistillationTower_ModeDistillery; + @Config.Comment("pollution rate in gibbl/s for the Dangote distillus in distillation tower mode") + @Config.DefaultInt(480) + public static int pollutionPerSecondMultiAdvDistillationTower_ModeDT; + @Config.Comment("pollution rate in gibbl/s for the Volcanus") + @Config.DefaultInt(500) + public static int pollutionPerSecondMultiAdvEBF; + @Config.Comment("pollution rate in gibbl/s for the Density^2") + @Config.DefaultInt(5_000) + public static int pollutionPerSecondMultiAdvImplosion; + @Config.Comment("pollution rate in gibbl/s for the Alloy blast furnace") + @Config.DefaultInt(200) + public static int pollutionPerSecondMultiABS; + @Config.Comment("pollution rate in gibbl/s for the Cyclotron") + @Config.DefaultInt(200) + public static int pollutionPerSecondMultiCyclotron; + @Config.Comment("pollution rate in gibbl/s for the Zuhai - fishing port") + @Config.DefaultInt(20) + public static int pollutionPerSecondMultiIndustrialFishingPond; + // pollutionPerSecondMultiLargeRocketEngine; + @Config.Comment("pollution rate in gibbl/s for the Large semifluid burner") + @Config.DefaultInt(1_280) + public static int pollutionPerSecondMultiLargeSemiFluidGenerator; + @Config.Comment("pollution rate in gibbl/s for the Matter fabrication CPU") + @Config.DefaultInt(40) + public static int pollutionPerSecondMultiMassFabricator; + @Config.Comment("pollution rate in gibbl/s for the Reactor fuel processing plant") + @Config.DefaultInt(4_000) + public static int pollutionPerSecondMultiRefinery; + @Config.Comment("pollution rate in gibbl/s for the Industrial Rock Breaker") + @Config.DefaultInt(100) + public static int pollutionPerSecondMultiIndustrialRockBreaker; + @Config.Comment("pollution rate in gibbl/s for the Industrial Chisel") + @Config.DefaultInt(50) + public static int pollutionPerSecondMultiIndustrialChisel; + @Config.Comment("pollution rate in gibbl/s for the Tree growth simulator") + @Config.DefaultInt(100) + public static int pollutionPerSecondMultiTreeFarm; + @Config.Comment("pollution rate in gibbl/s for the Flotation cell regulator") + @Config.DefaultInt(0) + public static int pollutionPerSecondMultiFrothFlotationCell; + @Config.Comment("pollution rate in gibbl/s for the Large-Scale auto assembler v1.01") + @Config.DefaultInt(500) + public static int pollutionPerSecondMultiAutoCrafter; + @Config.Comment("pollution rate in gibbl/s for the Nuclear salt processing plant") + @Config.DefaultInt(500) + public static int pollutionPerSecondNuclearSaltProcessingPlant; + @Config.Comment("pollution rate in gibbl/s for the Multiblock Molecular Transformer") + @Config.DefaultInt(1_000) + public static int pollutionPerSecondMultiMolecularTransformer; + + @Config.Comment("pollution rate in gibbl/s for the Elemental Duplicator") + @Config.DefaultInt(1_000) + public static int pollutionPerSecondElementalDuplicator; + + @Config.Comment("pollution rate in gibbl/s for the Thermal boiler") + @Config.DefaultInt(700) + public static int pollutionPerSecondMultiThermalBoiler; + @Config.Comment("pollution rate in gibbl/s for the Algae farm") + @Config.DefaultInt(0) + public static int pollutionPerSecondMultiAlgaePond; + @Config.Comment("base pollution rate in gibbl/s for the single block semi fluid generators") + @Config.DefaultInt(40) + public static int basePollutionPerSecondSemiFluidGenerator; + @Config.Comment("coefficient applied to the base rate of the single block semi fluid generators based on its tier (first is tier 0 aka ULV)") + @Config.DefaultDoubleList({ 0.0, 2.0, 4.0, 8.0, 12.0, 16.0 }) + public static double[] pollutionReleasedByTierSemiFluidGenerator; + @Config.Comment("base pollution rate in gibbl/s for the single block boilers") + @Config.DefaultInt(35) + public static int basePollutionPerSecondBoiler; + @Config.Comment("coefficient applied to the base rate of the single block boilers based on its tier (first is tier 0 aka ULV)") + @Config.DefaultDoubleList({ 0.0, 1.0, 1.43, 1.86 }) + public static double[] pollutionReleasedByTierBoiler; + @Config.Comment("minimum base pollution rate in gibbl/s for the single block rocket engines") + @Config.DefaultInt(250) + public static int baseMinPollutionPerSecondRocketFuelGenerator; + @Config.Comment("maximum base pollution rate in gibbl/s for the single block rocket engines") + @Config.DefaultInt(2_000) + public static int baseMaxPollutionPerSecondRocketFuelGenerator; + @Config.Comment("coefficient applied to the base rate of the single block rocket engines based on its tier (first is tier 0 aka ULV)") + @Config.DefaultDoubleList({ 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0 }) + public static double[] pollutionReleasedByTierRocketFuelGenerator; + @Config.Comment("base pollution rate in gibbl/s for the geothermal engines") + @Config.DefaultInt(100) + public static int basePollutionPerSecondGeothermalGenerator; + @Config.Comment("coefficient applied to the base rate of the single block geothermal engines based on its tier (first is tier 0 aka ULV)") + @Config.DefaultDoubleList({ 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 }) + public static double[] pollutionReleasedByTierGeothermalGenerator; + +} diff --git a/src/main/java/gregtech/common/render/PollutionRenderer.java b/src/main/java/gregtech/common/pollution/PollutionRenderer.java index 3b97fc820f..d0b76a58b1 100644 --- a/src/main/java/gregtech/common/render/PollutionRenderer.java +++ b/src/main/java/gregtech/common/pollution/PollutionRenderer.java @@ -1,4 +1,4 @@ -package gregtech.common.render; +package gregtech.common.pollution; import net.minecraft.block.Block; import net.minecraft.block.material.Material; @@ -22,8 +22,6 @@ import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gregtech.GTMod; -import gregtech.common.entities.EntityFXPollution; -import gregtech.common.misc.GTClientPollutionMap; @SideOnly(Side.CLIENT) public class PollutionRenderer { diff --git a/src/main/java/gregtech/common/pollution/PollutionTooltip.java b/src/main/java/gregtech/common/pollution/PollutionTooltip.java new file mode 100644 index 0000000000..0fa338a624 --- /dev/null +++ b/src/main/java/gregtech/common/pollution/PollutionTooltip.java @@ -0,0 +1,108 @@ +package gregtech.common.pollution; + +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraftforge.event.entity.player.ItemTooltipEvent; + +import cpw.mods.fml.common.eventhandler.EventPriority; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import gregtech.api.enums.Mods; +import gregtech.api.util.GTModHandler; +import gregtech.api.util.GTUtility; + +public class PollutionTooltip { + + private static final String PRODUCES_POLLUTION_FORMAT = "Produces %d Pollution/Second"; + private static final String MULTI_POLLUTION_FORMAT = "A complete Multiblock produces %d Pollution/Second"; + + @SubscribeEvent(priority = EventPriority.LOWEST) + public void getTooltip(ItemTooltipEvent event) { + if (event.itemStack == null) return; + + if (PollutionConfig.furnacesPollute) { + String furnacePollution = String.format(PRODUCES_POLLUTION_FORMAT, PollutionConfig.furnacePollutionAmount); + + // Furnace and Iron Furnace + if (GTUtility.areStacksEqual(event.itemStack, new ItemStack(Blocks.furnace)) + || GTUtility.areStacksEqual(event.itemStack, GTModHandler.getModItem("IC2", "blockMachine", 1, 1))) { + event.toolTip.add(furnacePollution); + } + + // Alchemical Furnace + if (Mods.Thaumcraft.isModLoaded()) { + if (GTUtility + .areStacksEqual(event.itemStack, GTModHandler.getModItem("Thaumcraft", "blockStoneDevice", 1, 0))) { + event.toolTip.add(furnacePollution); + } + } + + // Advanced Alchemical Furnace + if (Mods.ThaumicBases.isModLoaded()) { + if (GTUtility + .areStacksEqual(event.itemStack, GTModHandler.getModItem("thaumicbases", "advAlchFurnace", 1, 0))) { + event.toolTip.add(furnacePollution); + } + } + } + + if (Mods.Railcraft.isModLoaded() && PollutionConfig.railcraftPollutes) { + + // Solid and Liquid Boiler Firebox + if (GTUtility.areStacksEqual(event.itemStack, GTModHandler.getModItem("Railcraft", "machine.beta", 1, 5)) + || GTUtility + .areStacksEqual(event.itemStack, GTModHandler.getModItem("Railcraft", "machine.beta", 1, 6))) { + event.toolTip.add( + String.format("Produces %d Pollution/Second per firebox", PollutionConfig.fireboxPollutionAmount)); + } + + // Tunnel Bore + if (GTUtility.areStacksEqual(event.itemStack, GTModHandler.getModItem("Railcraft", "cart.bore", 1, 0))) { + event.toolTip.add(String.format(PRODUCES_POLLUTION_FORMAT, PollutionConfig.tunnelBorePollutionAmount)); + } + + // Coke Oven Brick + if (GTUtility + .areStacksEqual(event.itemStack, GTModHandler.getModItem("Railcraft", "machine.alpha", 1, 7))) { + event.toolTip.add(String.format(MULTI_POLLUTION_FORMAT, PollutionConfig.cokeOvenPollutionAmount)); + } + + // Advanced Coke Oven Brick + if (GTUtility + .areStacksEqual(event.itemStack, GTModHandler.getModItem("Railcraft", "machine.alpha", 1, 12))) { + event.toolTip + .add(String.format(MULTI_POLLUTION_FORMAT, PollutionConfig.advancedCokeOvenPollutionAmount)); + } + + // Hobbyist's Steam Engine + if (GTUtility.areStacksEqual(event.itemStack, GTModHandler.getModItem("Railcraft", "machine.beta", 1, 7))) { + event.toolTip + .add(String.format(PRODUCES_POLLUTION_FORMAT, PollutionConfig.hobbyistEnginePollutionAmount)); + } + } + + // Galacticraft (and Galaxy Space) rockets + if (Mods.GalacticraftCore.isModLoaded() && PollutionConfig.rocketsPollute + && event.itemStack.getItem() != null) { + String simpleName = event.itemStack.getItem() + .getClass() + .getSimpleName(); + // TODO I'm sure there is a better way to check the tier of a rocket.... + if (simpleName.contains("Rocket")) { + for (char d : simpleName.toCharArray()) { + if (Character.isDigit(d)) { + int tier = Character.getNumericValue(d); + event.toolTip.add( + String.format( + "Produces %d Pollution/Second when ignited", + (PollutionConfig.rocketPollutionAmount * tier / 100))); + event.toolTip.add( + String.format( + "Produces %d Pollution/Second when flying", + PollutionConfig.rocketPollutionAmount * tier)); + break; + } + } + } + } + } +} diff --git a/src/main/java/gregtech/common/tileentities/boilers/MTEBoiler.java b/src/main/java/gregtech/common/tileentities/boilers/MTEBoiler.java index b49da44e97..a84cb8ac91 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/MTEBoiler.java +++ b/src/main/java/gregtech/common/tileentities/boilers/MTEBoiler.java @@ -41,7 +41,7 @@ import gregtech.api.util.GTLog; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTUtility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; public abstract class MTEBoiler extends MTEBasicTank implements IGetTitleColor, IAddUIWidgets { diff --git a/src/main/java/gregtech/common/tileentities/boilers/MTEBoilerBronze.java b/src/main/java/gregtech/common/tileentities/boilers/MTEBoilerBronze.java index e951656d23..632ff0ac1f 100644 --- a/src/main/java/gregtech/common/tileentities/boilers/MTEBoilerBronze.java +++ b/src/main/java/gregtech/common/tileentities/boilers/MTEBoilerBronze.java @@ -36,7 +36,7 @@ import gregtech.api.render.TextureFactory; import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; public class MTEBoilerBronze extends MTEBoiler { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTECharcoalPit.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTECharcoalPit.java index bfa672577d..f39ea70422 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTECharcoalPit.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTECharcoalPit.java @@ -35,7 +35,7 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.WorldSpawnedEventBuilder; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; public class MTECharcoalPit extends MTETooltipMultiBlockBase implements ISecondaryDescribable { diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEPrimitiveBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEPrimitiveBlastFurnace.java index 0011a0efad..9c92733322 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEPrimitiveBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEPrimitiveBlastFurnace.java @@ -49,7 +49,7 @@ import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.WorldSpawnedEventBuilder; import gregtech.api.util.WorldSpawnedEventBuilder.ParticleEventBuilder; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; public abstract class MTEPrimitiveBlastFurnace extends MetaTileEntity implements IAlignment, ISurvivalConstructable, RecipeMapWorkable, IAddUIWidgets, IGetTitleColor { diff --git a/src/main/java/gregtech/loaders/preload/GTPreLoad.java b/src/main/java/gregtech/loaders/preload/GTPreLoad.java index bef36a2bdb..a3d6572dd9 100644 --- a/src/main/java/gregtech/loaders/preload/GTPreLoad.java +++ b/src/main/java/gregtech/loaders/preload/GTPreLoad.java @@ -45,6 +45,7 @@ import gregtech.common.config.Gregtech; import gregtech.common.config.MachineStats; import gregtech.common.config.OPStuff; import gregtech.common.config.Worldgen; +import gregtech.common.pollution.PollutionConfig; import gregtech.common.tileentities.machines.long_distance.MTELongDistancePipelineBase; public class GTPreLoad { @@ -445,31 +446,31 @@ public class GTPreLoad { loadClientConfig(); // Pollution - GTMod.gregtechproxy.mPollution = Gregtech.pollution.pollution; - GTMod.gregtechproxy.mPollutionSmogLimit = Gregtech.pollution.pollutionSmogLimit; - GTMod.gregtechproxy.mPollutionPoisonLimit = Gregtech.pollution.pollutionPoisonLimit; - GTMod.gregtechproxy.mPollutionVegetationLimit = Gregtech.pollution.pollutionVegetationLimit; - GTMod.gregtechproxy.mPollutionSourRainLimit = Gregtech.pollution.pollutionSourRainLimit; - GTMod.gregtechproxy.mPollutionOnExplosion = Gregtech.pollution.pollutionOnExplosion; - GTMod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond = Gregtech.pollution.pollutionPrimitveBlastFurnacePerSecond; - GTMod.gregtechproxy.mPollutionCharcoalPitPerSecond = Gregtech.pollution.pollutionCharcoalPitPerSecond; - GTMod.gregtechproxy.mPollutionEBFPerSecond = Gregtech.pollution.pollutionEBFPerSecond; - GTMod.gregtechproxy.mPollutionLargeCombustionEnginePerSecond = Gregtech.pollution.pollutionLargeCombustionEnginePerSecond; - GTMod.gregtechproxy.mPollutionExtremeCombustionEnginePerSecond = Gregtech.pollution.pollutionExtremeCombustionEnginePerSecond; - GTMod.gregtechproxy.mPollutionImplosionCompressorPerSecond = Gregtech.pollution.pollutionImplosionCompressorPerSecond; - GTMod.gregtechproxy.mPollutionLargeBronzeBoilerPerSecond = Gregtech.pollution.pollutionLargeBronzeBoilerPerSecond; - GTMod.gregtechproxy.mPollutionLargeSteelBoilerPerSecond = Gregtech.pollution.pollutionLargeSteelBoilerPerSecond; - GTMod.gregtechproxy.mPollutionLargeTitaniumBoilerPerSecond = Gregtech.pollution.pollutionLargeTitaniumBoilerPerSecond; - GTMod.gregtechproxy.mPollutionLargeTungstenSteelBoilerPerSecond = Gregtech.pollution.pollutionLargeTungstenSteelBoilerPerSecond; - GTMod.gregtechproxy.mPollutionReleasedByThrottle = Gregtech.pollution.pollutionReleasedByThrottle; - GTMod.gregtechproxy.mPollutionLargeGasTurbinePerSecond = Gregtech.pollution.pollutionLargeGasTurbinePerSecond; - GTMod.gregtechproxy.mPollutionMultiSmelterPerSecond = Gregtech.pollution.pollutionMultiSmelterPerSecond; - GTMod.gregtechproxy.mPollutionPyrolyseOvenPerSecond = Gregtech.pollution.pollutionPyrolyseOvenPerSecond; - GTMod.gregtechproxy.mPollutionSmallCoalBoilerPerSecond = Gregtech.pollution.pollutionSmallCoalBoilerPerSecond; - GTMod.gregtechproxy.mPollutionHighPressureLavaBoilerPerSecond = Gregtech.pollution.pollutionHighPressureLavaBoilerPerSecond; - GTMod.gregtechproxy.mPollutionHighPressureCoalBoilerPerSecond = Gregtech.pollution.pollutionHighPressureCoalBoilerPerSecond; - GTMod.gregtechproxy.mPollutionBaseDieselGeneratorPerSecond = Gregtech.pollution.pollutionBaseDieselGeneratorPerSecond; - double[] mPollutionDieselGeneratorReleasedByTier = Gregtech.pollution.pollutionDieselGeneratorReleasedByTier; + GTMod.gregtechproxy.mPollution = PollutionConfig.pollution; + GTMod.gregtechproxy.mPollutionSmogLimit = PollutionConfig.pollutionSmogLimit; + GTMod.gregtechproxy.mPollutionPoisonLimit = PollutionConfig.pollutionPoisonLimit; + GTMod.gregtechproxy.mPollutionVegetationLimit = PollutionConfig.pollutionVegetationLimit; + GTMod.gregtechproxy.mPollutionSourRainLimit = PollutionConfig.pollutionSourRainLimit; + GTMod.gregtechproxy.mPollutionOnExplosion = PollutionConfig.pollutionOnExplosion; + GTMod.gregtechproxy.mPollutionPrimitveBlastFurnacePerSecond = PollutionConfig.pollutionPrimitveBlastFurnacePerSecond; + GTMod.gregtechproxy.mPollutionCharcoalPitPerSecond = PollutionConfig.pollutionCharcoalPitPerSecond; + GTMod.gregtechproxy.mPollutionEBFPerSecond = PollutionConfig.pollutionEBFPerSecond; + GTMod.gregtechproxy.mPollutionLargeCombustionEnginePerSecond = PollutionConfig.pollutionLargeCombustionEnginePerSecond; + GTMod.gregtechproxy.mPollutionExtremeCombustionEnginePerSecond = PollutionConfig.pollutionExtremeCombustionEnginePerSecond; + GTMod.gregtechproxy.mPollutionImplosionCompressorPerSecond = PollutionConfig.pollutionImplosionCompressorPerSecond; + GTMod.gregtechproxy.mPollutionLargeBronzeBoilerPerSecond = PollutionConfig.pollutionLargeBronzeBoilerPerSecond; + GTMod.gregtechproxy.mPollutionLargeSteelBoilerPerSecond = PollutionConfig.pollutionLargeSteelBoilerPerSecond; + GTMod.gregtechproxy.mPollutionLargeTitaniumBoilerPerSecond = PollutionConfig.pollutionLargeTitaniumBoilerPerSecond; + GTMod.gregtechproxy.mPollutionLargeTungstenSteelBoilerPerSecond = PollutionConfig.pollutionLargeTungstenSteelBoilerPerSecond; + GTMod.gregtechproxy.mPollutionReleasedByThrottle = PollutionConfig.pollutionReleasedByThrottle; + GTMod.gregtechproxy.mPollutionLargeGasTurbinePerSecond = PollutionConfig.pollutionLargeGasTurbinePerSecond; + GTMod.gregtechproxy.mPollutionMultiSmelterPerSecond = PollutionConfig.pollutionMultiSmelterPerSecond; + GTMod.gregtechproxy.mPollutionPyrolyseOvenPerSecond = PollutionConfig.pollutionPyrolyseOvenPerSecond; + GTMod.gregtechproxy.mPollutionSmallCoalBoilerPerSecond = PollutionConfig.pollutionSmallCoalBoilerPerSecond; + GTMod.gregtechproxy.mPollutionHighPressureLavaBoilerPerSecond = PollutionConfig.pollutionHighPressureLavaBoilerPerSecond; + GTMod.gregtechproxy.mPollutionHighPressureCoalBoilerPerSecond = PollutionConfig.pollutionHighPressureCoalBoilerPerSecond; + GTMod.gregtechproxy.mPollutionBaseDieselGeneratorPerSecond = PollutionConfig.pollutionBaseDieselGeneratorPerSecond; + double[] mPollutionDieselGeneratorReleasedByTier = PollutionConfig.pollutionDieselGeneratorReleasedByTier; if (mPollutionDieselGeneratorReleasedByTier.length == GTMod.gregtechproxy.mPollutionDieselGeneratorReleasedByTier.length) { GTMod.gregtechproxy.mPollutionDieselGeneratorReleasedByTier = mPollutionDieselGeneratorReleasedByTier; @@ -477,8 +478,8 @@ public class GTPreLoad { GT_FML_LOGGER .error("The Length of the Diesel Turbine Pollution Array Config must be the same as the Default"); } - GTMod.gregtechproxy.mPollutionBaseGasTurbinePerSecond = Gregtech.pollution.pollutionBaseGasTurbinePerSecond; - double[] mPollutionGasTurbineReleasedByTier = Gregtech.pollution.pollutionGasTurbineReleasedByTier; + GTMod.gregtechproxy.mPollutionBaseGasTurbinePerSecond = PollutionConfig.pollutionBaseGasTurbinePerSecond; + double[] mPollutionGasTurbineReleasedByTier = PollutionConfig.pollutionGasTurbineReleasedByTier; if (mPollutionGasTurbineReleasedByTier.length == GTMod.gregtechproxy.mPollutionGasTurbineReleasedByTier.length) { GTMod.gregtechproxy.mPollutionGasTurbineReleasedByTier = mPollutionGasTurbineReleasedByTier; diff --git a/src/main/java/gregtech/mixin/Mixin.java b/src/main/java/gregtech/mixin/Mixin.java index b9ba1db098..001477b5d1 100644 --- a/src/main/java/gregtech/mixin/Mixin.java +++ b/src/main/java/gregtech/mixin/Mixin.java @@ -14,6 +14,7 @@ import org.apache.logging.log4j.Logger; import bartworks.common.configs.Configuration; import cpw.mods.fml.relauncher.FMLLaunchHandler; +import gregtech.common.pollution.PollutionConfig; public enum Mixin { @@ -64,7 +65,73 @@ public enum Mixin { .addTargetedMod(TargetedMod.IC2) .setApplyIf(() -> true) .setPhase(Phase.LATE) - .setSide(Side.BOTH)); + .setSide(Side.BOTH)), + IC2_HAZMAT(new Builder("Hazmat").setPhase(Phase.LATE) + .setSide(Side.BOTH) + .addMixinClasses("ic2.MixinIc2Hazmat") + .setApplyIf(() -> true) + .addTargetedMod(TargetedMod.IC2) + .addExcludedMod(TargetedMod.GT6)), + + // Pollution + POLLUTION_RENDER_BLOCKS(new Builder("Changes colors of certain blocks based on pollution levels") + .addMixinClasses("minecraft.pollution.MixinRenderBlocks_PollutionWithoutOptifine") + .addTargetedMod(TargetedMod.VANILLA) + .addExcludedMod(TargetedMod.OPTIFINE) + .setSide(Side.CLIENT) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.pollutionBlockRecolor) + .setPhase(Phase.EARLY)), + POLLUTION_RENDER_BLOCKS_OPTIFINE(new Builder("Changes colors of certain blocks based on pollution levels") + .addMixinClasses("minecraft.pollution.MixinRenderBlocks_PollutionWithOptifine") + .addTargetedMod(TargetedMod.VANILLA) + .addTargetedMod(TargetedMod.OPTIFINE) + .addExcludedMod(TargetedMod.ANGELICA) + .setSide(Side.CLIENT) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.pollutionBlockRecolor) + .setPhase(Phase.EARLY)), + POLLUTION_RENDER_BLOCKS_BOP(new Builder("Changes colors of certain blocks based on pollution levels") + .addMixinClasses("biomesoplenty.MixinFoliageRendererPollution") + .addTargetedMod(TargetedMod.BOP) + .setSide(Side.CLIENT) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.pollutionBlockRecolor) + .setPhase(Phase.LATE)), + POLLUTION_MINECRAFT_FURNACE(new Builder("Minecraft Furnace Pollutes").setPhase(Phase.EARLY) + .addMixinClasses("minecraft.pollution.MixinTileEntityFurnacePollution") + .setSide(Side.BOTH) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.furnacesPollute) + .addTargetedMod(TargetedMod.VANILLA)), + POLLUTION_MINECRAFT_EXPLOSION(new Builder("Minecraft explosions pollute").setPhase(Phase.EARLY) + .addMixinClasses("minecraft.pollution.MixinExplosionPollution") + .setSide(Side.BOTH) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.explosionPollutionAmount != 0F) + .addTargetedMod(TargetedMod.VANILLA)), + POLLUTION_IC2_IRON_FURNACE( + new Builder("Ic2 Iron Furnace Pollutes").addMixinClasses("ic2.MixinIC2IronFurnacePollution") + .setPhase(Phase.LATE) + .setSide(Side.BOTH) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.furnacesPollute) + .addTargetedMod(TargetedMod.IC2)), + POLLUTION_THAUMCRAFT_ALCHEMICAL_FURNACE(new Builder("Thaumcraft Alchemical Construct Pollutes") + .addMixinClasses("thaumcraft.MixinThaumcraftAlchemyFurnacePollution") + .setPhase(Phase.LATE) + .setSide(Side.BOTH) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.furnacesPollute) + .addTargetedMod(TargetedMod.THAUMCRAFT)), + POLLUTION_RAILCRAFT(new Builder("Make Railcraft Pollute") + .addMixinClasses( + "railcraft.MixinRailcraftBoilerPollution", + "railcraft.MixinRailcraftCokeOvenPollution", + "railcraft.MixinRailcraftTunnelBorePollution") + .setPhase(Phase.LATE) + .setSide(Side.BOTH) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.railcraftPollutes) + .addTargetedMod(TargetedMod.RAILCRAFT)), + POLLUTION_ROCKET( + new Builder("Make Rockets Pollute").addMixinClasses("galacticraftcore.MixinGalacticraftRocketPollution") + .setPhase(Phase.LATE) + .setSide(Side.BOTH) + .setApplyIf(() -> PollutionConfig.pollution && PollutionConfig.rocketsPollute) + .addTargetedMod(TargetedMod.GALACTICRAFT_CORE)); public static final Logger LOGGER = LogManager.getLogger("GregTech-Mixin"); diff --git a/src/main/java/gtPlusPlus/core/common/CommonProxy.java b/src/main/java/gtPlusPlus/core/common/CommonProxy.java index a53e088afc..10edeeb32f 100644 --- a/src/main/java/gtPlusPlus/core/common/CommonProxy.java +++ b/src/main/java/gtPlusPlus/core/common/CommonProxy.java @@ -82,7 +82,8 @@ public class CommonProxy implements IFuelHandler { public void init(final FMLInitializationEvent e) { CI.init(); - if (Mods.AdvancedSolarPanel.isModLoaded()) { + if (e.getSide() + .isClient() && Mods.AdvancedSolarPanel.isModLoaded()) { MinecraftForge.EVENT_BUS.register(new MolecularTransformerTooltipNotice()); } // Handles Sleep Benefits diff --git a/src/main/java/gtPlusPlus/core/config/Configuration.java b/src/main/java/gtPlusPlus/core/config/Configuration.java index e2cd0463f1..45ba7df8a3 100644 --- a/src/main/java/gtPlusPlus/core/config/Configuration.java +++ b/src/main/java/gtPlusPlus/core/config/Configuration.java @@ -13,7 +13,6 @@ public class Configuration { public static final Debug debug = new Debug(); public static final Machines machines = new Machines(); public static final Gregtech gregtech = new Gregtech(); - public static final Pollution pollution = new Pollution(); public static final Features features = new Features(); public static final Visual visual = new Visual(); public static final Worldgen worldgen = new Worldgen(); @@ -58,176 +57,6 @@ public class Configuration { public int turbineCutoffBase; } - @Config.Comment("Pollution section") - public static class Pollution { - - @Config.Comment("pollution rate in gibbl/s for the Amazon warehousing depot") - @Config.DefaultInt(40) - public int pollutionPerSecondMultiPackager; - @Config.Comment("pollution rate in gibbl/s for the Alloy blast smelter") - @Config.DefaultInt(300) - public int pollutionPerSecondMultiIndustrialAlloySmelter; - @Config.Comment("pollution rate in gibbl/s for the High current arc furnace") - @Config.DefaultInt(2_400) - public int pollutionPerSecondMultiIndustrialArcFurnace; - @Config.Comment("pollution rate in gibbl/s for the Industrial centrifuge") - @Config.DefaultInt(300) - public int pollutionPerSecondMultiIndustrialCentrifuge; - @Config.Comment("pollution rate in gibbl/s for the Industrial coke oven") - @Config.DefaultInt(80) - public int pollutionPerSecondMultiIndustrialCokeOven; - @Config.Comment("pollution rate in gibbl/s for the Cutting factory") - @Config.DefaultInt(160) - public int pollutionPerSecondMultiIndustrialCuttingMachine; - @Config.Comment("pollution rate in gibbl/s for the Utupu-Tanuri") - @Config.DefaultInt(500) - public int pollutionPerSecondMultiIndustrialDehydrator; - @Config.Comment("pollution rate in gibbl/s for the Industrial electrolyzer") - @Config.DefaultInt(300) - public int pollutionPerSecondMultiIndustrialElectrolyzer; - @Config.Comment("pollution rate in gibbl/s for the Industrial extrusion machine") - @Config.DefaultInt(1_000) - public int pollutionPerSecondMultiIndustrialExtruder; - @Config.Comment("pollution rate in gibbl/s for the Maceration stack") - @Config.DefaultInt(400) - public int pollutionPerSecondMultiIndustrialMacerator; - @Config.Comment("pollution rate in gibbl/s for the Industrial mixing machine") - @Config.DefaultInt(800) - public int pollutionPerSecondMultiIndustrialMixer; - @Config.Comment("pollution rate in gibbl/s for the Large processing factory in metal mode") - @Config.DefaultInt(400) - public int pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal; - @Config.Comment("pollution rate in gibbl/s for the Large processing factory in fluid mode") - @Config.DefaultInt(400) - public int pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid; - @Config.Comment("pollution rate in gibbl/s for the Large processing factory in misc mode") - @Config.DefaultInt(600) - public int pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc; - @Config.Comment("pollution rate in gibbl/s for the Industrial material press in forming mode") - @Config.DefaultInt(240) - public int pollutionPerSecondMultiIndustrialPlatePress_ModeForming; - @Config.Comment("pollution rate in gibbl/s for the Industrial material press in bending mode") - @Config.DefaultInt(480) - public int pollutionPerSecondMultiIndustrialPlatePress_ModeBending; - @Config.Comment("pollution rate in gibbl/s for the Industrial Forge Hammer") - @Config.DefaultInt(250) - public int pollutionPerSecondMultiIndustrialForgeHammer; - @Config.Comment("pollution rate in gibbl/s for the Large Sifter") - @Config.DefaultInt(40) - public int pollutionPerSecondMultiIndustrialSifter; - @Config.Comment("pollution rate in gibbl/s for the Large thermal refinery") - @Config.DefaultInt(1_000) - public int pollutionPerSecondMultiIndustrialThermalCentrifuge; - @Config.Comment("pollution rate in gibbl/s for the Industrial fluid heater") - @Config.DefaultInt(1_000) - public int pollutionPerSecondMultiIndustrialFluidHeater; - @Config.Comment("pollution rate in gibbl/s for the Cryogenic freezer") - @Config.DefaultInt(500) - public int pollutionPerSecondMultiIndustrialVacuumFreezer; - @Config.Comment("pollution rate in gibbl/s for the Ore washing plant in chemical bath mode") - @Config.DefaultInt(400) - public int pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath; - @Config.Comment("pollution rate in gibbl/s for the Ore washing plant in ore washer mode") - @Config.DefaultInt(100) - public int pollutionPerSecondMultiIndustrialWashPlant_ModeWasher; - @Config.Comment("pollution rate in gibbl/s for the Wire factory") - @Config.DefaultInt(100) - public int pollutionPerSecondMultiIndustrialWireMill; - @Config.Comment("pollution rate in gibbl/s for the IsaMill grinding machine") - @Config.DefaultInt(1_280) - public int pollutionPerSecondMultiIsaMill; - @Config.Comment("pollution rate in gibbl/s for the Dangote distillus in distillery mode") - @Config.DefaultInt(240) - public int pollutionPerSecondMultiAdvDistillationTower_ModeDistillery; - @Config.Comment("pollution rate in gibbl/s for the Dangote distillus in distillation tower mode") - @Config.DefaultInt(480) - public int pollutionPerSecondMultiAdvDistillationTower_ModeDT; - @Config.Comment("pollution rate in gibbl/s for the Volcanus") - @Config.DefaultInt(500) - public int pollutionPerSecondMultiAdvEBF; - @Config.Comment("pollution rate in gibbl/s for the Density^2") - @Config.DefaultInt(5_000) - public int pollutionPerSecondMultiAdvImplosion; - @Config.Comment("pollution rate in gibbl/s for the Alloy blast furnace") - @Config.DefaultInt(200) - public int pollutionPerSecondMultiABS; - @Config.Comment("pollution rate in gibbl/s for the Cyclotron") - @Config.DefaultInt(200) - public int pollutionPerSecondMultiCyclotron; - @Config.Comment("pollution rate in gibbl/s for the Zuhai - fishing port") - @Config.DefaultInt(20) - public int pollutionPerSecondMultiIndustrialFishingPond; - // pollutionPerSecondMultiLargeRocketEngine; - @Config.Comment("pollution rate in gibbl/s for the Large semifluid burner") - @Config.DefaultInt(1_280) - public int pollutionPerSecondMultiLargeSemiFluidGenerator; - @Config.Comment("pollution rate in gibbl/s for the Matter fabrication CPU") - @Config.DefaultInt(40) - public int pollutionPerSecondMultiMassFabricator; - @Config.Comment("pollution rate in gibbl/s for the Reactor fuel processing plant") - @Config.DefaultInt(4_000) - public int pollutionPerSecondMultiRefinery; - @Config.Comment("pollution rate in gibbl/s for the Industrial Rock Breaker") - @Config.DefaultInt(100) - public int pollutionPerSecondMultiIndustrialRockBreaker; - @Config.Comment("pollution rate in gibbl/s for the Industrial Chisel") - @Config.DefaultInt(50) - public int pollutionPerSecondMultiIndustrialChisel; - @Config.Comment("pollution rate in gibbl/s for the Tree growth simulator") - @Config.DefaultInt(100) - public int pollutionPerSecondMultiTreeFarm; - @Config.Comment("pollution rate in gibbl/s for the Flotation cell regulator") - @Config.DefaultInt(0) - public int pollutionPerSecondMultiFrothFlotationCell; - @Config.Comment("pollution rate in gibbl/s for the Large-Scale auto assembler v1.01") - @Config.DefaultInt(500) - public int pollutionPerSecondMultiAutoCrafter; - @Config.Comment("pollution rate in gibbl/s for the Nuclear salt processing plant") - @Config.DefaultInt(500) - public int pollutionPerSecondNuclearSaltProcessingPlant; - @Config.Comment("pollution rate in gibbl/s for the Multiblock Molecular Transformer") - @Config.DefaultInt(1_000) - public int pollutionPerSecondMultiMolecularTransformer; - - @Config.Comment("pollution rate in gibbl/s for the Elemental Duplicator") - @Config.DefaultInt(1_000) - public int pollutionPerSecondElementalDuplicator; - - @Config.Comment("pollution rate in gibbl/s for the Thermal boiler") - @Config.DefaultInt(700) - public int pollutionPerSecondMultiThermalBoiler; - @Config.Comment("pollution rate in gibbl/s for the Algae farm") - @Config.DefaultInt(0) - public int pollutionPerSecondMultiAlgaePond; - @Config.Comment("base pollution rate in gibbl/s for the single block semi fluid generators") - @Config.DefaultInt(40) - public int basePollutionPerSecondSemiFluidGenerator; - @Config.Comment("coefficient applied to the base rate of the single block semi fluid generators based on its tier (first is tier 0 aka ULV)") - @Config.DefaultDoubleList({ 0.0, 2.0, 4.0, 8.0, 12.0, 16.0 }) - public double[] pollutionReleasedByTierSemiFluidGenerator; - @Config.Comment("base pollution rate in gibbl/s for the single block boilers") - @Config.DefaultInt(35) - public int basePollutionPerSecondBoiler; - @Config.Comment("coefficient applied to the base rate of the single block boilers based on its tier (first is tier 0 aka ULV)") - @Config.DefaultDoubleList({ 0.0, 1.0, 1.43, 1.86 }) - public double[] pollutionReleasedByTierBoiler; - @Config.Comment("minimum base pollution rate in gibbl/s for the single block rocket engines") - @Config.DefaultInt(250) - public int baseMinPollutionPerSecondRocketFuelGenerator; - @Config.Comment("maximum base pollution rate in gibbl/s for the single block rocket engines") - @Config.DefaultInt(2_000) - public int baseMaxPollutionPerSecondRocketFuelGenerator; - @Config.Comment("coefficient applied to the base rate of the single block rocket engines based on its tier (first is tier 0 aka ULV)") - @Config.DefaultDoubleList({ 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0 }) - public double[] pollutionReleasedByTierRocketFuelGenerator; - @Config.Comment("base pollution rate in gibbl/s for the geothermal engines") - @Config.DefaultInt(100) - public int basePollutionPerSecondGeothermalGenerator; - @Config.Comment("coefficient applied to the base rate of the single block geothermal engines based on its tier (first is tier 0 aka ULV)") - @Config.DefaultDoubleList({ 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 }) - public double[] pollutionReleasedByTierGeothermalGenerator; - } - @Config.Comment("Features section") public static class Features { diff --git a/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java b/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java index 35a569578f..811fb0cab1 100644 --- a/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java +++ b/src/main/java/gtPlusPlus/core/tileentities/base/TileEntityBase.java @@ -28,10 +28,10 @@ import gregtech.api.util.GTOreDictUnificator; import gregtech.api.util.GTUtility; import gregtech.api.util.ISerializableObject; import gregtech.common.covers.CoverInfo; +import gregtech.common.pollution.Pollution; import gtPlusPlus.api.interfaces.ILazyCoverable; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.minecraft.BTF_Inventory; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import ic2.api.Direction; public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregTechDeviceInformation, IDescribable { @@ -1316,7 +1316,7 @@ public class TileEntityBase extends TileEntity implements ILazyCoverable, IGregT } this.mReleaseEnergy = false; this.onExplosion(); - PollutionUtils.addPollution(this, 100000); + Pollution.addPollution(this, 100000); this.mMetaTileEntity.doExplosion(aAmount); } } diff --git a/src/main/java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java b/src/main/java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java index f753561d71..1914a5a39d 100644 --- a/src/main/java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java +++ b/src/main/java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java @@ -1,18 +1,9 @@ package gtPlusPlus.core.util.minecraft.gregtech; -import java.util.ArrayList; - import net.minecraft.item.ItemStack; -import net.minecraft.world.chunk.Chunk; import net.minecraftforge.fluids.FluidStack; -import org.apache.commons.lang3.ArrayUtils; - -import gregtech.GTMod; import gregtech.api.enums.OrePrefixes; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords; -import gregtech.common.Pollution; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.item.base.cell.BaseItemCell; import gtPlusPlus.core.material.MaterialGenerator; @@ -22,127 +13,41 @@ import gtPlusPlus.core.util.minecraft.ItemUtils; public class PollutionUtils { - public static ArrayList<FluidStack> mPollutionFluidStacks = new ArrayList<>(); - - public static boolean isPollutionEnabled() { - return GTMod.gregtechproxy.mPollution; - } - - public static boolean addPollution(IGregTechTileEntity te, int pollutionValue) { - if (GTMod.gregtechproxy.mPollution) { - Pollution.addPollution(te, pollutionValue); - return true; - } - return false; - } - - public static void addPollution(IHasWorldObjectAndCoords aTileOfSomeSort, int pollutionValue) { - if (GTMod.gregtechproxy.mPollution) { - Chunk c = aTileOfSomeSort.getWorld() - .getChunkFromBlockCoords(aTileOfSomeSort.getXCoord(), aTileOfSomeSort.getZCoord()); - addPollution(c, pollutionValue); - } - } - - public static void addPollution(Chunk aChunk, int pollutionValue) { - if (GTMod.gregtechproxy.mPollution) { - Pollution.addPollution(aChunk, pollutionValue); - } - } - - public static void removePollution(IGregTechTileEntity te, int pollutionValue) { - addPollution(te, -pollutionValue); - } - - public static void removePollution(Chunk aChunk, int pollutionValue) { - addPollution(aChunk, -pollutionValue); - } - - public static void nullifyPollution(IGregTechTileEntity te) { - if (te == null) { - return; - } - nullifyPollution((IHasWorldObjectAndCoords) te); - } - - public static void nullifyPollution(IHasWorldObjectAndCoords aTileOfSomeSort) { - if (aTileOfSomeSort == null) { - return; - } - Chunk c = aTileOfSomeSort.getWorld() - .getChunkFromBlockCoords(aTileOfSomeSort.getXCoord(), aTileOfSomeSort.getZCoord()); - nullifyPollution(c); - } - - public static void nullifyPollution(Chunk aChunk) { - if (GTMod.gregtechproxy.mPollution) { - if (aChunk == null) { - return; - } - int getCurrentPollution = getPollution(aChunk); - if (getCurrentPollution > 0) { - removePollution(aChunk, getCurrentPollution); - } - } - } - - public static int getPollution(IGregTechTileEntity te) { - return Pollution.getPollution(te); - } - - public static int getPollution(Chunk te) { - return Pollution.getPollution(te); - } - public static void setPollutionFluids() { - if (mPollutionFluidStacks.isEmpty()) { - FluidStack CD, CM, SD; - CD = FluidUtils.getFluidStack("carbondioxide", 1000); - CM = FluidUtils.getFluidStack("carbonmonoxide", 1000); - SD = FluidUtils.getFluidStack("sulfurdioxide", 1000); - if (PollutionUtils.mPollutionFluidStacks.isEmpty()) { - if (CD != null) { - Logger.INFO("[PollutionCompat] Found carbon dioxide fluid, registering it."); - PollutionUtils.mPollutionFluidStacks.add(CD); - MaterialMisc.CARBON_DIOXIDE.registerComponentForMaterial(CD); - ItemStack cellCD = ItemUtils.getItemStackOfAmountFromOreDict("cellCarbonDioxide", 1); - if (ItemUtils.checkForInvalidItems(cellCD)) { - Logger.INFO("[PollutionCompat] Found carbon dioxide cell, registering component."); - MaterialMisc.CARBON_DIOXIDE.registerComponentForMaterial(OrePrefixes.cell, cellCD); - } else { - Logger.INFO("[PollutionCompat] Did not find carbon dioxide cell, registering new component."); - new BaseItemCell(MaterialMisc.CARBON_DIOXIDE); - } - } else { - MaterialGenerator.generate(MaterialMisc.CARBON_DIOXIDE, false, false); - } - - if (CM != null) { - Logger.INFO("[PollutionCompat] Found carbon monoxide fluid, registering it."); - PollutionUtils.mPollutionFluidStacks.add(CM); - MaterialMisc.CARBON_MONOXIDE.registerComponentForMaterial(CM); - ItemStack cellCD = ItemUtils.getItemStackOfAmountFromOreDict("cellCarbonMonoxide", 1); - if (ItemUtils.checkForInvalidItems(cellCD)) { - Logger.INFO("[PollutionCompat] Found carbon monoxide cell, registering component."); - MaterialMisc.CARBON_MONOXIDE.registerComponentForMaterial(OrePrefixes.cell, cellCD); - } else { - Logger.INFO("[PollutionCompat] Did not find carbon monoxide cell, registering new component."); - new BaseItemCell(MaterialMisc.CARBON_MONOXIDE); - } - } else { - MaterialGenerator.generate(MaterialMisc.CARBON_MONOXIDE, false, false); - } - - if (SD != null) { - Logger.INFO("[PollutionCompat] Found sulfur dioxide fluid, registering it."); - PollutionUtils.mPollutionFluidStacks.add(SD); - } + FluidStack CD, CM, SD; + CD = FluidUtils.getFluidStack("carbondioxide", 1000); + CM = FluidUtils.getFluidStack("carbonmonoxide", 1000); + SD = FluidUtils.getFluidStack("sulfurdioxide", 1000); + if (CD != null) { + Logger.INFO("[PollutionCompat] Found carbon dioxide fluid, registering it."); + MaterialMisc.CARBON_DIOXIDE.registerComponentForMaterial(CD); + ItemStack cellCD = ItemUtils.getItemStackOfAmountFromOreDict("cellCarbonDioxide", 1); + if (ItemUtils.checkForInvalidItems(cellCD)) { + Logger.INFO("[PollutionCompat] Found carbon dioxide cell, registering component."); + MaterialMisc.CARBON_DIOXIDE.registerComponentForMaterial(OrePrefixes.cell, cellCD); + } else { + Logger.INFO("[PollutionCompat] Did not find carbon dioxide cell, registering new component."); + new BaseItemCell(MaterialMisc.CARBON_DIOXIDE); } } else { - if (mPollutionFluidStacks.size() != 3) { - Logger.INFO("Unable to detect all 3 pollution fluids. Found: "); - Logger.INFO(ArrayUtils.toString(mPollutionFluidStacks)); + MaterialGenerator.generate(MaterialMisc.CARBON_DIOXIDE, false, false); + } + if (CM != null) { + Logger.INFO("[PollutionCompat] Found carbon monoxide fluid, registering it."); + MaterialMisc.CARBON_MONOXIDE.registerComponentForMaterial(CM); + ItemStack cellCD = ItemUtils.getItemStackOfAmountFromOreDict("cellCarbonMonoxide", 1); + if (ItemUtils.checkForInvalidItems(cellCD)) { + Logger.INFO("[PollutionCompat] Found carbon monoxide cell, registering component."); + MaterialMisc.CARBON_MONOXIDE.registerComponentForMaterial(OrePrefixes.cell, cellCD); + } else { + Logger.INFO("[PollutionCompat] Did not find carbon monoxide cell, registering new component."); + new BaseItemCell(MaterialMisc.CARBON_MONOXIDE); } + } else { + MaterialGenerator.generate(MaterialMisc.CARBON_MONOXIDE, false, false); + } + if (SD != null) { + Logger.INFO("[PollutionCompat] Found sulfur dioxide fluid, registering it."); } } } 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 dd38f1ab26..5919a71b25 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 @@ -20,10 +20,9 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTEHatchMuffler; import gregtech.api.metatileentity.implementations.MTEMultiBlockBase; import gregtech.api.objects.GTRenderedTexture; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; import gtPlusPlus.core.item.general.ItemAirFilter; import gtPlusPlus.core.lib.GTPPCore; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.xmod.gregtech.api.gui.GTPPUITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -31,21 +30,6 @@ public class MTEHatchMufflerAdvanced extends MTEHatchMuffler implements IAddGreg protected int SLOT_FILTER = 0; - @Override - public void onConfigLoad() { - super.onConfigLoad(); - try { - int a1 = GTMod.gregtechproxy.mPollutionSmogLimit; - if (a1 > 0) { - mPollutionSmogLimit = a1; - } - } catch (Throwable t) { - mPollutionSmogLimit = 500000; - } - } - - private int mPollutionSmogLimit = 500000; - public MTEHatchMufflerAdvanced(int aID, String aName, String aNameRegional, int aTier) { super(aID, aName, aNameRegional, aTier, 1, new String[] { "" }); } @@ -271,8 +255,8 @@ public class MTEHatchMufflerAdvanced extends MTEHatchMuffler implements IAddGreg boolean chk1 = ran1 * 100.0F < (float) this.calculatePollutionReduction(100); boolean chk2; boolean chk3; - int aPollutionAmount = PollutionUtils.getPollution(getBaseMetaTileEntity()); - if (aPollutionAmount >= mPollutionSmogLimit) { + int aPollutionAmount = Pollution.getPollution(getBaseMetaTileEntity()); + if (aPollutionAmount >= GTMod.gregtechproxy.mPollutionSmogLimit) { ran2 = GTPPCore.RANDOM.nextFloat(); ran3 = GTPPCore.RANDOM.nextFloat(); chk2 = ran2 * 100.0F < (float) this.calculatePollutionReduction(100); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/MTERocketFuelGeneratorBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/MTERocketFuelGeneratorBase.java index 40678f203f..e7480e0f12 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/MTERocketFuelGeneratorBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/MTERocketFuelGeneratorBase.java @@ -21,10 +21,10 @@ import gregtech.api.metatileentity.implementations.MTEBasicTank; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; -import gtPlusPlus.core.config.Configuration; +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; public abstract class MTERocketFuelGeneratorBase extends MTEBasicTank implements RecipeMapWorkable { @@ -33,19 +33,19 @@ public abstract class MTERocketFuelGeneratorBase extends MTEBasicTank implements public MTERocketFuelGeneratorBase(final int aID, final String aName, final String aNameRegional, final int aTier, final String aDescription, final ITexture... aTextures) { super(aID, aName, aNameRegional, aTier, 3, aDescription, aTextures); - pollMin = (int) (Configuration.pollution.baseMinPollutionPerSecondRocketFuelGenerator - * Configuration.pollution.pollutionReleasedByTierRocketFuelGenerator[mTier]); - pollMax = (int) (Configuration.pollution.baseMaxPollutionPerSecondRocketFuelGenerator - * Configuration.pollution.pollutionReleasedByTierRocketFuelGenerator[mTier]); + pollMin = (int) (PollutionConfig.baseMinPollutionPerSecondRocketFuelGenerator + * PollutionConfig.pollutionReleasedByTierRocketFuelGenerator[mTier]); + pollMax = (int) (PollutionConfig.baseMaxPollutionPerSecondRocketFuelGenerator + * PollutionConfig.pollutionReleasedByTierRocketFuelGenerator[mTier]); } public MTERocketFuelGeneratorBase(final String aName, final int aTier, final String[] aDescription, final ITexture[][][] aTextures) { super(aName, aTier, 3, aDescription, aTextures); - pollMin = (int) (Configuration.pollution.baseMinPollutionPerSecondRocketFuelGenerator - * Configuration.pollution.pollutionReleasedByTierRocketFuelGenerator[mTier]); - pollMax = (int) (Configuration.pollution.baseMaxPollutionPerSecondRocketFuelGenerator - * Configuration.pollution.pollutionReleasedByTierRocketFuelGenerator[mTier]); + pollMin = (int) (PollutionConfig.baseMinPollutionPerSecondRocketFuelGenerator + * PollutionConfig.pollutionReleasedByTierRocketFuelGenerator[mTier]); + pollMax = (int) (PollutionConfig.baseMaxPollutionPerSecondRocketFuelGenerator + * PollutionConfig.pollutionReleasedByTierRocketFuelGenerator[mTier]); } @Override @@ -233,7 +233,7 @@ public abstract class MTERocketFuelGeneratorBase extends MTEBasicTank implements && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)) { int aSafeFloor = (int) Math.max(((tFluidAmountToUse * tConsumed) / 3), 1); this.mFluid.amount -= aSafeFloor; - PollutionUtils.addPollution(getBaseMetaTileEntity(), 10 * getPollution()); + Pollution.addPollution(getBaseMetaTileEntity(), 10 * getPollution()); } } } @@ -247,7 +247,7 @@ public abstract class MTERocketFuelGeneratorBase extends MTEBasicTank implements if (aBaseMetaTileEntity.addStackToSlot(this.getOutputSlot(), tEmptyContainer)) { aBaseMetaTileEntity.increaseStoredEnergyUnits(tFuelValue, true); aBaseMetaTileEntity.decrStackSize(this.getInputSlot(), 1); - PollutionUtils.addPollution(getBaseMetaTileEntity(), getPollution() / 2); + Pollution.addPollution(getBaseMetaTileEntity(), getPollution() / 2); } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEBoilerBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEBoilerBase.java index c16cec179e..97167ca798 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEBoilerBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEBoilerBase.java @@ -23,6 +23,7 @@ import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GTItemStack; import gregtech.api.objects.GTRenderedTexture; import gregtech.api.util.GTOreDictUnificator; +import gregtech.common.pollution.PollutionConfig; import gregtech.common.tileentities.boilers.MTEBoiler; import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.lib.GTPPCore; @@ -232,8 +233,8 @@ public class MTEBoilerBase extends MTEBoiler { @Override protected int getPollution() { - return (int) (Configuration.pollution.basePollutionPerSecondBoiler - * Configuration.pollution.pollutionReleasedByTierBoiler[this.tier]); + return (int) (PollutionConfig.basePollutionPerSecondBoiler + * PollutionConfig.pollutionReleasedByTierBoiler[this.tier]); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEGeothermalGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEGeothermalGenerator.java index e1fc5c57f0..b89a6092dc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEGeothermalGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTEGeothermalGenerator.java @@ -18,7 +18,7 @@ import gregtech.api.objects.GTRenderedTexture; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTModHandler; -import gtPlusPlus.core.config.Configuration; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -161,7 +161,7 @@ public class MTEGeothermalGenerator extends MTEBasicGenerator { @Override public int getPollution() { - return (int) (Configuration.pollution.basePollutionPerSecondGeothermalGenerator - * Configuration.pollution.pollutionReleasedByTierGeothermalGenerator[mTier]); + return (int) (PollutionConfig.basePollutionPerSecondGeothermalGenerator + * PollutionConfig.pollutionReleasedByTierGeothermalGenerator[mTier]); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTERTGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTERTGenerator.java index 9f70912cad..ddad318ccf 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTERTGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTERTGenerator.java @@ -18,11 +18,11 @@ import gregtech.api.objects.GTRenderedTexture; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; +import gregtech.common.pollution.Pollution; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import tectech.util.TTUtility; @@ -147,7 +147,7 @@ public class MTERTGenerator extends MTEBasicGenerator { } } if ((tProducedEU > 0L) && (getPollution() > 0)) { - PollutionUtils + Pollution .addPollution(aBaseMetaTileEntity, (int) (tProducedEU * getPollution() / 500 * this.mTier + 1L)); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTESemiFluidGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTESemiFluidGenerator.java index d499093247..3e22764a6e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTESemiFluidGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/MTESemiFluidGenerator.java @@ -17,9 +17,9 @@ import gregtech.api.objects.GTRenderedTexture; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTModHandler; import gregtech.api.util.GTUtility; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeMaps; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.lib.GTPPCore; public class MTESemiFluidGenerator extends MTEBasicGenerator { @@ -38,8 +38,8 @@ public class MTESemiFluidGenerator extends MTEBasicGenerator { @Override public int getPollution() { - return (int) (Configuration.pollution.basePollutionPerSecondSemiFluidGenerator - * Configuration.pollution.pollutionReleasedByTierSemiFluidGenerator[this.mTier]); + return (int) (PollutionConfig.basePollutionPerSecondSemiFluidGenerator + * PollutionConfig.pollutionReleasedByTierSemiFluidGenerator[this.mTier]); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEAtmosphericReconditioner.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEAtmosphericReconditioner.java index 5a42319548..2dde10f187 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEAtmosphericReconditioner.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEAtmosphericReconditioner.java @@ -21,7 +21,6 @@ import com.gtnewhorizons.modularui.common.widget.DrawableWidget; import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; import com.gtnewhorizons.modularui.common.widget.SlotWidget; -import gregtech.GTMod; import gregtech.api.enums.Materials; import gregtech.api.enums.SoundResource; import gregtech.api.enums.Textures; @@ -37,12 +36,12 @@ import gregtech.api.util.GTModHandler; import gregtech.api.util.GTUtility; import gregtech.common.items.IDMetaTool01; import gregtech.common.items.MetaGeneratedTool01; +import gregtech.common.pollution.Pollution; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.item.general.ItemAirFilter; import gtPlusPlus.core.item.general.ItemBasicScrubberTurbine; import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.xmod.gregtech.api.gui.GTPPUITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -54,7 +53,6 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { protected boolean mHasPollution = false; protected int SLOT_ROTOR = 5; protected int SLOT_FILTER = 6; - protected static boolean mPollutionEnabled = true; protected boolean mSaveRotor = false; @@ -76,12 +74,10 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { new GTRenderedTexture(TexturesGtBlock.Overlay_Machine_Vent), new GTRenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_MASSFAB_ACTIVE), new GTRenderedTexture(Textures.BlockIcons.OVERLAY_BOTTOM_MASSFAB)); - mPollutionEnabled = GTMod.gregtechproxy.mPollution; } public MTEAtmosphericReconditioner(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures) { super(aName, aTier, 2, aDescription, aTextures, 2, 0); - mPollutionEnabled = GTMod.gregtechproxy.mPollution; } @Override @@ -105,13 +101,6 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { "High Efficiency: Removes full pollution, Turbine takes 100% dmg", "Turbine Rotor will not break in LE mode", "Insert an equal tier Conveyor Module to enable automation"); - if (!mPollutionEnabled) { - String[] B = new String[] { "===============================================", - "Pollution is disabled, scrubbers will now have a bonus use", - "They are now able to remove ALL lingering pollution as GT ignores it", "and it will linger forever!", - "===============================================", }; - A = ArrayUtils.addAll(A, B); - } return A; } @@ -239,15 +228,6 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { Logger .INFO("Has Pollution? " + mHasPollution + ", Current Pollution: " + mCurrentPollution); - // Only check every 30s. - if (!isIdle && aTick % (20L * 30) == 0L) { - mPollutionEnabled = GTMod.gregtechproxy.mPollution; - // Clear out pollution if it's disabled, because I am a nice gal. - if (!GTMod.gregtechproxy.mPollution) { - PollutionUtils.nullifyPollution(this.getBaseMetaTileEntity()); - } - } - // Use a Turbine if (hasRotor(stackRotor) && hasAirFilter(stackFilter)) { Logger.INFO("Found Turbine."); @@ -352,7 +332,7 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { public int getCurrentChunkPollution() { int mCurrentChunkPollution = 0; if (this.mTier < 7) { - mCurrentChunkPollution = PollutionUtils.getPollution(getBaseMetaTileEntity()); + mCurrentChunkPollution = Pollution.getPollution(getBaseMetaTileEntity()); } else { ArrayList<Chunk> aSurrounding = new ArrayList<>(); World aWorld = this.getBaseMetaTileEntity() @@ -388,7 +368,7 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { } public int getPollutionInChunk(Chunk aChunk) { - int mCurrentChunkPollution = PollutionUtils.getPollution(aChunk); + int mCurrentChunkPollution = Pollution.getPollution(aChunk); mHasPollution = mCurrentChunkPollution > 0; return mCurrentChunkPollution; } @@ -565,7 +545,7 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { if (this.mTier < 7) { int startPollution = getCurrentChunkPollution(); Logger.INFO("Current Chunk Pollution: " + startPollution); - PollutionUtils.removePollution(this.getBaseMetaTileEntity(), toRemove); + Pollution.addPollution(this.getBaseMetaTileEntity(), -toRemove); int after = getCurrentChunkPollution(); Logger.INFO("Current Chunk Pollution: " + after); return (after < startPollution); @@ -654,7 +634,7 @@ public class MTEAtmosphericReconditioner extends MTEBasicMachine { public boolean removePollution(Chunk aChunk, int toRemove) { int before = getCurrentChunkPollution(); - PollutionUtils.removePollution(aChunk, toRemove); + Pollution.addPollution(aChunk, -toRemove); int after = getCurrentChunkPollution(); return (after < before); } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionCreator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionCreator.java index 0226214c44..e1a2d5c802 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionCreator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionCreator.java @@ -12,9 +12,9 @@ import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GTRenderedTexture; +import gregtech.common.pollution.Pollution; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.minecraft.PlayerUtils; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMetaTileEntity; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -283,7 +283,7 @@ public class MTEPollutionCreator extends GTPPMetaTileEntity { } private boolean addPollution() { - PollutionUtils.addPollution(getBaseMetaTileEntity(), 100000 * pollutionMultiplier); + Pollution.addPollution(getBaseMetaTileEntity(), 100000 * pollutionMultiplier); return true; } @@ -304,7 +304,7 @@ public class MTEPollutionCreator extends GTPPMetaTileEntity { } public int getCurrentChunkPollution(IGregTechTileEntity aBaseMetaTileEntity) { - return PollutionUtils.getPollution(aBaseMetaTileEntity); + return Pollution.getPollution(aBaseMetaTileEntity); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionDetector.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionDetector.java index 87e18931b5..f8c1ddbdeb 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionDetector.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/MTEPollutionDetector.java @@ -13,10 +13,10 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GTRenderedTexture; import gregtech.api.util.GTUtility; +import gregtech.common.pollution.Pollution; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMetaTileEntity; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -296,7 +296,7 @@ public class MTEPollutionDetector extends GTPPMetaTileEntity { } public int getCurrentChunkPollution(IGregTechTileEntity aBaseMetaTileEntity) { - return PollutionUtils.getPollution(aBaseMetaTileEntity); + return Pollution.getPollution(aBaseMetaTileEntity); } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/MTEAmazonPackager.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/MTEAmazonPackager.java index ae487fadb6..84ff99eb00 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/MTEAmazonPackager.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/MTEAmazonPackager.java @@ -41,8 +41,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -166,7 +166,7 @@ public class MTEAmazonPackager extends GTPPMultiBlockBase<MTEAmazonPackager> imp @Override public int getPollutionPerSecond(ItemStack arg0) { - return Configuration.pollution.pollutionPerSecondMultiPackager; + return PollutionConfig.pollutionPerSecondMultiPackager; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialAlloySmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialAlloySmelter.java index 3b626fee5c..fe7f6d4918 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialAlloySmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialAlloySmelter.java @@ -33,8 +33,8 @@ import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; public class MTEIndustrialAlloySmelter extends GTPPMultiBlockBase<MTEIndustrialAlloySmelter> @@ -93,7 +93,7 @@ public class MTEIndustrialAlloySmelter extends GTPPMultiBlockBase<MTEIndustrialA @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialAlloySmelter; + return PollutionConfig.pollutionPerSecondMultiIndustrialAlloySmelter; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialArcFurnace.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialArcFurnace.java index 95a6c68df1..1983049c37 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialArcFurnace.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialArcFurnace.java @@ -45,8 +45,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -260,7 +260,7 @@ public class MTEIndustrialArcFurnace extends GTPPMultiBlockBase<MTEIndustrialArc @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialArcFurnace; + return PollutionConfig.pollutionPerSecondMultiIndustrialArcFurnace; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCentrifuge.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCentrifuge.java index 02015b20eb..186a69f2df 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCentrifuge.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCentrifuge.java @@ -31,10 +31,10 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock.CustomIcon; @@ -184,7 +184,7 @@ public class MTEIndustrialCentrifuge extends GTPPMultiBlockBase<MTEIndustrialCen @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialCentrifuge; + return PollutionConfig.pollutionPerSecondMultiIndustrialCentrifuge; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialChisel.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialChisel.java index 214d118a60..f9085bd063 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialChisel.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialChisel.java @@ -37,8 +37,8 @@ import gregtech.api.util.GTRecipe; import gregtech.api.util.GTStreamUtil; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchChiselBus; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; @@ -324,7 +324,7 @@ public class MTEIndustrialChisel extends GTPPMultiBlockBase<MTEIndustrialChisel> @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialChisel; + return PollutionConfig.pollutionPerSecondMultiIndustrialChisel; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCokeOven.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCokeOven.java index 0921d8f3ea..34384cbf8a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCokeOven.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCokeOven.java @@ -29,9 +29,9 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -196,7 +196,7 @@ public class MTEIndustrialCokeOven extends GTPPMultiBlockBase<MTEIndustrialCokeO @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialCokeOven; + return PollutionConfig.pollutionPerSecondMultiIndustrialCokeOven; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCuttingMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCuttingMachine.java index 2652479801..11bfaaca7e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCuttingMachine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialCuttingMachine.java @@ -46,8 +46,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -190,7 +190,7 @@ public class MTEIndustrialCuttingMachine extends GTPPMultiBlockBase<MTEIndustria @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialCuttingMachine; + return PollutionConfig.pollutionPerSecondMultiIndustrialCuttingMachine; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialDehydrator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialDehydrator.java index 96eaf9c33f..cb7822a421 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialDehydrator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialDehydrator.java @@ -48,9 +48,9 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -186,7 +186,7 @@ public class MTEIndustrialDehydrator extends GTPPMultiBlockBase<MTEIndustrialDeh @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialDehydrator; + return PollutionConfig.pollutionPerSecondMultiIndustrialDehydrator; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialExtruder.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialExtruder.java index 7badb903f1..c7440fa9b8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialExtruder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialExtruder.java @@ -28,8 +28,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -164,7 +164,7 @@ public class MTEIndustrialExtruder extends GTPPMultiBlockBase<MTEIndustrialExtru @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialExtruder; + return PollutionConfig.pollutionPerSecondMultiIndustrialExtruder; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialFluidHeater.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialFluidHeater.java index 364b8195e1..3d07f38a17 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialFluidHeater.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialFluidHeater.java @@ -29,8 +29,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -172,7 +172,7 @@ public class MTEIndustrialFluidHeater extends GTPPMultiBlockBase<MTEIndustrialFl @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialFluidHeater; + return PollutionConfig.pollutionPerSecondMultiIndustrialFluidHeater; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialForgeHammer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialForgeHammer.java index 8176db29d6..d8d5dfacb7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialForgeHammer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialForgeHammer.java @@ -44,8 +44,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -224,7 +224,7 @@ public class MTEIndustrialForgeHammer extends GTPPMultiBlockBase<MTEIndustrialFo @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialForgeHammer; + return PollutionConfig.pollutionPerSecondMultiIndustrialForgeHammer; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMacerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMacerator.java index b6666cdc6d..7b3301d6c8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMacerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMacerator.java @@ -45,9 +45,9 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gregtech.common.tileentities.machines.IDualInputHatch; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; @@ -357,7 +357,7 @@ public class MTEIndustrialMacerator extends GTPPMultiBlockBase<MTEIndustrialMace @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialMacerator; + return PollutionConfig.pollutionPerSecondMultiIndustrialMacerator; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMixer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMixer.java index 9d62d6a420..ded54a6a8e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMixer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMixer.java @@ -33,9 +33,9 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -185,7 +185,7 @@ public class MTEIndustrialMixer extends GTPPMultiBlockBase<MTEIndustrialMixer> i @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialMixer; + return PollutionConfig.pollutionPerSecondMultiIndustrialMixer; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMolecularTransformer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMolecularTransformer.java index d6cef05649..1a2196a4ec 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMolecularTransformer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMolecularTransformer.java @@ -26,9 +26,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -223,7 +223,7 @@ public class MTEIndustrialMolecularTransformer extends GTPPMultiBlockBase<MTEInd @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiMolecularTransformer; + return PollutionConfig.pollutionPerSecondMultiMolecularTransformer; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMultiMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMultiMachine.java index 24a245833f..f8117df480 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMultiMachine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialMultiMachine.java @@ -58,12 +58,12 @@ import gregtech.api.util.GTLanguageManager; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gregtech.common.tileentities.machines.IDualInputHatch; import gregtech.common.tileentities.machines.IDualInputInventory; import gregtech.common.tileentities.machines.MTEHatchCraftingInputME; import gregtech.common.tileentities.machines.MTEHatchInputME; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchSolidifier; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; @@ -222,13 +222,13 @@ public class MTEIndustrialMultiMachine extends GTPPMultiBlockBase<MTEIndustrialM public int getPollutionPerSecond(final ItemStack aStack) { switch (machineMode) { case MACHINEMODE_METAL -> { - return Configuration.pollution.pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal; + return PollutionConfig.pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal; } case MACHINEMODE_FLUID -> { - return Configuration.pollution.pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid; + return PollutionConfig.pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid; } default -> { - return Configuration.pollution.pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc; + return PollutionConfig.pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc; } } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialPlatePress.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialPlatePress.java index 20f56c56cb..e509dec41e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialPlatePress.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialPlatePress.java @@ -41,8 +41,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -190,8 +190,8 @@ public class MTEIndustrialPlatePress extends GTPPMultiBlockBase<MTEIndustrialPla @Override public int getPollutionPerSecond(final ItemStack aStack) { if (machineMode == MACHINEMODE_FORMER) - return Configuration.pollution.pollutionPerSecondMultiIndustrialPlatePress_ModeForming; - return Configuration.pollution.pollutionPerSecondMultiIndustrialPlatePress_ModeBending; + return PollutionConfig.pollutionPerSecondMultiIndustrialPlatePress_ModeForming; + return PollutionConfig.pollutionPerSecondMultiIndustrialPlatePress_ModeBending; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialSifter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialSifter.java index 2e8d742135..d57c20adf0 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialSifter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialSifter.java @@ -34,8 +34,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -194,7 +194,7 @@ public class MTEIndustrialSifter extends GTPPMultiBlockBase<MTEIndustrialSifter> @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialSifter; + return PollutionConfig.pollutionPerSecondMultiIndustrialSifter; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialThermalCentrifuge.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialThermalCentrifuge.java index f4ca5361d9..b838637d69 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialThermalCentrifuge.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialThermalCentrifuge.java @@ -32,8 +32,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -162,7 +162,7 @@ public class MTEIndustrialThermalCentrifuge extends GTPPMultiBlockBase<MTEIndust @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialThermalCentrifuge; + return PollutionConfig.pollutionPerSecondMultiIndustrialThermalCentrifuge; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialVacuumFreezer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialVacuumFreezer.java index 1a20e07ab6..4a4ddafbdb 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialVacuumFreezer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialVacuumFreezer.java @@ -36,9 +36,9 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.shutdown.ShutDownReasonRegistry; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.MTEHatchCustomFluidBase; @@ -217,7 +217,7 @@ public class MTEIndustrialVacuumFreezer extends GTPPMultiBlockBase<MTEIndustrial @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialVacuumFreezer; + return PollutionConfig.pollutionPerSecondMultiIndustrialVacuumFreezer; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWashPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWashPlant.java index 6db9b8466e..0f9fa3497e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWashPlant.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWashPlant.java @@ -62,10 +62,10 @@ import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; @@ -246,8 +246,8 @@ public class MTEIndustrialWashPlant extends GTPPMultiBlockBase<MTEIndustrialWash @Override public int getPollutionPerSecond(final ItemStack aStack) { if (machineMode == MACHINEMODE_CHEMBATH) - return Configuration.pollution.pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath; - return Configuration.pollution.pollutionPerSecondMultiIndustrialWashPlant_ModeWasher; + return PollutionConfig.pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath; + return PollutionConfig.pollutionPerSecondMultiIndustrialWashPlant_ModeWasher; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWireMill.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWireMill.java index 215db1a745..d6f4efc4f7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWireMill.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIndustrialWireMill.java @@ -32,8 +32,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -183,7 +183,7 @@ public class MTEIndustrialWireMill extends GTPPMultiBlockBase<MTEIndustrialWireM @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialWireMill; + return PollutionConfig.pollutionPerSecondMultiIndustrialWireMill; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIsaMill.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIsaMill.java index 667582d60b..3eee133b12 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIsaMill.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEIsaMill.java @@ -47,11 +47,11 @@ import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.minecraft.BlockPos; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.item.chemistry.general.ItemGenericChemBase; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.EntityUtils; @@ -396,7 +396,7 @@ public class MTEIsaMill extends GTPPMultiBlockBase<MTEIsaMill> implements ISurvi @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIsaMill; + return PollutionConfig.pollutionPerSecondMultiIsaMill; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTENuclearSaltProcessingPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTENuclearSaltProcessingPlant.java index e74045dfe9..1335922a46 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTENuclearSaltProcessingPlant.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTENuclearSaltProcessingPlant.java @@ -30,9 +30,9 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; public class MTENuclearSaltProcessingPlant extends GTPPMultiBlockBase<MTENuclearSaltProcessingPlant> @@ -67,7 +67,7 @@ public class MTENuclearSaltProcessingPlant extends GTPPMultiBlockBase<MTENuclear @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondNuclearSaltProcessingPlant; + return PollutionConfig.pollutionPerSecondNuclearSaltProcessingPlant; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEndustrialElectrolyzer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEndustrialElectrolyzer.java index 1a24320762..4e4f23a8e1 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEndustrialElectrolyzer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/MTEndustrialElectrolyzer.java @@ -27,9 +27,9 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -150,7 +150,7 @@ public class MTEndustrialElectrolyzer extends GTPPMultiBlockBase<MTEndustrialEle @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialElectrolyzer; + return PollutionConfig.pollutionPerSecondMultiIndustrialElectrolyzer; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java index f09de3c6af..059bfdc507 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvDistillationTower.java @@ -52,8 +52,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gregtech.common.tileentities.machines.MTEHatchOutputME; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; @@ -302,8 +302,8 @@ public class MTEAdvDistillationTower extends GTPPMultiBlockBase<MTEAdvDistillati @Override public int getPollutionPerSecond(ItemStack aStack) { if (this.mMode == Mode.Distillery) - return Configuration.pollution.pollutionPerSecondMultiAdvDistillationTower_ModeDistillery; - return Configuration.pollution.pollutionPerSecondMultiAdvDistillationTower_ModeDT; + return PollutionConfig.pollutionPerSecondMultiAdvDistillationTower_ModeDistillery; + return PollutionConfig.pollutionPerSecondMultiAdvDistillationTower_ModeDT; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvEBF.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvEBF.java index dccf03487e..2ad5976e79 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvEBF.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvEBF.java @@ -51,8 +51,8 @@ import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; import gregtech.api.util.shutdown.ShutDownReasonRegistry; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.MTEHatchCustomFluidBase; @@ -256,7 +256,7 @@ public class MTEAdvEBF extends GTPPMultiBlockBase<MTEAdvEBF> implements ISurviva @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiAdvEBF; + return PollutionConfig.pollutionPerSecondMultiAdvEBF; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvImplosionCompressor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvImplosionCompressor.java index 6c06f20514..58e86b705b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvImplosionCompressor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/MTEAdvImplosionCompressor.java @@ -26,7 +26,7 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; -import gtPlusPlus.core.config.Configuration; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -154,7 +154,7 @@ public class MTEAdvImplosionCompressor extends GTPPMultiBlockBase<MTEAdvImplosio @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiAdvImplosion; + return PollutionConfig.pollutionPerSecondMultiAdvImplosion; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAlloyBlastSmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAlloyBlastSmelter.java index d47953daba..3e9d0d55bc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAlloyBlastSmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAlloyBlastSmelter.java @@ -33,10 +33,10 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -210,7 +210,7 @@ public class MTEAlloyBlastSmelter extends GTPPMultiBlockBase<MTEAlloyBlastSmelte @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiABS; + return PollutionConfig.pollutionPerSecondMultiABS; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAutoCrafter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAutoCrafter.java index 3a216b20ef..59a0d0e1fc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAutoCrafter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEAutoCrafter.java @@ -29,8 +29,8 @@ import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; public class MTEAutoCrafter extends GTPPMultiBlockBase<MTEAutoCrafter> implements ISurvivalConstructable { @@ -79,7 +79,7 @@ public class MTEAutoCrafter extends GTPPMultiBlockBase<MTEAutoCrafter> implement @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiAutoCrafter; + return PollutionConfig.pollutionPerSecondMultiAutoCrafter; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTECyclotron.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTECyclotron.java index fed3767cce..38173d19b9 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTECyclotron.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTECyclotron.java @@ -36,9 +36,9 @@ import gregtech.api.objects.GTItemStack; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.check.CheckRecipeResult; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.item.chemistry.IonParticles; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; @@ -294,7 +294,7 @@ public class MTECyclotron extends GTPPMultiBlockBase<MTECyclotron> implements IS @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiCyclotron; + return PollutionConfig.pollutionPerSecondMultiCyclotron; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEElementalDuplicator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEElementalDuplicator.java index 0901c027d5..e891742d8c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEElementalDuplicator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEElementalDuplicator.java @@ -35,8 +35,8 @@ import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchElementalDataOrbHolder; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -311,7 +311,7 @@ public class MTEElementalDuplicator extends GTPPMultiBlockBase<MTEElementalDupli @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondElementalDuplicator; + return PollutionConfig.pollutionPerSecondElementalDuplicator; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEFrothFlotationCell.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEFrothFlotationCell.java index ff530a9ff9..a00419c402 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEFrothFlotationCell.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEFrothFlotationCell.java @@ -41,9 +41,9 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.material.Material; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -180,7 +180,7 @@ public class MTEFrothFlotationCell extends GTPPMultiBlockBase<MTEFrothFlotationC @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiFrothFlotationCell; + return PollutionConfig.pollutionPerSecondMultiFrothFlotationCell; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java index 8c72a027e6..3e6d1f397d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialFishingPond.java @@ -47,9 +47,9 @@ import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; import gregtech.api.util.ParallelHelper; import gregtech.api.util.ReflectionUtil; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; @@ -279,7 +279,7 @@ public class MTEIndustrialFishingPond extends GTPPMultiBlockBase<MTEIndustrialFi @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialFishingPond; + return PollutionConfig.pollutionPerSecondMultiIndustrialFishingPond; } private Block getCasingBlock() { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialRockBreaker.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialRockBreaker.java index ac993e73e5..55a686cd91 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialRockBreaker.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEIndustrialRockBreaker.java @@ -44,8 +44,8 @@ import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.OverclockCalculator; import gregtech.api.util.ParallelHelper; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -340,7 +340,7 @@ public class MTEIndustrialRockBreaker extends GTPPMultiBlockBase<MTEIndustrialRo @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiIndustrialRockBreaker; + return PollutionConfig.pollutionPerSecondMultiIndustrialRockBreaker; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTELargeSemifluidGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTELargeSemifluidGenerator.java index c28973e457..db98863b17 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTELargeSemifluidGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTELargeSemifluidGenerator.java @@ -39,8 +39,8 @@ import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.recipe.check.SimpleCheckRecipeResult; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; public class MTELargeSemifluidGenerator extends GTPPMultiBlockBase<MTELargeSemifluidGenerator> @@ -295,7 +295,7 @@ public class MTELargeSemifluidGenerator extends GTPPMultiBlockBase<MTELargeSemif @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiLargeSemiFluidGenerator; + return PollutionConfig.pollutionPerSecondMultiLargeSemiFluidGenerator; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEMassFabricator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEMassFabricator.java index 7a4eefb0a3..d2aeee4683 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEMassFabricator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEMassFabricator.java @@ -55,9 +55,9 @@ import gregtech.api.util.GTRecipe; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.common.config.MachineStats; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; @@ -218,7 +218,7 @@ public class MTEMassFabricator extends GTPPMultiBlockBase<MTEMassFabricator> imp @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiMassFabricator; + return PollutionConfig.pollutionPerSecondMultiMassFabricator; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTERefinery.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTERefinery.java index 5f5735a777..db83cc352b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTERefinery.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTERefinery.java @@ -29,9 +29,9 @@ import gregtech.api.logic.ProcessingLogic; import gregtech.api.metatileentity.implementations.MTEHatchMuffler; import gregtech.api.recipe.RecipeMap; import gregtech.api.util.MultiblockTooltipBuilder; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; public class MTERefinery extends GTPPMultiBlockBase<MTERefinery> implements ISurvivalConstructable { @@ -197,7 +197,7 @@ public class MTERefinery extends GTPPMultiBlockBase<MTERefinery> implements ISur @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiRefinery; + return PollutionConfig.pollutionPerSecondMultiRefinery; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEThermalBoiler.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEThermalBoiler.java index ff4dfc2658..ee92ebf15c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEThermalBoiler.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTEThermalBoiler.java @@ -43,9 +43,9 @@ import gregtech.api.util.GTLog; import gregtech.api.util.GTRecipe; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.ParallelHelper; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -272,7 +272,7 @@ public class MTEThermalBoiler extends GTPPMultiBlockBase<MTEThermalBoiler> imple @Override public int getPollutionPerSecond(ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiThermalBoiler; + return PollutionConfig.pollutionPerSecondMultiThermalBoiler; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTETreeFarm.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTETreeFarm.java index 303c568004..c93caaffe9 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTETreeFarm.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/MTETreeFarm.java @@ -72,11 +72,11 @@ import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.VoidProtectionHelper; import gregtech.common.items.IDMetaTool01; import gregtech.common.items.MetaGeneratedTool01; +import gregtech.common.pollution.PollutionConfig; import gregtech.common.tileentities.machines.MTEHatchInputBusME; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.recipe.GTPPRecipeMaps; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -207,7 +207,7 @@ public class MTETreeFarm extends GTPPMultiBlockBase<MTETreeFarm> implements ISur @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiTreeFarm; + return PollutionConfig.pollutionPerSecondMultiTreeFarm; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java index 8024078aa6..779148199e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/MTEAlgaePondBase.java @@ -48,9 +48,9 @@ import gregtech.api.util.GTStreamUtil; import gregtech.api.util.GTUtility; import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.ReflectionUtil; +import gregtech.common.pollution.PollutionConfig; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; -import gtPlusPlus.core.config.Configuration; import gtPlusPlus.core.item.chemistry.AgriculturalChem; import gtPlusPlus.core.lib.GTPPCore; import gtPlusPlus.core.util.math.MathUtils; @@ -314,7 +314,7 @@ public class MTEAlgaePondBase extends GTPPMultiBlockBase<MTEAlgaePondBase> imple @Override public int getPollutionPerSecond(final ItemStack aStack) { - return Configuration.pollution.pollutionPerSecondMultiAlgaePond; + return PollutionConfig.pollutionPerSecondMultiAlgaePond; } @Override diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/MTELargerTurbineBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/MTELargerTurbineBase.java index 0a305bcf1f..0feff0f699 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/MTELargerTurbineBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/MTELargerTurbineBase.java @@ -49,11 +49,11 @@ import gregtech.api.util.MultiblockTooltipBuilder; import gregtech.api.util.TurbineStatCalculator; import gregtech.api.util.shutdown.ShutDownReason; import gregtech.api.util.shutdown.ShutDownReasonRegistry; +import gregtech.common.pollution.Pollution; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.minecraft.BlockPos; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.MTEHatchTurbine; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GTPPMultiBlockBase; import gtPlusPlus.xmod.gregtech.api.objects.GTPPRenderedTexture; @@ -659,7 +659,8 @@ public abstract class MTELargerTurbineBase extends GTPPMultiBlockBase<MTELargerT mPollution += aPollutionLevel * getPollutionMultiplier() * mufflerReduction; for (MTEHatchMuffler tHatch : validMTEList(mMufflerHatches)) { if (mPollution >= 10000) { - if (PollutionUtils.addPollution(this.getBaseMetaTileEntity(), 10000)) { + if (GTMod.gregtechproxy.mPollution) { + Pollution.addPollution(this.getBaseMetaTileEntity(), 10000); mPollution -= 10000; } } else { diff --git a/src/main/java/tectech/thing/metaTileEntity/single/MTEDebugPollutor.java b/src/main/java/tectech/thing/metaTileEntity/single/MTEDebugPollutor.java index d70a0e3c43..ffc5f2a04c 100644 --- a/src/main/java/tectech/thing/metaTileEntity/single/MTEDebugPollutor.java +++ b/src/main/java/tectech/thing/metaTileEntity/single/MTEDebugPollutor.java @@ -31,7 +31,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTETieredMachineBlock; import gregtech.api.objects.GTRenderedTexture; -import gregtech.common.Pollution; +import gregtech.common.pollution.Pollution; import tectech.TecTech; import tectech.util.CommonValues; import tectech.util.TTUtility; diff --git a/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinExplosionPollution.java b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinExplosionPollution.java new file mode 100644 index 0000000000..b7ed023243 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinExplosionPollution.java @@ -0,0 +1,39 @@ +package gregtech.mixin.mixins.early.minecraft.pollution; + +import net.minecraft.world.Explosion; +import net.minecraft.world.World; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(Explosion.class) +public class MixinExplosionPollution { + + @Shadow + public float explosionSize; + + @Shadow + private World worldObj; + + @Shadow + public double explosionX; + + @Shadow + public double explosionZ; + + @Inject(method = "doExplosionA", at = @At(value = "TAIL")) + public void gt5u$addExplosionPollution(CallbackInfo ci) { + if (!this.worldObj.isRemote) { + Pollution.addPollution( + this.worldObj.getChunkFromBlockCoords((int) this.explosionX, (int) this.explosionZ), + (int) Math.ceil(explosionSize * PollutionConfig.explosionPollutionAmount)); + } + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinRenderBlocks_PollutionWithOptifine.java b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinRenderBlocks_PollutionWithOptifine.java new file mode 100644 index 0000000000..f15e2e1716 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinRenderBlocks_PollutionWithOptifine.java @@ -0,0 +1,86 @@ +package gregtech.mixin.mixins.early.minecraft.pollution; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockDoublePlant; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.RenderBlocks; + +import org.spongepowered.asm.mixin.Dynamic; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; + +import gregtech.common.pollution.ColorOverrideType; +import gregtech.common.pollution.Pollution; + +@Mixin(RenderBlocks.class) +public class MixinRenderBlocks_PollutionWithOptifine { + + @Dynamic("Target is an optifine method") + @ModifyExpressionValue( + method = "renderStandardBlock", + at = @At( + value = "INVOKE", + target = "LCustomColorizer;getColorMultiplier(Lnet/minecraft/block/Block;Lnet/minecraft/world/IBlockAccess;III)I", + remap = false)) + private int gt5u$pollutionStandardBlock(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.standardBlocks.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } + + @Dynamic("Target is an optifine method") + @ModifyExpressionValue( + method = "renderBlockLiquid", + at = @At( + value = "INVOKE", + target = "LCustomColorizer;getFluidColor(Lnet/minecraft/block/Block;Lnet/minecraft/world/IBlockAccess;III)I", + remap = false)) + private int gt5u$pollutionBlockLiquid(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.liquidBlocks.matchesID(block); + if (type == null || block.getMaterial() != Material.water) { + return color; + } + return type.getColor(color, blockX, blockZ); + } + + @Dynamic("Target is an optifine method") + @ModifyExpressionValue( + method = "renderBlockDoublePlant", + at = @At( + value = "INVOKE", + target = "LCustomColorizer;getColorMultiplier(Lnet/minecraft/block/Block;Lnet/minecraft/world/IBlockAccess;III)I", + remap = false)) + private int gt5u$pollutionBlockDoublePlant(int color, BlockDoublePlant block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.doublePlants.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } + + @Dynamic("Target is an optifine method") + @ModifyExpressionValue( + method = "renderCrossedSquares", + at = @At( + value = "INVOKE", + target = "LCustomColorizer;getColorMultiplier(Lnet/minecraft/block/Block;Lnet/minecraft/world/IBlockAccess;III)I", + remap = false)) + private int gt5u$pollutionCrossedSquares(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.crossedSquares.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } + + @Dynamic("Target is an optifine method") + @ModifyExpressionValue( + method = "renderBlockVine", + at = @At( + value = "INVOKE", + target = "LCustomColorizer;getColorMultiplier(Lnet/minecraft/block/Block;Lnet/minecraft/world/IBlockAccess;III)I", + remap = false)) + private int gt5u$pollutionBlockVine(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.blockVine.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinRenderBlocks_PollutionWithoutOptifine.java b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinRenderBlocks_PollutionWithoutOptifine.java new file mode 100644 index 0000000000..e400f04904 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinRenderBlocks_PollutionWithoutOptifine.java @@ -0,0 +1,75 @@ +package gregtech.mixin.mixins.early.minecraft.pollution; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockDoublePlant; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.RenderBlocks; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; + +import gregtech.common.pollution.ColorOverrideType; +import gregtech.common.pollution.Pollution; + +@Mixin(RenderBlocks.class) +public class MixinRenderBlocks_PollutionWithoutOptifine { + + @ModifyExpressionValue( + method = "renderStandardBlock", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/block/Block;colorMultiplier(Lnet/minecraft/world/IBlockAccess;III)I")) + private int gt5u$pollutionStandardBlock(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.standardBlocks.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } + + @ModifyExpressionValue( + method = "renderBlockLiquid", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/block/Block;colorMultiplier(Lnet/minecraft/world/IBlockAccess;III)I")) + private int gt5u$pollutionBlockLiquid(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.liquidBlocks.matchesID(block); + if (type == null || block.getMaterial() != Material.water) { + return color; + } + return type.getColor(color, blockX, blockZ); + } + + @ModifyExpressionValue( + method = "renderBlockDoublePlant", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/block/BlockDoublePlant;colorMultiplier(Lnet/minecraft/world/IBlockAccess;III)I")) + private int gt5u$pollutionBlockDoublePlant(int color, BlockDoublePlant block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.doublePlants.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } + + @ModifyExpressionValue( + method = "renderCrossedSquares", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/block/Block;colorMultiplier(Lnet/minecraft/world/IBlockAccess;III)I")) + private int gt5u$pollutionCrossedSquares(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.crossedSquares.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } + + @ModifyExpressionValue( + method = "renderBlockVine", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/block/Block;colorMultiplier(Lnet/minecraft/world/IBlockAccess;III)I")) + private int gt5u$pollutionBlockVine(int color, Block block, int blockX, int blockY, int blockZ) { + ColorOverrideType type = Pollution.blockVine.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinTileEntityFurnacePollution.java b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinTileEntityFurnacePollution.java new file mode 100644 index 0000000000..4a1e088524 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/early/minecraft/pollution/MixinTileEntityFurnacePollution.java @@ -0,0 +1,33 @@ +package gregtech.mixin.mixins.early.minecraft.pollution; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityFurnace; + +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(TileEntityFurnace.class) +public abstract class MixinTileEntityFurnacePollution extends TileEntity { + + @Inject( + method = "updateEntity", + at = @At( + value = "FIELD", + target = "net/minecraft/tileentity/TileEntityFurnace.furnaceBurnTime:I", + opcode = Opcodes.GETFIELD, + ordinal = 2)) + private void gt5u$addPollution(CallbackInfo ci) { + if (!this.worldObj.isRemote && (this.worldObj.getTotalWorldTime() % 20) == 0) { + Pollution.addPollution( + this.worldObj.getChunkFromBlockCoords(this.xCoord, this.zCoord), + PollutionConfig.furnacePollutionAmount); + } + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/biomesoplenty/MixinFoliageRendererPollution.java b/src/mixin/java/gregtech/mixin/mixins/late/biomesoplenty/MixinFoliageRendererPollution.java new file mode 100644 index 0000000000..3b6b7f5423 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/biomesoplenty/MixinFoliageRendererPollution.java @@ -0,0 +1,31 @@ +package gregtech.mixin.mixins.late.biomesoplenty; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; + +import biomesoplenty.client.render.blocks.FoliageRenderer; +import gregtech.common.pollution.ColorOverrideType; +import gregtech.common.pollution.Pollution; + +@Mixin(FoliageRenderer.class) +public class MixinFoliageRendererPollution { + + @ModifyExpressionValue( + method = "renderCrossedSquares", + remap = false, + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/block/Block;func_149720_d(Lnet/minecraft/world/IBlockAccess;III)I", + remap = false)) + private int gt5u$pollutionCrossedSquares(int color, Block block, int blockX, int blockY, int blockZ, + RenderBlocks renderer) { + ColorOverrideType type = Pollution.blockVine.matchesID(block); + if (type == null) return color; + return type.getColor(color, blockX, blockZ); + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/galacticraftcore/MixinGalacticraftRocketPollution.java b/src/mixin/java/gregtech/mixin/mixins/late/galacticraftcore/MixinGalacticraftRocketPollution.java new file mode 100644 index 0000000000..53aee62ba5 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/galacticraftcore/MixinGalacticraftRocketPollution.java @@ -0,0 +1,39 @@ +package gregtech.mixin.mixins.late.galacticraftcore; + +import net.minecraft.world.World; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; +import micdoodle8.mods.galacticraft.api.entity.IRocketType; +import micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket; +import micdoodle8.mods.galacticraft.api.prefab.entity.EntityTieredRocket; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(EntityTieredRocket.class) +public abstract class MixinGalacticraftRocketPollution extends EntityAutoRocket implements IRocketType { + + private MixinGalacticraftRocketPollution(World world) { + super(world); + } + + @Inject(method = "onUpdate", at = @At("HEAD")) + private void gt5u$addRocketPollution(CallbackInfo ci) { + if (this.worldObj.isRemote || !(launchPhase == EnumLaunchPhase.LAUNCHED.ordinal() + || launchPhase == EnumLaunchPhase.IGNITED.ordinal())) { + return; + } + + int pollutionAmount = 0; + if (launchPhase == EnumLaunchPhase.LAUNCHED.ordinal()) { + pollutionAmount = PollutionConfig.rocketPollutionAmount * this.getRocketTier(); + } else if (launchPhase == EnumLaunchPhase.IGNITED.ordinal()) { + pollutionAmount = PollutionConfig.rocketPollutionAmount * this.getRocketTier() / 100; + } + Pollution.addPollution(worldObj.getChunkFromBlockCoords((int) posX, (int) posZ), pollutionAmount); + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinIC2IronFurnacePollution.java b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinIC2IronFurnacePollution.java new file mode 100644 index 0000000000..0df3897d51 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinIC2IronFurnacePollution.java @@ -0,0 +1,32 @@ +package gregtech.mixin.mixins.late.ic2; + +import net.minecraft.tileentity.TileEntity; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; +import ic2.core.block.machine.tileentity.TileEntityIronFurnace; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(value = TileEntityIronFurnace.class, remap = false) +public abstract class MixinIC2IronFurnacePollution extends TileEntity { + + @Shadow + public abstract boolean isBurning(); + + @Inject(method = "updateEntityServer", at = @At("TAIL")) + private void gt5u$updateEntityServer(CallbackInfo ci) { + if (worldObj.isRemote || !isBurning()) { + return; + } + if ((worldObj.getTotalWorldTime() % 20) == 0) { + Pollution + .addPollution(worldObj.getChunkFromBlockCoords(xCoord, zCoord), PollutionConfig.furnacePollutionAmount); + } + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinIc2Hazmat.java b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinIc2Hazmat.java new file mode 100644 index 0000000000..cd451f0a46 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/ic2/MixinIc2Hazmat.java @@ -0,0 +1,22 @@ +package gregtech.mixin.mixins.late.ic2; + +import net.minecraft.entity.EntityLivingBase; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import gregtech.api.util.GTUtility; +import ic2.core.item.armor.ItemArmorHazmat; + +@Mixin(value = ItemArmorHazmat.class, remap = false) +public class MixinIc2Hazmat { + + /** + * @author Sphyix + * @reason Hazmat - IC2 logic superseded by GT check + */ + @Overwrite + public static boolean hasCompleteHazmat(EntityLivingBase entity) { + return GTUtility.isWearingFullRadioHazmat(entity); + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftBoilerPollution.java b/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftBoilerPollution.java new file mode 100644 index 0000000000..f86255ed45 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftBoilerPollution.java @@ -0,0 +1,45 @@ +package gregtech.mixin.mixins.late.railcraft; + +import net.minecraft.world.World; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; +import mods.railcraft.common.blocks.RailcraftTileEntity; +import mods.railcraft.common.blocks.machine.TileMultiBlock; +import mods.railcraft.common.blocks.machine.beta.TileEngineSteamHobby; +import mods.railcraft.common.util.steam.SteamBoiler; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(SteamBoiler.class) +public class MixinRailcraftBoilerPollution { + + @Shadow(remap = false) + private RailcraftTileEntity tile; + + @Shadow(remap = false) + protected boolean isBurning; + + @Inject(method = "tick", at = @At(value = "HEAD"), remap = false) + private void gt5u$tick(int x, CallbackInfo ci) { + if (!this.isBurning || this.tile == null || this.tile.getWorld() == null) return; + final World world = this.tile.getWorldObj(); + if ((world.getTotalWorldTime() % 20) == 0) { + int pollutionAmount; + if (this.tile instanceof TileMultiBlock) { + pollutionAmount = (((TileMultiBlock) this.tile).getComponents() + .size() - x) * PollutionConfig.fireboxPollutionAmount; + } else if (this.tile instanceof TileEngineSteamHobby) { + pollutionAmount = PollutionConfig.hobbyistEnginePollutionAmount; + } else { + pollutionAmount = 40; + } + Pollution.addPollution(world.getChunkFromBlockCoords(this.tile.getX(), this.tile.getZ()), pollutionAmount); + } + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftCokeOvenPollution.java b/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftCokeOvenPollution.java new file mode 100644 index 0000000000..147fe554c4 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftCokeOvenPollution.java @@ -0,0 +1,39 @@ +package gregtech.mixin.mixins.late.railcraft; + +import java.util.List; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; +import mods.railcraft.common.blocks.machine.MultiBlockPattern; +import mods.railcraft.common.blocks.machine.TileMultiBlock; +import mods.railcraft.common.blocks.machine.TileMultiBlockOven; +import mods.railcraft.common.blocks.machine.alpha.TileBlastFurnace; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(TileMultiBlockOven.class) +public abstract class MixinRailcraftCokeOvenPollution extends TileMultiBlock { + + @Shadow(remap = false) + protected boolean cooking; + + private MixinRailcraftCokeOvenPollution(List<? extends MultiBlockPattern> patterns) { + super(patterns); + } + + @Inject(method = "updateEntity", at = @At("HEAD")) + private void gt5u$addPollution(CallbackInfo ci) { + if (this.worldObj.isRemote || !this.cooking || !this.isMaster) return; + if ((this.worldObj.getTotalWorldTime() % 20) == 0) { + final int pollution = (((TileMultiBlock) this) instanceof TileBlastFurnace) + ? PollutionConfig.advancedCokeOvenPollutionAmount + : PollutionConfig.cokeOvenPollutionAmount; + Pollution.addPollution(this.worldObj.getChunkFromBlockCoords(this.xCoord, this.zCoord), pollution); + } + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftTunnelBorePollution.java b/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftTunnelBorePollution.java new file mode 100644 index 0000000000..7ddc4031a2 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/railcraft/MixinRailcraftTunnelBorePollution.java @@ -0,0 +1,34 @@ +package gregtech.mixin.mixins.late.railcraft; + +import net.minecraft.entity.item.EntityMinecart; +import net.minecraft.world.World; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; +import mods.railcraft.common.carts.EntityTunnelBore; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(EntityTunnelBore.class) +public abstract class MixinRailcraftTunnelBorePollution extends EntityMinecart { + + @Shadow(remap = false) + private boolean active; + + private MixinRailcraftTunnelBorePollution(World world) { + super(world); + } + + @Inject(method = "onUpdate", at = @At("HEAD")) + private void gt5u$addPollution(CallbackInfo ci) { + if (!worldObj.isRemote || !active) return; + Pollution.addPollution( + worldObj.getChunkFromBlockCoords((int) posX, (int) posZ), + PollutionConfig.tunnelBorePollutionAmount); + } +} diff --git a/src/mixin/java/gregtech/mixin/mixins/late/thaumcraft/MixinThaumcraftAlchemyFurnacePollution.java b/src/mixin/java/gregtech/mixin/mixins/late/thaumcraft/MixinThaumcraftAlchemyFurnacePollution.java new file mode 100644 index 0000000000..a842f42d57 --- /dev/null +++ b/src/mixin/java/gregtech/mixin/mixins/late/thaumcraft/MixinThaumcraftAlchemyFurnacePollution.java @@ -0,0 +1,33 @@ +package gregtech.mixin.mixins.late.thaumcraft; + +import net.minecraft.tileentity.TileEntity; + +import org.spongepowered.asm.lib.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import gregtech.common.pollution.Pollution; +import gregtech.common.pollution.PollutionConfig; +import thaumcraft.common.tiles.TileAlchemyFurnace; + +// Merged from ModMixins under the MIT License Copyright bartimaeusnek & GTNewHorizons +@Mixin(TileAlchemyFurnace.class) +public abstract class MixinThaumcraftAlchemyFurnacePollution extends TileEntity { + + @Inject( + method = "updateEntity", + at = @At( + value = "FIELD", + target = "thaumcraft/common/tiles/TileAlchemyFurnace.furnaceBurnTime:I", + opcode = Opcodes.PUTFIELD, + remap = false)) + private void gt5u$addPollution(CallbackInfo ci) { + if (!this.worldObj.isRemote && (this.worldObj.getTotalWorldTime() % 20) == 0) { + Pollution.addPollution( + this.worldObj.getChunkFromBlockCoords(this.xCoord, this.zCoord), + PollutionConfig.furnacePollutionAmount); + } + } +} |