diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2021-12-12 14:29:34 +0000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2021-12-12 14:29:34 +0000 |
commit | 8752df0b865c1a4104851da6ca100ad28952408d (patch) | |
tree | a9fbd24dffbcc9adcab1d14b52487032b64286f2 /src/Java/gtPlusPlus/xmod/gregtech | |
parent | 210f8cb4730b8472e0e86a53ed99616e7183b6a5 (diff) | |
parent | 9cbfc7a1bacdbe908632e0fff9ec5ad7f119e563 (diff) | |
download | GT5-Unofficial-8752df0b865c1a4104851da6ca100ad28952408d.tar.gz GT5-Unofficial-8752df0b865c1a4104851da6ca100ad28952408d.tar.bz2 GT5-Unofficial-8752df0b865c1a4104851da6ca100ad28952408d.zip |
Merge branch 'master' of https://github.com/GTNewHorizons/GTplusplus into gtnh-milling
# Conflicts:
# build.properties
# src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java
# src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java
# src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java
# src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech')
46 files changed, 339 insertions, 361 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java index f623fe7405..a375f77cda 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java @@ -8,6 +8,7 @@ import java.util.Collection; import java.util.List; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; +import gregtech.api.GregTech_API; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; @@ -40,6 +41,7 @@ import gtPlusPlus.core.util.reflect.AddGregtechRecipe; import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.everglades.gen.gt.WorldGen_GT; import gtPlusPlus.xmod.gregtech.api.enums.CustomOrePrefix; +import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import gtPlusPlus.xmod.gregtech.api.util.GTPP_Config; import gtPlusPlus.xmod.gregtech.api.world.GTPP_Worldgen; @@ -141,6 +143,18 @@ public class HANDLER_GT { //Register some custom recipe maps for any enabled multiblocks. //MultiblockRecipeMapHandler.run(); + + if (GregtechItemList.Circuit_BioRecipeSelector.hasBeenSet()) { + for (int i = 1; i <= 24; i++) { + GregTech_API.registerConfigurationCircuit(CI.getNumberedBioCircuit(i), 0); + } + } + + if (GregtechItemList.Circuit_T3RecipeSelector.hasBeenSet()) { + for (int i = 1; i <= 24; i++) { + GregTech_API.registerConfigurationCircuit(CI.getNumberedAdvancedCircuit(i), 3); + } + } } public static void onLoadComplete(FMLLoadCompleteEvent event) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java index fd021f1487..4d79be29b1 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java @@ -2231,10 +2231,6 @@ public abstract class GregtechMeta_MultiBlockBase<T extends GT_MetaTileEntity_En * Pollution Management */ - public int getPollutionPerTick(ItemStack arg0) { - return 0; - } - private static Method calculatePollutionReduction = null; public int calculatePollutionReductionForHatch(GT_MetaTileEntity_Hatch_Muffler i , int g) { if (calculatePollutionReduction != null) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java index 2e63e2476f..53b891ffb9 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java @@ -22,13 +22,18 @@ import net.minecraftforge.fluids.FluidStack; public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_BasicTank { private boolean useFuel = false; + protected int pollMin, pollMax; public GregtechRocketFuelGeneratorBase(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); + int pollMin = (int)(CORE.ConfigSwitches.baseMinPollutionPerSecondRocketFuelGenerator * CORE.ConfigSwitches.pollutionReleasedByTierRocketFuelGenerator[mTier]); + int pollMax = (int)(CORE.ConfigSwitches.baseMaxPollutionPerSecondRocketFuelGenerator * CORE.ConfigSwitches.pollutionReleasedByTierRocketFuelGenerator[mTier]); } public GregtechRocketFuelGeneratorBase(final String aName, final int aTier, final String aDescription, final ITexture[][][] aTextures) { super(aName, aTier, 3, aDescription, aTextures); + int pollMin = (int)(CORE.ConfigSwitches.baseMinPollutionPerSecondRocketFuelGenerator * CORE.ConfigSwitches.pollutionReleasedByTierRocketFuelGenerator[mTier]); + int pollMax = (int)(CORE.ConfigSwitches.baseMaxPollutionPerSecondRocketFuelGenerator * CORE.ConfigSwitches.pollutionReleasedByTierRocketFuelGenerator[mTier]); } @Override @@ -56,21 +61,14 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_ @Override - public String[] getDescription() { - if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) { - int pollMin = mTier == 4 ? 250 : (mTier == 5 ? 500 : 750); - int pollMax = mTier == 4 ? 2000 : (mTier == 5 ? 4000 : 6000); + public String[] getDescription() { String aPollution = "Causes between "+pollMin+" and "+pollMax+ " Pollution per second"; return new String[]{ this.mDescription, "Fuel Efficiency: " + this.getEfficiency() + "%", aPollution, CORE.GT_Tooltip}; - } - return new String[]{ - this.mDescription, - "Fuel Efficiency: " + this.getEfficiency() + "%", - CORE.GT_Tooltip}; + } } @@ -294,8 +292,10 @@ public abstract class GregtechRocketFuelGeneratorBase extends GT_MetaTileEntity_ } } - public abstract int getPollution(); - + public int getPollution() { + return MathUtils.randInt(pollMin, pollMax); + } + public abstract GT_Recipe_Map getRecipes(); public abstract int getEfficiency(); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java index d1ce55d3f2..56dff1b1e3 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java @@ -41,7 +41,7 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE } public GT_MetaTileEntity_Hatch_NbtConsumable(String aName, int aTier, int aInputSlots, String[] aDescription, boolean aAllowDuplicateTypes, ITexture[][][] aTextures) { - super(aName, aTier, aInputSlots*2, aDescription[0], aTextures); + super(aName, aTier, aInputSlots*2, aDescription, aTextures); mInputslotCount = getInputSlotCount(); mTotalSlotCount = getInputSlotCount()*2; mAllowDuplicateUsageTypes = aAllowDuplicateTypes; @@ -127,7 +127,7 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE if (i <= getSlotID_LastInput()) { fillStacksIntoFirstSlots(); } - } + } } // Only moves items in the first four slots @@ -141,7 +141,7 @@ public abstract class GT_MetaTileEntity_Hatch_NbtConsumable extends GT_MetaTileE } } - private final void tryFillUsageSlots() { + public final void tryFillUsageSlots() { int aSlotSpace = (mInputslotCount - getContentUsageSlots().size()); if (aSlotSpace > 0) { Logger.INFO("We have empty usage slots. "+aSlotSpace); diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java index c728c5d8e8..2ff2712952 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java @@ -15,6 +15,7 @@ import cpw.mods.fml.common.eventhandler.Event.Result; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; +import gregtech.api.enums.*; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; import net.minecraft.block.IGrowable; @@ -28,8 +29,6 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.world.ChunkPosition; import net.minecraft.world.World; -import gregtech.api.enums.OrePrefixes; -import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; @@ -54,12 +53,14 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.BonemealEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.oredict.OreDictionary; public class TreeFarmHelper { public static final FluidStack fertT1 = FluidUtils.getFluidStack("fluid.fertiliser", 3); public static final FluidStack fertT2 = FluidUtils.getFluidStack("fluid.un18fertiliser", 2); public static final FluidStack fertT3 = FluidUtils.getFluidStack("fluid.un32fertiliser", 1); + private static final int sawOreId = OreDictionary.getOreID(ToolDictNames.craftingToolSaw.name()); public static ITexture[][][] getTextureSet() { final ITexture[][][] rTextures = new ITexture[10][17][]; @@ -287,73 +288,26 @@ public class TreeFarmHelper { return SAWTOOL.NONE; } - public static boolean isCorrectPart(final ItemStack aStack) { + public static ToolType getPartType(final ItemStack aStack) { if (aStack != null){ //Utils.LOG_WARNING("Found "+aStack.getDisplayName()+" in the GUI slot."); - if (aStack.getItem() instanceof MetaGeneratedGregtechItems) { + if (aStack.getItem() == MetaGeneratedGregtechItems.INSTANCE) { int aDmg = aStack.getItemDamage(); if (aDmg >= 32120 && aDmg <= 32128) { - return true; - } - else if (aStack.getUnlocalizedName().toLowerCase().contains("mu-metaitem")) { - String[] aData = aStack.getUnlocalizedName().toLowerCase().split("//."); - if (aData != null && aData.length > 0) { - for (String s : aData) { - if (s.contains("32120")) { - return true; - } - else if (s.contains("32122")) { - return true; - } - else if (s.contains("32124")) { - return true; - } - else if (s.contains("32126")) { - return true; - } - else if (s.contains("32128")) { - return true; - } - else { - Logger.INFO("bad Tool in Slot 1"); - return false; - } - } - } + return ToolType.Unbreakable; } Logger.INFO("bad Tool in Slot 2 | "+aStack.getUnlocalizedName().toLowerCase() + " | "+aDmg); - return false; + return null; } - if ((aStack.getItem() instanceof GT_MetaGenerated_Item_02) || (aStack.getItem() instanceof GT_MetaGenerated_Tool)){ - if (OrePrefixes.craftingTool.contains(aStack)){ - if (aStack.getDisplayName().toLowerCase().contains("saw") || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01")){ - if (aStack.getItemDamage() == 10){ - return true; - } - else if (aStack.getItemDamage() == 140 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.140")){ - return true; - } - else if (aStack.getItemDamage() == 110 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.110")){ - return true; - } - else if (aStack.getItemDamage() == 112 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.112")){ - return true; - } - else if (aStack.getItemDamage() == 114 || aStack.getDisplayName().toLowerCase().contains("gt.metatool.01.114")){ - return true; - } - else { - Logger.INFO("bad Tool in Slot 3"); - return false; - } - } - } + if (aStack.getItem() instanceof GT_MetaGenerated_Tool) { + if (Arrays.stream(OreDictionary.getOreIDs(aStack)).anyMatch(i -> i == sawOreId)) + return ToolType.Breakable; } } Logger.INFO("bad Tool in Slot 4"); - return false; + return null; } public static boolean isHumusLoaded = false; @@ -716,7 +670,10 @@ public class TreeFarmHelper { } - + public enum ToolType { + Unbreakable, + Breakable + } /** diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java index b94ebf2918..bb40c9b379 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java @@ -35,14 +35,13 @@ public class TreeGenerator { } public AutoMap<ItemStack> generateOutput(int aTreeSize){ - AutoMap<ItemStack> aTemp = new AutoMap<ItemStack>(); AutoMap<ItemStack> aOutputMap = mTreeData.getOutputFromTree(); if (aOutputMap != null && aOutputMap.size() > 0) { Logger.WARNING("Valid tree data output"); return aOutputMap; } Logger.WARNING("Invalid tree data output"); - return aTemp; + return new AutoMap<ItemStack>(); } public static class FakeTreeInFakeWorldGenerator extends WorldGenAbstractTree diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java index ac7b444cb4..4173489be6 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java @@ -236,7 +236,7 @@ public class GT_MetaTileEntity_Boiler_Base extends GT_MetaTileEntity_Boiler { @Override protected int getPollution() { - return 20 + (15 * tier); + return (int) (CORE.ConfigSwitches.basePollutionPerSecondBoiler*CORE.ConfigSwitches.pollutionReleasedByTierBoiler[this.tier]); } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java index 572abaa211..d1628bdb59 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java @@ -21,7 +21,6 @@ import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_BasicGenerator { - public static final int BASE_POLLUTION = 2; public int mEfficiency; /*public GT_MetaTileEntity_SemiFluidGenerator(int aID, String aName, String aNameRegional, int aTier) { @@ -42,7 +41,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi } public int getPollution() { - return (int) (2.0D * Math.pow(2.0D, this.mTier)); + return (int) (CORE.ConfigSwitches.basePollutionPerSecondSemiFluidGenerator * CORE.ConfigSwitches.pollutionReleasedByTierSemiFluidGenerator[this.mTier]); } @Override @@ -70,7 +69,7 @@ public class GT_MetaTileEntity_SemiFluidGenerator extends GT_MetaTileEntity_Basi public String[] getDescription() { return new String[]{ this.mDescription, - "Produces "+(this.getPollution()*20)+" pollution/sec", + "Produces "+(this.getPollution())+" pollution/sec", "Fuel Efficiency: "+this.getEfficiency() + "%", CORE.GT_Tooltip}; } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java index 58221313f9..a392ae5a58 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java @@ -38,7 +38,7 @@ extends GT_MetaTileEntity_BasicGenerator @Override public String[] getDescription() { - String aPollution = "Causes between "+this.getPollution()+ " Pollution per second"; + String aPollution = "Causes "+this.getPollution()+ " Pollution per second"; return new String[]{ this.mDescription, "Generates power at " + this.getEfficiency() + "% Efficiency per tick", @@ -146,6 +146,6 @@ extends GT_MetaTileEntity_BasicGenerator } public int getPollution() { - return 100; + return (int) (CORE.ConfigSwitches.basePollutionPerSecondGeothermalGenerator * CORE.ConfigSwitches.pollutionReleasedByTierGeothermalGenerator[mTier]); } }
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java index f9bf116362..c05c7ae3ff 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java @@ -12,6 +12,7 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GTPP_Recipe; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.generators.GregtechRocketFuelGeneratorBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; @@ -138,10 +139,4 @@ extends GregtechRocketFuelGeneratorBase { public ITexture[] getSidesActive(final byte aColor) { return new ITexture[]{super.getSidesActive(aColor)[0], this.getCasingTexture(), new GT_RenderedTexture(TexturesGtBlock.Overlay_Machine_Diesel_Horizontal_Active)}; } - - public int getPollution() { - int pollMin = mTier == 4 ? 250 : (mTier == 5 ? 500 : 750); - int pollMax = mTier == 4 ? 2000 : (mTier == 5 ? 4000 : 6000); - return (int) (MathUtils.randInt(pollMin, pollMax)/20); - } } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java index 37eaffc771..b8f24d6c5e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java @@ -18,6 +18,7 @@ import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.ItemStackData; import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.item.ItemStack; @@ -123,7 +124,7 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { .addInfo("Uncomparably fast compared to a single packager of the same tier") .addInfo("Only uses 75% of the eu/t normally required") .addInfo("Processes five items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front center") @@ -301,8 +302,8 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(ItemStack arg0) { - return 2; + public int getPollutionPerSecond(ItemStack arg0){ + return CORE.ConfigSwitches.pollutionPerSecondMultiPackager; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java index cbe93e05fb..df01d01679 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java @@ -14,6 +14,7 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.lib.CORE; import org.apache.commons.lang3.ArrayUtils; import gregtech.api.enums.TAE; @@ -78,8 +79,8 @@ public class GregtechMetaTileEntity_IndustrialAlloySmelter extends GregtechMeta_ return 10000; } - public int getPollutionPerTick(ItemStack aStack) { - return 15; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialAlloySmelter; } public int getDamageToComponent(ItemStack aStack) { @@ -114,12 +115,12 @@ public class GregtechMetaTileEntity_IndustrialAlloySmelter extends GregtechMeta_ .addInfo("Gains one multiplier per coil tier") .addInfo("parallel = tier * coil tier") .addInfo("Gains 5% speed bonus per coil tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 5, 3, true) .addController("Bottom center") .addCasingInfo("Inconel Reinforced Casings", 10) - .addCasingInfo("Integral Encasement V", 18) + .addCasingInfo("Integral Encasement V", 8) .addCasingInfo("Heating Coils", 16) .addInputBus("Any Inconel Reinforced Casing", 1) .addOutputBus("Any Inconel Reinforced Casing", 1) @@ -215,9 +216,27 @@ public class GregtechMetaTileEntity_IndustrialAlloySmelter extends GregtechMeta_ return 100; } + + @Override public boolean checkRecipe(ItemStack aStack) { - return checkRecipeGeneric(this.getMaxParallelRecipes(), 100, 5 * this.mLevel); // Will have to clone the logic from parent class to handle heating coil - // tiers. + FluidStack[] tFluids = getStoredFluids().toArray(new FluidStack[0]); + for (GT_MetaTileEntity_Hatch_InputBus tBus : mInputBusses) { + ArrayList<ItemStack> tInputs = new ArrayList<>(); + if (isValidMetaTileEntity(tBus)) { + for (int i = tBus.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) { + if (tBus.getBaseMetaTileEntity().getStackInSlot(i) != null) { + tInputs.add(tBus.getBaseMetaTileEntity().getStackInSlot(i)); + } + } + } + if (tInputs.size() > 1) { + ItemStack[] tItems = tInputs.toArray(new ItemStack[0]); + if (checkRecipeGeneric(tItems, tFluids, getMaxParallelRecipes(), 100, 5 * this.mLevel, 10000)) { + return true; + } + } + } + return false; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java index 65da72a520..35a92d5be3 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java @@ -13,7 +13,6 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; -import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; @@ -73,7 +72,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("250% faster than using single block machines of the same voltage") .addInfo("Processes 8 items per voltage tier") .addInfo("Max Size required to process Plasma recipes") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .addController("Top center") .addStructureInfo("Size: nx3xn [WxHxL] (Hollow)") @@ -251,8 +250,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 120; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialArcFurnace; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java index 000763767a..8802a7148b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java @@ -71,7 +71,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("Disable animations with a screwdriver") .addInfo("Only uses 90% of the eu/t normally required") .addInfo("Processes six items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") @@ -203,8 +203,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 15; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialCentrifuge; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java index 8d51a4b0aa..21caf135b1 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java @@ -59,7 +59,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("Gain 4% speed bonus per voltage tier increased") .addInfo("Process 12x materials with Heat Resistant Casings") .addInfo("Or 24x materials with Heat Proof Casings") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front middle at bottom") @@ -214,8 +214,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 4; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialCokeOven; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java index 10f05faf48..bf5f8aaeaf 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java @@ -60,7 +60,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("200% faster than using single block machines of the same voltage") .addInfo("Only uses 75% of the eu/t normally required") .addInfo("Processes four items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 5, true) .addController("Front Center") @@ -180,8 +180,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 8; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialCuttingMachine; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java index 571c823f78..44552ea2f7 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java @@ -14,6 +14,7 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.lib.CORE; import org.apache.commons.lang3.ArrayUtils; import gregtech.api.enums.TAE; @@ -32,13 +33,10 @@ import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; -import gtPlusPlus.xmod.gregtech.common.StaticFields59; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; -import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; public class GregtechMetaTileEntity_IndustrialDehydrator extends GregtechMeta_MultiBlockBase { @@ -80,7 +78,7 @@ public class GregtechMetaTileEntity_IndustrialDehydrator extends GregtechMeta_Mu .addInfo("Each 900K over the min. Heat Capacity grants 5% speedup (multiplicatively)") .addInfo("Each 1800K over the min. Heat Capacity allows for one upgraded overclock") .addInfo("Upgraded overclocks reduce recipe time to 25% and increase EU/t to 400%") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 4, 3, true) .addController("Bottom Center") @@ -190,8 +188,8 @@ public class GregtechMetaTileEntity_IndustrialDehydrator extends GregtechMeta_Mu return 10000; } - public int getPollutionPerTick(ItemStack aStack) { - return 25; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialDehydrator; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java index 454e8a752e..f6613980ca 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java @@ -54,7 +54,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("180% faster than using single block machines of the same voltage") .addInfo("Only uses 90% of the eu/t normally required") .addInfo("Processes two items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") @@ -167,8 +167,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 15; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialElectrolyzer; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java index f0d0f1471d..a5c7f62578 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java @@ -62,7 +62,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("Extrusion Shape for recipe goes in the Input Bus") .addInfo("Each Input Bus can have a different shape!") .addInfo("You can use several input buses per multiblock") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 5, true) .addController("Front Center") @@ -232,8 +232,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 50; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialExtruder; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java index e57a3da871..b6e072b653 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java @@ -57,7 +57,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("60% faster than using single block machines of the same voltage") .addInfo("Processes 8*tier materials at a time") .addInfo("ULV = Tier 0, LV = Tier 1, etc.") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 6, 3, true) .addController("Bottom Center") @@ -237,8 +237,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 20; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMacerator; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java index a5906133de..5e405d426d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java @@ -76,7 +76,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("Controller Block for the Industrial Mixer") .addInfo("250% faster than using single block machines of the same voltage") .addInfo("Processes eight recipes per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 4, 3, false) .addController("Second Layer Center") @@ -241,8 +241,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 40; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMixer; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java index ea1ee2a7ca..a0909a4fff 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java @@ -12,6 +12,7 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.*; +import gtPlusPlus.core.lib.CORE; import org.apache.commons.lang3.ArrayUtils; import gregtech.api.enums.TAE; @@ -97,7 +98,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("Machine Type: [B] - " + EnumChatFormatting.YELLOW + aBuiltStrings[1] + EnumChatFormatting.RESET) .addInfo("Machine Type: [C] - " + EnumChatFormatting.YELLOW + aBuiltStrings[2] + EnumChatFormatting.RESET) .addInfo("Read Multi-Machine Manual for extra information") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") @@ -249,19 +250,16 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { + public int getPollutionPerSecond(final ItemStack aStack) { if (mInternalMode == 0) { - return 20; + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal; } else if (mInternalMode == 1) { - return 20; + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid; } - else if (mInternalMode == 2) { - return 30; + else { //config 2 + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc; } - else { - return 50; - } } public int getTextureIndex() { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java index 451cadcf4e..007d1a0d0f 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java @@ -62,7 +62,7 @@ public class GregtechMetaTileEntity_IndustrialPlatePress extends GregtechMeta_Mu .addInfo("Processes four items per voltage tier") .addInfo("Circuit for recipe goes in the Input Bus") .addInfo("Each Input Bus can have a different Circuit/Shape!") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") @@ -202,8 +202,9 @@ public class GregtechMetaTileEntity_IndustrialPlatePress extends GregtechMeta_Mu } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return this.mFormingMode ? 12 : 24; + public int getPollutionPerSecond(final ItemStack aStack) { + if (this.mFormingMode) return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialPlatePress_ModeForming; + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialPlatePress_ModeBending; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java index 966d4f6533..c5450fec5b 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java @@ -56,7 +56,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("400% faster than single-block machines of the same voltage") .addInfo("Only uses 75% of the eu/t normally required") .addInfo("Processes four items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(5, 3, 5, false) .addController("Bottom Center") @@ -204,8 +204,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 2; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialSifter; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java index 8157d79c72..01b887694a 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java @@ -56,7 +56,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("150% faster than using single block machines of the same voltage") .addInfo("Only uses 80% of the eu/t normally required") .addInfo("Processes eight items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 2, 3, false) .addController("Front Center") @@ -195,8 +195,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 50; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialThermalCentrifuge; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java index 0b6890c868..1f63995651 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java @@ -86,7 +86,7 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta .addInfo("Speed: 200% | Eu Usage: 100% | Parallel: 4") .addInfo("Consumes 1L of " + mCryoFuelName + "/t during operation") .addInfo("Constructed exactly the same as a normal Vacuum Freezer") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") @@ -221,8 +221,8 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer extends GregtechMeta return 10000; } - public int getPollutionPerTick(final ItemStack aStack) { - return 25; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialVacuumFreezer; } public int getDamageToComponent(final ItemStack aStack) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java index 2212f62b11..168d4ff6d6 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java @@ -69,7 +69,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("400% faster than using single block machines of the same voltage") .addInfo("Processes four item per voltage tier") .addInfo("Always requires an Input Hatch full of water to refill structure") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(5, 3, 7, true) .addController("Front Center") @@ -198,8 +198,9 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return this.mChemicalMode ? 20 : 5; + public int getPollutionPerSecond(final ItemStack aStack) { + if (this.mChemicalMode) return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath; + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialWashPlant_ModeWasher; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java index 3a70bb60af..ccce25d925 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java @@ -56,7 +56,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("200% faster than using single block machines of the same voltage") .addInfo("Only uses 75% of the eu/t normally required") .addInfo("Processes four items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 5, true) .addController("Front Center") @@ -178,8 +178,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 5; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialWireMill; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java index 34237eaa6b..59e6e78757 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java @@ -13,6 +13,7 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.lib.CORE; import org.apache.commons.lang3.ArrayUtils; import gregtech.api.enums.TAE; @@ -77,7 +78,7 @@ public class GregtechMetaTileEntity_IsaMill extends GregtechMeta_MultiBlockBase tt.addMachineType(getMachineType()) .addInfo("Controller Block for the Large Grinding Machine") .addInfo("Grind ores.") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 7, false) .addController("Front Center") @@ -360,8 +361,8 @@ public class GregtechMetaTileEntity_IsaMill extends GregtechMeta_MultiBlockBase } @Override - public int getPollutionPerTick(ItemStack aStack) { - return 64; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIsaMill; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java index 23fb26ea53..6d8ca49d7d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java @@ -148,7 +148,7 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M .addInfo("Max parallel dictated by tower tier and mode") .addInfo("DTower Mode: T1=4, T2=12") .addInfo("Distilery Mode: Tower Tier * (4*InputTier)") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .addCasingInfo("Clean Stainless Steel Machine Casing", 7) .addInputBus("Bottom Casing", 1) @@ -208,8 +208,9 @@ public class GregtechMetaTileEntity_Adv_DistillationTower extends GregtechMeta_M return 10000; } - public int getPollutionPerTick(ItemStack aStack) { - return this.mMode == 1 ? 12 : 24; + public int getPollutionPerSecond(ItemStack aStack) { + if (this.mMode == 1) return CORE.ConfigSwitches.pollutionPerSecondMultiAdvDistillationTower_ModeDistillery; + return CORE.ConfigSwitches.pollutionPerSecondMultiAdvDistillationTower_ModeDT; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java index 1a77423fdb..ce54aef282 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java @@ -14,6 +14,7 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GT_MetaTileEntity_Hatch_CustomFluidBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; @@ -94,7 +95,7 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase .addInfo("Speed: 120% | Eu Usage: 90% | Parallel: 8") .addInfo("Consumes 10L of " + mHotFuelName + " per second during operation") .addInfo("Constructed exactly the same as a normal EBF") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .addController("Bottom center") .addCasingInfo(mCasingName, 9) @@ -247,8 +248,8 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase return 10000; } - public int getPollutionPerTick(ItemStack aStack) { - return 25; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiAdvEBF; } public int getDamageToComponent(ItemStack aStack) { @@ -324,7 +325,7 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase aSpeedBonusPercent = Math.max(-99, aSpeedBonusPercent); float tTimeFactor = 100.0f / (100.0f + aSpeedBonusPercent); this.mMaxProgresstime = (int) (tRecipe.mDuration * tTimeFactor); - int rInt = 2; + int tHalfHeatCapacityDivTiers = tHeatCapacityDivTiers / 2; this.mEUt = (int) Math.ceil(tTotalEUt); @@ -338,7 +339,15 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase } else { while (this.mEUt <= gregtech.api.enums.GT_Values.V[(tTier - 1)]) { this.mEUt *= 4; - this.mMaxProgresstime /= (tHeatCapacityDivTiers >= rInt ? 4 : 2); + if (tHalfHeatCapacityDivTiers > 0) { + this.mMaxProgresstime = mMaxProgresstime / 4; + tHalfHeatCapacityDivTiers--; + } else { + this.mMaxProgresstime = mMaxProgresstime / 2; + } + if (this.mMaxProgresstime <= 1) { + break; + } } } if (this.mEUt > 0) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java index 93d5d74dc4..aff614184a 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java @@ -59,7 +59,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("Factory Grade Advanced Implosion Compressor") .addInfo("Speed: 100% | Eu Usage: 100% | Parallel: ((Tier/2)+1)") .addInfo("Constructed exactly the same as a normal Implosion Compressor") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front center") @@ -182,8 +182,8 @@ extends GregtechMeta_MultiBlockBase { return 10000; } - public int getPollutionPerTick(ItemStack aStack) { - return 250; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiAdvImplosion; } public int getDamageToComponent(ItemStack aStack) { diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java index 7700e496b4..eae51e5c1d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java @@ -117,8 +117,8 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(ItemStack aStack) { - return 25; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiAutoCrafter; } public int getAmountOfOutputs() { @@ -133,7 +133,7 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase { .addInfo("Right Click with a Screwdriver to change mode") .addInfo("200% faster than using single block machines of the same voltage") .addInfo("Processes two items per voltage tier") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java index ef52dbaf13..65474d38ed 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java @@ -194,9 +194,9 @@ extends GregtechMeta_MultiBlockBase } @Override - public int getPollutionPerTick(ItemStack aStack) + public int getPollutionPerSecond(ItemStack aStack) { - return 35; + return CORE.ConfigSwitches.pollutionPerSecondMultiThermalBoiler; } public int getAmountOfOutputs() @@ -211,7 +211,7 @@ extends GregtechMeta_MultiBlockBase .addInfo("Thermal Boiler Controller") .addInfo("Converts Water & Heat into Steam") .addInfo("Consult user manual for more information") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java index fb442d294f..8a936525f0 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java @@ -12,6 +12,7 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.lib.CORE; import org.apache.commons.lang3.ArrayUtils; import gregtech.api.GregTech_API; @@ -61,7 +62,7 @@ public class GregtechMTE_FrothFlotationCell extends GregtechMeta_MultiBlockBase GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType(getMachineType()) .addInfo("Process that milled ore!") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front Center") @@ -193,8 +194,8 @@ public class GregtechMTE_FrothFlotationCell extends GregtechMeta_MultiBlockBase } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 0; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiFrothFlotationCell; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java index 4b9325d079..92764ef9e4 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java @@ -1,30 +1,20 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofBlock; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.ofChain; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.onElementPass; -import static com.gtnewhorizon.structurelib.structure.StructureUtility.transpose; -import static gregtech.api.util.GT_StructureUtility.ofHatchAdder; - +import java.util.ArrayList; import java.util.Collection; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; - +import gregtech.api.enums.Materials; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GTPP_Recipe; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Recipe.GT_Recipe_Map; @@ -32,8 +22,10 @@ import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.ELEMENT; +import gtPlusPlus.core.material.nuclear.FLUORIDES; import gtPlusPlus.core.material.nuclear.NUCLIDE; import gtPlusPlus.core.util.math.MathUtils; +import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -80,7 +72,7 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg .addInfo("Input Fluorine and Helium for bonus byproducts") .addInfo("Input Li2BeF4 and a molten salt as fuel.") .addInfo("LiFBeF2ThF4UF4, LiFBeF2ZrF4UF4 or LiFBeF2ZrF4U235") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(7, 4, 7, true) .addController("Bottom Center") @@ -205,6 +197,7 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg ) ) ) + ) .addElement( 'X', ofChain( @@ -218,6 +211,7 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg ) ) ) + ) ) .addElement( @@ -226,12 +220,14 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg ModBlocks.blockCasingsMisc, 12 ) ) + ) .addElement( 'G', ofBlock( ModBlocks.blockCasingsMisc, 13 ) ) + ) .build(); } return STRUCTURE_DEFINITION; @@ -490,6 +486,7 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg } } else { + this.boostEu = false; this.turnCasingActive(false); } } @@ -504,6 +501,7 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg if (MathUtils.randInt(1, 300) == 1){ this.addOutput(ELEMENT.getInstance().URANIUM233.getFluidStack(MathUtils.randInt(1, 10))); } + } return super.onRunningTick(aStack); } diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java index 5f5eb5509c..83b8eae458 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java @@ -1,41 +1,29 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - +import codechicken.nei.ItemStackMap; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.enums.Materials; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; -import gregtech.api.interfaces.IIconContainer; -import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.*; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.metatileentity.implementations.*; -import gregtech.api.objects.GT_RenderedTexture; -import gregtech.api.util.GT_ModHandler; -import gregtech.api.util.GT_Multiblock_Tooltip_Builder; -import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; +import gregtech.api.render.TextureFactory; +import gregtech.api.util.*; import gtPlusPlus.api.objects.data.AutoMap; -import gtPlusPlus.api.objects.minecraft.ThreadFakeWorldGenerator; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.minecraft.EnergyUtils.EU; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.helpers.TreeFarmHelper; import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator; -import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechItems; -import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools; import net.minecraft.init.Blocks; -import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import static com.gtnewhorizon.structurelib.structure.StructureUtility.*; @@ -50,51 +38,30 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase private IStructureDefinition<GregtechMetaTileEntityTreeFarm> STRUCTURE_DEFINITION = null; static { - mTreeData = new TreeGenerator(); + new Thread("GTPP-TreeDataWorker") { + @Override + public void run() { + mTreeData = new TreeGenerator(); + } + }.start(); } + private static ItemStack aLeaves; + public GregtechMetaTileEntityTreeFarm(final int aID, final String aName, final String aNameRegional) { super(aID, aName, aNameRegional); CASING_TEXTURE_ID = TAE.getIndexFromPage(1, 15); mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15); } - /* - * Static thread for Fake World Handling - */ - - - private static ScheduledExecutorService executor; - private static ThreadFakeWorldGenerator aThread; - public GregtechMetaTileEntityTreeFarm(final String aName) { super(aName); CASING_TEXTURE_ID = TAE.getIndexFromPage(1, 15); mCasingName = ItemUtils.getLocalizedNameOfBlock(ModBlocks.blockCasings2Misc, 15); - - if (executor == null || mTreeData == null) { - if (executor == null) { - executor = Executors.newScheduledThreadPool(10); - } - if (executor != null) { - if (aThread == null) { - aThread = new ThreadFakeWorldGenerator(); - executor.scheduleAtFixedRate(aThread, 0, 1, TimeUnit.SECONDS); - while (aThread.mGenerator == null) { - if (aThread.mGenerator != null) { - break; - } - } - if (aThread.mGenerator != null) { - mTreeData = aThread.mGenerator; - } - } - } - } } public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { - return (IMetaTileEntity) new GregtechMetaTileEntityTreeFarm(this.mName); + return new GregtechMetaTileEntityTreeFarm(this.mName); } @Override @@ -112,7 +79,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase .addInfo("Converts EU to Oak Logs") .addInfo("Eu Usage: 100% | Parallel: 1") .addInfo("Requires a Saw or Chainsaw in GUI slot") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 3, true) .addController("Front center") @@ -130,7 +97,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase final byte aColorIndex, final boolean aActive, final boolean aRedstone) { if (aSide == aFacing) { return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID), - new GT_RenderedTexture((IIconContainer) (aActive ? TexturesGtBlock.Overlay_Machine_Controller_Advanced_Active : TexturesGtBlock.Overlay_Machine_Controller_Advanced))}; + TextureFactory.of(aActive ? TexturesGtBlock.Overlay_Machine_Controller_Advanced_Active : TexturesGtBlock.Overlay_Machine_Controller_Advanced)}; } return new ITexture[]{Textures.BlockIcons.getCasingTextureForId(CASING_TEXTURE_ID)}; } @@ -155,16 +122,20 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase } public boolean isCorrectMachinePart(final ItemStack aStack) { - return TreeFarmHelper.isCorrectPart(aStack); - //return true; + // is correct part && either not powered tool or have enough power + return TreeFarmHelper.getPartType(aStack) != null && !GT_ModHandler.isElectricItem(aStack) || GT_ModHandler.canUseElectricItem(aStack, 1); } -// public boolean isFacingValid(final byte aFacing) { -// return aFacing > 1; -// } - public boolean checkRecipe(final ItemStack aStack) { - + if (mTreeData == null) + // not finished somehow + return false; + if (aStack == null && !replaceTool()) + // no tool + return false; + if (!isCorrectMachinePart(aStack)) + // not a tool + return false; if (mTreeData != null) { long tVoltage = getMaxInputVoltage(); @@ -193,35 +164,44 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase int aChance = MathUtils.randInt(0, 10); - AutoMap<ItemStack> aOutputs = new AutoMap<ItemStack>(); try { if (aChance < 8) { + ItemStackMap<Integer> allOutputs = new ItemStackMap<>(); + if (aLeaves == null) + aLeaves = ItemUtils.getSimpleStack(Blocks.leaves); //1% Chance per Tick for (int u = 0; u < (Math.max(4, (MathUtils.randInt((3 * tTier), 100) * tTier * tTier) / 14)); u++) { - aOutputs = mTreeData.generateOutput(0); + AutoMap<ItemStack> aOutputs = mTreeData.generateOutput(0); if (aOutputs.size() > 0) { - - ItemStack aLeaves = ItemUtils.getSimpleStack(Blocks.leaves); - for (ItemStack aOutputItemStack : aOutputs) { if (!GT_Utility.areStacksEqual(aLeaves, aOutputItemStack)) { - this.addOutput(aOutputItemStack); + Integer oldStackSize = allOutputs.get(aOutputItemStack); + int oldStackSizeUnboxed = oldStackSize == null ? 0 : oldStackSize; + allOutputs.put(aOutputItemStack, oldStackSizeUnboxed + aOutputItemStack.stackSize); } } - this.updateSlots(); } } + mOutputItems = allOutputs.entries().stream() + .map(e -> { + e.key.stackSize = e.value; + return e.key; + }).toArray(ItemStack[]::new); } } catch (Throwable t) { - t.printStackTrace(); + t.printStackTrace(GT_Log.err); } return true; } else { return false; } - //return this.checkRecipeGeneric(4, 100, 100); + } + + @Override + public boolean checkHatch() { + return super.checkHatch() && mEnergyHatches.size() == 1; } @Override @@ -280,8 +260,8 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase return 10000; } - public int getPollutionPerTick(final ItemStack aStack) { - return 5; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiTreeFarm; } public int getDamageToComponent(final ItemStack aStack) { @@ -298,7 +278,7 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase for (GT_MetaTileEntity_Hatch_InputBus mInputBus : this.mInputBusses) { for (int i = 0; i < mInputBus.mInventory.length; i++) { ItemStack uStack = mInputBus.mInventory[i]; - if (uStack != null && TreeFarmHelper.isCorrectPart(uStack)) { + if (uStack != null && TreeFarmHelper.getPartType(uStack) != null) { this.setGUIItemStack(uStack); return true; } @@ -320,29 +300,29 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase } @Override + public boolean doRandomMaintenanceDamage() { + ItemStack tSaw = mInventory[1]; + if (!isCorrectMachinePart(tSaw) || getRepairStatus() == 0) { + stopMachine(); + return false; + } + if (CORE.RANDOM.nextInt(200) == 0) { + if (!tryDamageTool(tSaw)) { + if (tSaw.getItem().isDamageable()) + addOutput(tSaw); + this.mInventory[1] = null; + if (!replaceTool()) + this.getBaseMetaTileEntity().disableWorking(); + tryDamageTool(tSaw); + } + } + return super.doRandomMaintenanceDamage(); + } + + @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); replaceTool(); - ItemStack invItem = this.mInventory[1]; - if (invItem != null && aTick % 200 == 0 && this.getBaseMetaTileEntity().isServerSide() && isCorrectMachinePart(invItem)) { - - if (!tryDamageTool(invItem)) { - if (!invItem.getItem().isDamageable()) { //item durability is <= 0 - this.mInventory[1] = null; - if (!replaceTool()) { - this.getBaseMetaTileEntity().disableWorking(); - } - tryDamageTool(invItem); - } else { - addOutput(invItem); - this.mInventory[1] = null; - if (!replaceTool()) { - this.getBaseMetaTileEntity().disableWorking(); - } - tryDamageTool(invItem); - } - } - } } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java index fb06d322fe..c84c5e162e 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java @@ -69,7 +69,7 @@ extends GregtechMeta_MultiBlockBase { .addInfo("20% Faster than the Electric Blast Furnace") .addInfo("Allows Complex GT++ alloys to be created") .addInfo("Circuit for recipe goes in the Input Bus or GUI slot") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 4, 3, true) .addController("Bottom Center") @@ -315,8 +315,8 @@ extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 10; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiABS; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java index f1b2bf6221..ecd4882516 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java @@ -248,7 +248,7 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas .addInfo("Any external casing can be a hatch/bus, unlike Fusion") .addInfo("Cyclotron Machine Casings around Cyclotron Coil Blocks") .addInfo("All Hatches must be IV or better") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .addCasingInfo("Cyclotron Machine Casings", 40) .addCasingInfo("Cyclotron Coil", 32) @@ -418,8 +418,8 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas } @Override - public int getPollutionPerTick(ItemStack aStack) { - return 10; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiCyclotron; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java index 6bec73aa20..80eb09640d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java @@ -74,7 +74,7 @@ public class GregtechMetaTileEntity_IndustrialFishingPond extends GregtechMeta_M .addInfo("Circuit 14 for Fish") .addInfo("Circuit 15 for Junk") .addInfo("Circuit 16 for Treasure") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(9, 3, 9, true) .addController("Front Center") @@ -236,8 +236,8 @@ public class GregtechMetaTileEntity_IndustrialFishingPond extends GregtechMeta_M } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 1; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiIndustrialFishingPond; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java index d8c5eec439..d9162cea89 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java @@ -111,7 +111,6 @@ public class GregtechMetaTileEntity_LargeRocketEngine extends GregtechMeta_Multi .addStructureHint("Air Intake Hatch", 1) .addInputBus("Side center line", 1) .addInputHatch("Side center line", 1) - .addOutputHatch("Side center line", 1) .addMaintenanceHatch("Side center line", 1) .addDynamoHatch("Top center line", 2) .addMufflerHatch("Back Center", 3) diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java index b85a67652e..9be787e922 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java @@ -1,7 +1,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production; import java.util.ArrayList; -import java.util.Collection; import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; @@ -16,7 +15,6 @@ import gregtech.api.metatileentity.implementations.*; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; -import gregtech.api.util.GT_Utility; import gregtech.api.util.GTPP_Recipe.GTPP_Recipe_Map; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; @@ -58,7 +56,7 @@ public class GregtechMetaTileEntity_LargeSemifluidGenerator extends GregtechMeta .addInfo("Supply 80L of Oxygen per second to boost output (optional).") .addInfo("Default: Produces 2048EU/t at 100% efficiency") .addInfo("Boosted: Produces 6144EU/t at 150% efficiency") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 3, 4, false) .addController("Front Center") @@ -92,40 +90,60 @@ public class GregtechMetaTileEntity_LargeSemifluidGenerator extends GregtechMeta @Override public boolean checkRecipe(ItemStack aStack) { ArrayList<FluidStack> tFluids = getStoredFluids(); - Collection<GT_Recipe> tRecipeList = GTPP_Recipe_Map.sSemiFluidLiquidFuels.mRecipeList; - - if(tFluids.size() > 0 && tRecipeList != null) { //Does input hatch have a semifluid fuel? - for (FluidStack hatchFluid1 : tFluids) { //Loops through hatches - for(GT_Recipe aFuel : tRecipeList) { //Loops through semifluid fuel recipes - FluidStack tLiquid; - if ((tLiquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null) { //Create fluidstack from current recipe - if (hatchFluid1.isFluidEqual(tLiquid)) { //Has a semifluid fluid - fuelConsumption = tLiquid.amount = boostEu ? (4096 / aFuel.mSpecialValue) : (2048 / aFuel.mSpecialValue); //Calc fuel consumption - if(depleteInput(tLiquid)) { //Deplete that amount - boostEu = depleteInput(Materials.Oxygen.getGas(4L)); - if(tFluids.contains(Materials.Lubricant.getFluid(2L))) { //Has lubricant? - //Deplete Lubricant. 2000L should = 1 hour of runtime (if baseEU = 2048) - if(mRuntime % 72 == 0 || mRuntime == 0) { - depleteInput(Materials.Lubricant.getFluid(boostEu ? 2 : 1)); - } - } - else { - return false; - } - - fuelValue = aFuel.mSpecialValue; - fuelRemaining = hatchFluid1.amount; //Record available fuel - this.mEUt = mEfficiency < 2000 ? 0 : 2048; //Output 0 if startup is less than 20% - this.mProgresstime = 1; - this.mMaxProgresstime = 1; - this.mEfficiencyIncrease = 15; - return true; - } - } + + // Check for lubricant and oxygen first, so we can compute costs ahead of time. + // This will allow us to check costs without needing to actually try to deplete fluids + // (wasting earlier fluids in the check if later fluids turn out to be insufficient). + FluidStack lubricant = Materials.Lubricant.getFluid(0L); + FluidStack oxygen = Materials.Oxygen.getGas(0L); + for (FluidStack hatchFluid : tFluids) { + if (hatchFluid.isFluidEqual(lubricant)) { + lubricant.amount = Math.max(lubricant.amount, hatchFluid.amount); + } else if (hatchFluid.isFluidEqual(oxygen)) { + oxygen.amount = Math.max(oxygen.amount, hatchFluid.amount); + } + } + boostEu = oxygen.amount >= 4L; + long lubricantCost = boostEu ? 2L : 1L; + if (lubricant.amount < lubricantCost) { + return false; + } + + for (FluidStack hatchFluid : tFluids) { //Loops through hatches + GT_Recipe aFuel = GTPP_Recipe_Map.sSemiFluidLiquidFuels.findFuel(hatchFluid); + if (aFuel == null) { + // Not a valid semi-fluid fuel. + continue; + } + + int newEUt = boostEu ? 4096 : 2048; + fuelConsumption = newEUt / aFuel.mSpecialValue; //Calc fuel consumption + FluidStack tLiquid = new FluidStack(hatchFluid.getFluid(), fuelConsumption); + if(depleteInput(tLiquid)) { //Deplete that amount + // We checked beforehand, so both of these depletions should succeed. + // But check the return values anyway just to be safe. + if (boostEu) { + if (!depleteInput(Materials.Oxygen.getGas(4L))) { + return false; + } + } + //Deplete Lubricant. 2000L should = 1 hour of runtime (if baseEU = 2048) + if(mRuntime % 72 == 0 || mRuntime == 0) { + if(!depleteInput(Materials.Lubricant.getFluid(lubricantCost))) { + return false; } } + + fuelValue = aFuel.mSpecialValue; + fuelRemaining = hatchFluid.amount; //Record available fuel + this.mEUt = mEfficiency < 2000 ? 0 : newEUt; //Output 0 if startup is less than 20% + this.mProgresstime = 1; + this.mMaxProgresstime = 1; + this.mEfficiencyIncrease = 15; + return true; } } + this.mEUt = 0; this.mEfficiency = 0; return false; @@ -266,12 +284,12 @@ public class GregtechMetaTileEntity_LargeSemifluidGenerator extends GregtechMeta } public int getMaxEfficiency(ItemStack aStack) { - return boostEu ? 20000 : 10000; + return boostEu ? 15000 : 10000; } @Override - public int getPollutionPerTick(ItemStack aStack) { - return 64; + public int getPollutionPerSecond(ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiLargeSemiFluidGenerator; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java index dfc2a5b80f..f016288547 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java @@ -107,7 +107,7 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo tt.addMachineType(getMachineType()) .addInfo("Controller Block for the Matter Fabricator") .addInfo("Produces UU-A, UU-M & Scrap") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(5, 4, 5, true) .addController("Front Center") @@ -263,8 +263,8 @@ public class GregtechMetaTileEntity_MassFabricator extends GregtechMeta_MultiBlo } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 2; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiMassFabricator; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java index c195823900..f86ecf3196 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java @@ -44,7 +44,7 @@ public class GregtechMetaTileEntity_Refinery extends GregtechMeta_MultiBlockBase GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder(); tt.addMachineType(getMachineType()) .addInfo("Controller Block for the Fission Fuel Processing Unit") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(3, 9, 3, false) .addController("Bottom Center") @@ -212,8 +212,8 @@ public class GregtechMetaTileEntity_Refinery extends GregtechMeta_MultiBlockBase } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 200; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiRefinery; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java index 95d4806939..4759457d8d 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java @@ -13,6 +13,7 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.metatileentity.implementations.*; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; +import gtPlusPlus.core.lib.CORE; import org.apache.commons.lang3.ArrayUtils; import gregtech.api.GregTech_API; @@ -76,7 +77,7 @@ public class GregtechMTE_AlgaePondBase extends GregtechMeta_MultiBlockBase { .addInfo("Does not require power or maintenance") .addInfo("All Machine Casings must be the same tier, this dictates machine speed.") .addInfo("Fill Input Hatch with water.") - .addPollutionAmount(getPollutionPerTick(null) * 20) + .addPollutionAmount(getPollutionPerSecond(null)) .addSeparator() .beginStructureBlock(9, 3, 9, true) .addController("Front Center") @@ -285,8 +286,8 @@ public class GregtechMTE_AlgaePondBase extends GregtechMeta_MultiBlockBase { } @Override - public int getPollutionPerTick(final ItemStack aStack) { - return 0; + public int getPollutionPerSecond(final ItemStack aStack) { + return CORE.ConfigSwitches.pollutionPerSecondMultiAlgaePond; } @Override diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java index 7023211230..42912c4fa8 100644 --- a/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java +++ b/src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java @@ -118,7 +118,7 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { tt.addMachineType(getMachineType()) .addInfo("Controller Block for the Chemical Plant") .addInfo("Heavy Industry, now right at your doorstep!") - .addInfo("Please read to user manual for more information on construction & usage") + .addInfo("Please read the user manual for more information on construction and usage") .addSeparator() .addController("Bottom Center") .addStructureHint("Catalyst Housing", 1) @@ -457,8 +457,7 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { private int getCasingTextureID() { // Check the Tier Client Side int aTier = mSolidCasingTier; - int aCasingID = getCasingTextureIdForTier(aTier); - return aCasingID; + return getCasingTextureIdForTier(aTier); } public boolean addToMachineList(IGregTechTileEntity aTileEntity) { @@ -596,15 +595,12 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { //GT_Recipe tRecipe = findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, gregtech.api.enums.GT_Values.V[tTier], aFluidInputs, aItemInputs); GT_Recipe tRecipe = findRecipe(mLastRecipe, gregtech.api.enums.GT_Values.V[tTier], getSolidCasingTier(), aItemInputs, aFluidInputs); - - - if (tRecipe == null) { log("BAD RETURN - 1"); return false; } - // checks if it has a catalyst with enough durability + // checks if it has a catalyst ItemStack tCatalystRecipe = findCatalyst(aItemInputs); boolean aDoesRecipeNeedCatalyst = false; for (ItemStack aInputItem : tRecipe.mInputs) { @@ -619,7 +615,7 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { return false; } if (mCatalystBuses.size() != 1) { - log("does not have correct number of catalyst hatchs. (Required 1, found "+mCatalystBuses.size()+")"); + log("does not have correct number of catalyst hatches. (Required 1, found "+mCatalystBuses.size()+")"); return false; } } @@ -640,16 +636,16 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { return false; } - // checks if it has enough catalyst durabilety + // checks if it has enough catalyst durability ArrayList<ItemStack>tCatalysts = null; - int tMaxParrallelCatalyst = aMaxParallelRecipes; + int tMaxParallelCatalyst = aMaxParallelRecipes; if (tCatalystRecipe != null) { tCatalysts = new ArrayList<ItemStack>(); - tMaxParrallelCatalyst = getCatalysts(aItemInputs, tCatalystRecipe, aMaxParallelRecipes, tCatalysts); - log("Can process "+tMaxParrallelCatalyst+" recipes. If less than "+aMaxParallelRecipes+", catalyst does not have enough durability."); + tMaxParallelCatalyst = getCatalysts(aItemInputs, tCatalystRecipe, aMaxParallelRecipes, tCatalysts); + log("Can process "+tMaxParallelCatalyst+" recipes. If less than "+aMaxParallelRecipes+", catalyst does not have enough durability."); } - if (tMaxParrallelCatalyst == 0) { + if (tMaxParallelCatalyst == 0) { log("found not enough catalysts"); return false; } @@ -663,13 +659,13 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { int parallelRecipes = 0; log("parallelRecipes: "+parallelRecipes); - log("aMaxParallelRecipes: "+tMaxParrallelCatalyst); + log("aMaxParallelRecipes: "+tMaxParallelCatalyst); log("tTotalEUt: "+tTotalEUt); log("tVoltage: "+tVoltage); log("tEnergy: "+tEnergy); log("tRecipeEUt: "+tRecipeEUt); // Count recipes to do in parallel, consuming input items and fluids and considering input voltage limits - for (; parallelRecipes < tMaxParrallelCatalyst && tTotalEUt < (tEnergy - tRecipeEUt); parallelRecipes++) { + for (; parallelRecipes < tMaxParallelCatalyst && tTotalEUt < (tEnergy - tRecipeEUt); parallelRecipes++) { if (!tRecipe.isRecipeInputEqual(true, aFluidInputs, aItemInputs)) { log("Broke at "+parallelRecipes+"."); break; @@ -779,6 +775,10 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { this.mOutputItems = tOutputItems; this.mOutputFluids = tOutputFluids; updateSlots(); + for (GT_MetaTileEntity_Hatch_Catalysts h : mCatalystBuses) { + h.updateSlots(); + h.tryFillUsageSlots(); + } // Play sounds (GT++ addition - GT multiblocks play no sounds) startProcess(); @@ -941,14 +941,14 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { } private int getCatalysts(ItemStack[] aItemInputs, ItemStack aRecipeCatalyst, int aMaxParrallel, ArrayList<ItemStack> aOutPut) { - int allowedParrallel = 0; + int allowedParallel = 0; for (final ItemStack aInput : aItemInputs) { if (aRecipeCatalyst.isItemEqual(aInput)) { int aDurabilityRemaining = getMaxCatalystDurability() - getDamage(aInput); return Math.min(aMaxParrallel, aDurabilityRemaining); } } - return allowedParrallel; + return allowedParallel; } private ItemStack findCatalyst(ItemStack[] aItemInputs) { @@ -973,7 +973,7 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { if (damage >= getMaxCatalystDurability()) { log("consume catalyst"); addOutput(CI.getEmptyCatalyst(1)); - aStack = null; + aStack.stackSize -= 1; } else { log("damaging catalyst"); @@ -984,9 +984,6 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { log("not consuming catalyst"); } } - - - } private int getDamage(ItemStack aStack) { @@ -997,8 +994,6 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { ItemGenericChemBase.setCatalystDamage(aStack, aAmount); } - - @SideOnly(Side.CLIENT) private final int getCasingTierOnClientSide() { @@ -1031,7 +1026,6 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { t.printStackTrace(); return 0; } - } /* @@ -1049,5 +1043,4 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase { } return tItems; } - } |