aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java61
-rw-r--r--src/Java/gtPlusPlus/core/config/ConfigHandler.java54
-rw-r--r--src/Java/gtPlusPlus/core/fluids/FluidFactory.java3
-rw-r--r--src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java3
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java17
-rw-r--r--src/Java/gtPlusPlus/core/item/circuit/ItemAdvancedChip.java109
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java59
-rw-r--r--src/Java/gtPlusPlus/core/recipe/common/CI.java11
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java5
-rw-r--r--src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java14
-rw-r--r--src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemBioChip.java108
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/HANDLER_GT.java14
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/GregtechMeta_MultiBlockBase.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/base/generators/GregtechRocketFuelGeneratorBase.java22
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/nbthandlers/GT_MetaTileEntity_Hatch_NbtConsumable.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/TreeFarmHelper.java73
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/helpers/treefarm/TreeGenerator.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java2
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_SemiFluidGenerator.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityRocketFuelGenerator.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java31
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java16
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java19
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java26
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java154
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java1
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java90
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java6
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java43
57 files changed, 668 insertions, 476 deletions
diff --git a/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java b/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java
deleted file mode 100644
index b7462250b1..0000000000
--- a/src/Java/gtPlusPlus/api/objects/minecraft/ThreadFakeWorldGenerator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package gtPlusPlus.api.objects.minecraft;
-
-import gtPlusPlus.xmod.gregtech.common.helpers.treefarm.TreeGenerator;
-
-public class ThreadFakeWorldGenerator extends Thread {
-
- public boolean canRun = true;
- public boolean isRunning = false;
-
- private static final long INIT_TIME;
- private static long internalTickCounter = 0;
-
- public TreeGenerator mGenerator;
-
- private static final ThreadFakeWorldGenerator mThread;
-
- static {
- mThread = new ThreadFakeWorldGenerator();
- INIT_TIME = (System.currentTimeMillis());
- }
-
- public ThreadFakeWorldGenerator() {
- setName("gtpp.handler.fakeworldtrees");
- start();
- }
-
- public static ThreadFakeWorldGenerator getInstance() {
- return mThread;
- }
-
- public static void stopThread() {
- mThread.canRun = false;
- }
-
-
- @Override
- public void run() {
-
- if (!isRunning) {
- isRunning = true;
- }
- else {
- return;
- }
-
- if (canRun){
- if (mGenerator == null) {
- mGenerator = new TreeGenerator();
- }
- }
-
- while (mGenerator == null) {
- if (mGenerator != null) {
- break;
- }
- }
- stopThread();
- }
-
-
-}
diff --git a/src/Java/gtPlusPlus/core/config/ConfigHandler.java b/src/Java/gtPlusPlus/core/config/ConfigHandler.java
index f5f4d502a1..7c1b584d87 100644
--- a/src/Java/gtPlusPlus/core/config/ConfigHandler.java
+++ b/src/Java/gtPlusPlus/core/config/ConfigHandler.java
@@ -188,7 +188,59 @@ public class ConfigHandler {
"BlacklistedTileEntiyClassNames", "gregtech",
BlacklistedTileEntiyClassNames,
"The Canonical Class-Names of TileEntities that should be ignored by the WorldAccelerator");
-
+
+ //Pollution
+ pollutionPerSecondMultiPackager = config.get("pollution", "pollutionPerSecondMultiPackager", pollutionPerSecondMultiPackager,"pollution rate in gibbl/s for the Amazon warehousing depot").getInt(pollutionPerSecondMultiPackager);
+ pollutionPerSecondMultiIndustrialAlloySmelter = config.get("pollution", "pollutionPerSecondMultiIndustrialAlloySmelter", pollutionPerSecondMultiIndustrialAlloySmelter,"pollution rate in gibbl/s for the Alloy blast smelter").getInt(pollutionPerSecondMultiIndustrialAlloySmelter);
+ pollutionPerSecondMultiIndustrialArcFurnace = config.get("pollution", "pollutionPerSecondMultiIndustrialArcFurnace", pollutionPerSecondMultiIndustrialArcFurnace,"pollution rate in gibbl/s for the High current arc furnace").getInt(pollutionPerSecondMultiIndustrialArcFurnace);
+ pollutionPerSecondMultiIndustrialCentrifuge = config.get("pollution", "pollutionPerSecondMultiIndustrialCentrifuge", pollutionPerSecondMultiIndustrialCentrifuge,"pollution rate in gibbl/s for the Industrial centrifuge").getInt(pollutionPerSecondMultiIndustrialCentrifuge);
+ pollutionPerSecondMultiIndustrialCokeOven = config.get("pollution", "pollutionPerSecondMultiIndustrialCokeOven", pollutionPerSecondMultiIndustrialCokeOven,"pollution rate in gibbl/s for the Industrial coke oven").getInt(pollutionPerSecondMultiIndustrialCokeOven);
+ pollutionPerSecondMultiIndustrialCuttingMachine = config.get("pollution", "pollutionPerSecondMultiIndustrialCuttingMachine", pollutionPerSecondMultiIndustrialCuttingMachine,"pollution rate in gibbl/s for the Cutting factory").getInt(pollutionPerSecondMultiIndustrialCuttingMachine);
+ pollutionPerSecondMultiIndustrialDehydrator = config.get("pollution", "pollutionPerSecondMultiIndustrialDehydrator", pollutionPerSecondMultiIndustrialDehydrator,"pollution rate in gibbl/s for the Utupu-Tanuri").getInt(pollutionPerSecondMultiIndustrialDehydrator);
+ pollutionPerSecondMultiIndustrialElectrolyzer = config.get("pollution", "pollutionPerSecondMultiIndustrialElectrolyzer", pollutionPerSecondMultiIndustrialElectrolyzer,"pollution rate in gibbl/s for the Industrial electrolyzer").getInt(pollutionPerSecondMultiIndustrialElectrolyzer);
+ pollutionPerSecondMultiIndustrialExtruder = config.get("pollution", "pollutionPerSecondMultiIndustrialExtruder", pollutionPerSecondMultiIndustrialExtruder,"pollution rate in gibbl/s for the Industrial extrusion machine").getInt(pollutionPerSecondMultiIndustrialExtruder);
+ pollutionPerSecondMultiIndustrialMacerator = config.get("pollution", "pollutionPerSecondMultiIndustrialMacerator", pollutionPerSecondMultiIndustrialMacerator,"pollution rate in gibbl/s for the Maceration stack").getInt(pollutionPerSecondMultiIndustrialMacerator);
+ pollutionPerSecondMultiIndustrialMixer = config.get("pollution", "pollutionPerSecondMultiIndustrialMixer", pollutionPerSecondMultiIndustrialMixer,"pollution rate in gibbl/s for the Industrial mixing machine").getInt(pollutionPerSecondMultiIndustrialMixer);
+ pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal = config.get("pollution", "pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal", pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal,"pollution rate in gibbl/s for the Large processing factory in metal mode").getInt(pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal);
+ pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid = config.get("pollution", "pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid", pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid,"pollution rate in gibbl/s for the Large processing factory in fluid mode").getInt(pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid);
+ pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc = config.get("pollution", "pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc", pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc,"pollution rate in gibbl/s for the Large processing factory in misc mode").getInt(pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc);
+ pollutionPerSecondMultiIndustrialPlatePress_ModeForming = config.get("pollution", "pollutionPerSecondMultiIndustrialPlatePress_ModeForming", pollutionPerSecondMultiIndustrialPlatePress_ModeForming,"pollution rate in gibbl/s for the Industrial material press in forming mode").getInt(pollutionPerSecondMultiIndustrialPlatePress_ModeForming);
+ pollutionPerSecondMultiIndustrialPlatePress_ModeBending = config.get("pollution", "pollutionPerSecondMultiIndustrialPlatePress_ModeBending", pollutionPerSecondMultiIndustrialPlatePress_ModeBending,"pollution rate in gibbl/s for the Industrial material press in bending mode").getInt(pollutionPerSecondMultiIndustrialPlatePress_ModeBending);
+ pollutionPerSecondMultiIndustrialSifter = config.get("pollution", "pollutionPerSecondMultiIndustrialSifter", pollutionPerSecondMultiIndustrialSifter,"pollution rate in gibbl/s for the Large Sifter").getInt(pollutionPerSecondMultiIndustrialSifter);
+ pollutionPerSecondMultiIndustrialThermalCentrifuge = config.get("pollution", "pollutionPerSecondMultiIndustrialThermalCentrifuge", pollutionPerSecondMultiIndustrialThermalCentrifuge,"pollution rate in gibbl/s for the Large thermal refinery").getInt(pollutionPerSecondMultiIndustrialThermalCentrifuge);
+ pollutionPerSecondMultiIndustrialVacuumFreezer = config.get("pollution", "pollutionPerSecondMultiIndustrialVacuumFreezer", pollutionPerSecondMultiIndustrialVacuumFreezer,"pollution rate in gibbl/s for the Cryogenic freezer").getInt(pollutionPerSecondMultiIndustrialVacuumFreezer);
+ pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath = config.get("pollution", "pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath", pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath,"pollution rate in gibbl/s for the Ore washing plant in chemical bath mode").getInt(pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath);
+ pollutionPerSecondMultiIndustrialWashPlant_ModeWasher = config.get("pollution", "pollutionPerSecondMultiIndustrialWashPlant_ModeWasher", pollutionPerSecondMultiIndustrialWashPlant_ModeWasher,"pollution rate in gibbl/s for the Ore washing plant in ore washer mode").getInt(pollutionPerSecondMultiIndustrialWashPlant_ModeWasher);
+ pollutionPerSecondMultiIndustrialWireMill = config.get("pollution", "pollutionPerSecondMultiIndustrialWireMill", pollutionPerSecondMultiIndustrialWireMill,"pollution rate in gibbl/s for the Wire factory").getInt(pollutionPerSecondMultiIndustrialWireMill);
+ pollutionPerSecondMultiIsaMill = config.get("pollution", "pollutionPerSecondMultiIsaMill", pollutionPerSecondMultiIsaMill,"pollution rate in gibbl/s for the IsaMill grinding machine").getInt(pollutionPerSecondMultiIsaMill);
+ pollutionPerSecondMultiAdvDistillationTower_ModeDistillery = config.get("pollution", "pollutionPerSecondMultiAdvDistillationTower_ModeDistillery", pollutionPerSecondMultiAdvDistillationTower_ModeDistillery,"pollution rate in gibbl/s for the Dangote distillus in distillery mode").getInt(pollutionPerSecondMultiAdvDistillationTower_ModeDistillery);
+ pollutionPerSecondMultiAdvDistillationTower_ModeDT = config.get("pollution", "pollutionPerSecondMultiAdvDistillationTower_ModeDT", pollutionPerSecondMultiAdvDistillationTower_ModeDT,"pollution rate in gibbl/s for the Dangote distillus in distillation tower mode").getInt(pollutionPerSecondMultiAdvDistillationTower_ModeDT);
+ pollutionPerSecondMultiAdvEBF = config.get("pollution", "pollutionPerSecondMultiAdvEBF", pollutionPerSecondMultiAdvEBF,"pollution rate in gibbl/s for the Volcanus").getInt(pollutionPerSecondMultiAdvEBF);
+ pollutionPerSecondMultiAdvImplosion = config.get("pollution", "pollutionPerSecondMultiAdvImplosion", pollutionPerSecondMultiAdvImplosion,"pollution rate in gibbl/s for the Density^2").getInt(pollutionPerSecondMultiAdvImplosion);
+ pollutionPerSecondMultiABS = config.get("pollution", "pollutionPerSecondMultiABS", pollutionPerSecondMultiABS,"pollution rate in gibbl/s for the Alloy blast furnace").getInt(pollutionPerSecondMultiABS);
+ pollutionPerSecondMultiCyclotron = config.get("pollution", "pollutionPerSecondMultiCyclotron", pollutionPerSecondMultiCyclotron,"pollution rate in gibbl/s for the Cyclotron").getInt(pollutionPerSecondMultiCyclotron);
+ pollutionPerSecondMultiIndustrialFishingPond = config.get("pollution", "pollutionPerSecondMultiIndustrialFishingPond", pollutionPerSecondMultiIndustrialFishingPond,"pollution rate in gibbl/s for the Zuhai - fishing port").getInt(pollutionPerSecondMultiIndustrialFishingPond);
+ //pollutionPerSecondMultiLargeRocketEngine;
+ pollutionPerSecondMultiLargeSemiFluidGenerator = config.get("pollution", "pollutionPerSecondMultiLargeSemiFluidGenerator", pollutionPerSecondMultiLargeSemiFluidGenerator,"pollution rate in gibbl/s for the Large semifluid burner").getInt(pollutionPerSecondMultiLargeSemiFluidGenerator);
+ pollutionPerSecondMultiMassFabricator = config.get("pollution", "pollutionPerSecondMultiMassFabricator", pollutionPerSecondMultiMassFabricator,"pollution rate in gibbl/s for the Matter fabrication CPU").getInt(pollutionPerSecondMultiMassFabricator);
+ pollutionPerSecondMultiRefinery = config.get("pollution", "pollutionPerSecondMultiRefinery", pollutionPerSecondMultiRefinery,"pollution rate in gibbl/s for the Reactor fuel processing plant").getInt(pollutionPerSecondMultiRefinery);
+ //pollutionPerSecondMultiGeneratorArray;
+ pollutionPerSecondMultiTreeFarm = config.get("pollution", "pollutionPerSecondMultiTreeFarm", pollutionPerSecondMultiTreeFarm,"pollution rate in gibbl/s for the Tree growth simulator").getInt(pollutionPerSecondMultiTreeFarm);
+ pollutionPerSecondMultiFrothFlotationCell = config.get("pollution", "pollutionPerSecondMultiFrothFlotationCell", pollutionPerSecondMultiFrothFlotationCell,"pollution rate in gibbl/s for the Flotation cell regulator").getInt(pollutionPerSecondMultiFrothFlotationCell);
+ pollutionPerSecondMultiNuclearReactor_ModeBoosted = config.get("pollution", "pollutionPerSecondMultiNuclearReactor_ModeBoosted", pollutionPerSecondMultiNuclearReactor_ModeBoosted,"pollution rate in gibbl/s for the Thorium reactor when boosted").getInt(pollutionPerSecondMultiNuclearReactor_ModeBoosted);
+ pollutionPerSecondMultiNuclearReactor_ModeNormal = config.get("pollution", "pollutionPerSecondMultiNuclearReactor_ModeNormal", pollutionPerSecondMultiNuclearReactor_ModeNormal,"pollution rate in gibbl/s for the Thorium reactor").getInt(pollutionPerSecondMultiNuclearReactor_ModeNormal);
+ pollutionPerSecondMultiAutoCrafter = config.get("pollution", "pollutionPerSecondMultiAutoCrafter", pollutionPerSecondMultiAutoCrafter,"pollution rate in gibbl/s for the Large-Scale auto assembler v1.01").getInt(pollutionPerSecondMultiAutoCrafter);
+ pollutionPerSecondMultiThermalBoiler = config.get("pollution", "pollutionPerSecondMultiThermalBoiler", pollutionPerSecondMultiThermalBoiler,"pollution rate in gibbl/s for the Thermal boiler").getInt(pollutionPerSecondMultiThermalBoiler);
+ pollutionPerSecondMultiAlgaePond = config.get("pollution", "pollutionPerSecondMultiAlgaePond", pollutionPerSecondMultiAlgaePond,"pollution rate in gibbl/s for the Algae farm").getInt(pollutionPerSecondMultiAlgaePond);
+ basePollutionPerSecondSemiFluidGenerator = config.get("pollution", "basePollutionPerSecondSemiFluidGenerator", basePollutionPerSecondSemiFluidGenerator, "base pollution rate in gibbl/s for the single block semi fluid generators").getInt(basePollutionPerSecondSemiFluidGenerator);
+ pollutionReleasedByTierSemiFluidGenerator = config.get("pollution", "pollutionReleasedByTierSemiFluidGenerator", pollutionReleasedByTierSemiFluidGenerator, "coefficient applied to the base rate of the single block semi fluid generators based on its tier (first is tier 0 aka ULV)").getDoubleList();
+ basePollutionPerSecondBoiler = config.get("pollution", "basePollutionPerSecondBoiler", basePollutionPerSecondBoiler,"base pollution rate in gibbl/s for the single block boilers").getInt(basePollutionPerSecondBoiler);
+ pollutionReleasedByTierBoiler = config.get("pollution", "pollutionReleasedByTierBoiler", pollutionReleasedByTierBoiler, "coefficient applied to the base rate of the single block semi fluid generators based on its tier (first is tier 0 aka ULV)").getDoubleList();
+ baseMinPollutionPerSecondRocketFuelGenerator = config.get("pollution", "baseMinPollutionPerSecondRocketFuelGenerator", baseMinPollutionPerSecondRocketFuelGenerator, "minimum base pollution rate in gibbl/s for the single block rocket engines").getInt(baseMinPollutionPerSecondRocketFuelGenerator);
+ baseMaxPollutionPerSecondRocketFuelGenerator = config.get("pollution", "baseMaxPollutionPerSecondRocketFuelGenerator", baseMaxPollutionPerSecondRocketFuelGenerator, "maximum base pollution rate in gibbl/s for the single block rocket engines").getInt(baseMaxPollutionPerSecondRocketFuelGenerator);
+ pollutionReleasedByTierRocketFuelGenerator = config.get("pollution", "pollutionReleasedByTierRocketFuelGenerator", pollutionReleasedByTierRocketFuelGenerator, "coefficient applied to the base rate of the single block rocket engines based on its tier (first is tier 0 aka ULV)").getDoubleList();
+ basePollutionPerSecondGeothermalGenerator = config.get("pollution", "basePollutionPerSecondGeothermalGenerator", basePollutionPerSecondGeothermalGenerator,"base pollution rate in gibbl/s for the geothermal engines").getInt(basePollutionPerSecondGeothermalGenerator);
+ pollutionReleasedByTierGeothermalGenerator = config.get("pollution", "pollutionReleasedByTierGeothermalGenerator", pollutionReleasedByTierGeothermalGenerator, "coefficient applied to the base rate of the single block geothermal engines based on its tier (first is tier 0 aka ULV)").getDoubleList();
config.save();
}
diff --git a/src/Java/gtPlusPlus/core/fluids/FluidFactory.java b/src/Java/gtPlusPlus/core/fluids/FluidFactory.java
index dffd7f55e9..da23824c78 100644
--- a/src/Java/gtPlusPlus/core/fluids/FluidFactory.java
+++ b/src/Java/gtPlusPlus/core/fluids/FluidFactory.java
@@ -3,6 +3,7 @@ package gtPlusPlus.core.fluids;
import java.util.LinkedHashMap;
import java.util.Map;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.eventhandler.Event.Result;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -122,7 +123,7 @@ public class FluidFactory {
try {
throw new GregtechException("Cannot generate Fluid Packages outside of Pre-Init!");
} catch (GregtechException e) {
- System.exit(0);
+ FMLCommonHandler.instance().exitJava(0, true);
}
}
diff --git a/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java b/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java
index d41fccb3ed..680068402b 100644
--- a/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java
+++ b/src/Java/gtPlusPlus/core/fluids/ItemGenericFluidBucket.java
@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import cpw.mods.fml.common.eventhandler.Event;
+import cpw.mods.fml.common.FMLCommonHandler;
import gtPlusPlus.api.objects.GregtechException;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.lib.CORE;
@@ -44,7 +45,7 @@ public class ItemGenericFluidBucket extends ItemBucket {
try {
throw new GregtechException(""+aID+" is already registered! Unable to register fluid: "+FluidFactory.mMetaToFluidMap.get(aID).getLocalizedName());
} catch (GregtechException e) {
- System.exit(0);
+ FMLCommonHandler.instance().exitJava(0, true);
}
}
mInternalFluidCache.put(FluidFactory.mMetaToBlockMap.get(aID));
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
index ed17f8547a..9a00b49342 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/general/ItemGenericChemBase.java
@@ -159,8 +159,6 @@ public class ItemGenericChemBase extends Item {
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName() + "." + stack.getItemDamage();
}
-
-
@Override
public double getDurabilityForDisplay(ItemStack aStack) {
@@ -169,16 +167,14 @@ public class ItemGenericChemBase extends Item {
createMillingBallNBT(aStack);
}
double currentDamage = getMillingBallDamage(aStack);
- double durabilitypercent = currentDamage / 100;
- return durabilitypercent;
+ return currentDamage / getMaxBallDurability(aStack);
}
else if (ItemUtils.isCatalyst(aStack)) {
if (aStack.getTagCompound() == null || aStack.getTagCompound().hasNoTags()){
createCatalystNBT(aStack);
}
double currentDamage = getCatalystDamage(aStack);
- double durabilitypercent = currentDamage / 100;
- return durabilitypercent;
+ return currentDamage / getCatalystMaxDamage(aStack);
}
else {
return 1D;
@@ -208,10 +204,7 @@ public class ItemGenericChemBase extends Item {
aHasSpecialTooltips = true;
}
if (aHasSpecialTooltips) {
- if (aDam > aDamageSegment * 4){
- durability = EnumChatFormatting.GRAY;
- }
- else if (aDam > aDamageSegment * 3){
+ if (aDam > aDamageSegment * 3){
durability = EnumChatFormatting.GREEN;
}
else if (aDam > aDamageSegment * 2){
@@ -220,7 +213,7 @@ public class ItemGenericChemBase extends Item {
else if (aDam > aDamageSegment){
durability = EnumChatFormatting.GOLD;
}
- else if (aDam > 0){
+ else if (aDam >= 0){
durability = EnumChatFormatting.RED;
}
list.add(durability+""+(aDam)+EnumChatFormatting.GRAY+" / "+aMaxDamage);
@@ -322,6 +315,4 @@ public class ItemGenericChemBase extends Item {
public static int getMaxCatalystDurability(ItemStack aStack) {
return 50;
}
-
-
}
diff --git a/src/Java/gtPlusPlus/core/item/circuit/ItemAdvancedChip.java b/src/Java/gtPlusPlus/core/item/circuit/ItemAdvancedChip.java
index c375c32952..17321a0c45 100644
--- a/src/Java/gtPlusPlus/core/item/circuit/ItemAdvancedChip.java
+++ b/src/Java/gtPlusPlus/core/item/circuit/ItemAdvancedChip.java
@@ -1,22 +1,38 @@
package gtPlusPlus.core.item.circuit;
-import java.util.List;
+import java.util.*;
+import java.util.function.BiFunction;
+import java.util.function.Predicate;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.gui.GT_GUIDialogSelectItem;
+import gregtech.api.interfaces.INetworkUpdatableItem;
+import gregtech.api.net.GT_Packet_UpdateItem;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.*;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.Constants;
+import net.minecraftforge.common.util.FakePlayer;
+import org.apache.commons.lang3.tuple.Pair;
-public class ItemAdvancedChip extends Item {
-
+public class ItemAdvancedChip extends Item implements INetworkUpdatableItem {
+ private static final List<ItemStack> ALL_VARIANTS = new ArrayList<>();
protected IIcon base;
public ItemAdvancedChip() {
@@ -26,6 +42,11 @@ public class ItemAdvancedChip extends Item {
this.setMaxDamage(0);
this.setUnlocalizedName("T3RecipeSelector");
GameRegistry.registerItem(this, this.getUnlocalizedName());
+ ALL_VARIANTS.add(new ItemStack(this, 0, 0));
+ for (int i = 1; i <= 24; i++) {
+ ItemStack aStack = new ItemStack(this, 0, i);
+ ALL_VARIANTS.add(aStack);
+ }
}
@Override
@@ -52,6 +73,8 @@ public class ItemAdvancedChip extends Item {
public void addInformation(ItemStack aStack, EntityPlayer p_77624_2_, List aList, boolean p_77624_4_) {
try {
aList.add("Configuration == "+aStack.getItemDamage());
+ aList.add(GT_LanguageManager.addStringLocalization(new StringBuilder().append(getUnlocalizedName()).append(".tooltip.0").toString(), "Right click to reconfigure"));
+ aList.add(GT_LanguageManager.addStringLocalization(new StringBuilder().append(getUnlocalizedName()).append(".tooltip.1").toString(), "Needs a screwdriver or circuit programming tool"));
}
catch (Throwable t) {
t.printStackTrace();
@@ -133,6 +156,82 @@ public class ItemAdvancedChip extends Item {
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName();
}
-
+ @Override
+ public boolean receive(ItemStack stack, EntityPlayerMP player, NBTTagCompound tag) {
+ int meta = tag.hasKey("meta", Constants.NBT.TAG_BYTE) ? tag.getByte("meta") : -1;
+ if (meta < 0 || meta > 24)
+ return true;
+
+ if (!player.capabilities.isCreativeMode) {
+ Pair<Integer, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> toolIndex = findConfiguratorInInv(player);
+ if (toolIndex == null) return true;
+
+ ItemStack[] mainInventory = player.inventory.mainInventory;
+ mainInventory[toolIndex.getKey()] = toolIndex.getValue().apply(mainInventory[toolIndex.getKey()], player);
+ }
+ stack.setItemDamage(meta);
+
+ return true;
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float xOffset, float yOffset, float zOffset) {
+ // nothing on server side or fake player
+ if (player instanceof FakePlayer || !world.isRemote) return false;
+ // check if any screwdriver
+ ItemStack configuratorStack;
+ if (player.capabilities.isCreativeMode) {
+ configuratorStack = null;
+ } else {
+ Pair<Integer, ?> configurator = findConfiguratorInInv(player);
+ if (configurator == null) {
+ int count;
+ try {
+ count = Integer.parseInt(StatCollector.translateToLocal("GT5U.item.programmed_circuit.no_screwdriver.count"));
+ } catch (NumberFormatException e) {
+ player.addChatComponentMessage(new ChatComponentText("Error in translation GT5U.item.programmed_circuit.no_screwdriver.count: " + e.getMessage()));
+ count = 1;
+ }
+ player.addChatComponentMessage(new ChatComponentTranslation("GT5U.item.programmed_circuit.no_screwdriver." + XSTR.XSTR_INSTANCE.nextInt(count)));
+ return false;
+ }
+ configuratorStack = player.inventory.mainInventory[configurator.getKey()];
+ }
+ openSelectorGui(configuratorStack, stack.getItemDamage());
+ return true;
+ }
+
+ private void openSelectorGui(ItemStack configurator, int meta) {
+ FMLCommonHandler.instance().showGuiScreen(new GT_GUIDialogSelectItem(
+ StatCollector.translateToLocal("GT5U.item.programmed_circuit.select.header"),
+ configurator,
+ null,
+ ItemAdvancedChip::onConfigured,
+ ALL_VARIANTS,
+ meta,
+ true
+ ));
+ }
+
+ private static void onConfigured(ItemStack stack) {
+ NBTTagCompound tag = new NBTTagCompound();
+ tag.setByte("meta", (byte) stack.getItemDamage());
+ GT_Values.NW.sendToServer(new GT_Packet_UpdateItem(tag));
+ }
+
+ private static Pair<Integer, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> findConfiguratorInInv(EntityPlayer player) {
+ ItemStack[] mainInventory = player.inventory.mainInventory;
+ for (int j = 0, mainInventoryLength = mainInventory.length; j < mainInventoryLength; j++) {
+ ItemStack toolStack = mainInventory[j];
+
+ if (!GT_Utility.isStackValid(toolStack))
+ continue;
+
+ for (Map.Entry<Predicate<ItemStack>, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> p : GregTech_API.sCircuitProgrammerList.entrySet())
+ if (p.getKey().test(toolStack))
+ return Pair.of(j, p.getValue());
+ }
+ return null;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java
index 98301e41e8..7510f103a2 100644
--- a/src/Java/gtPlusPlus/core/lib/CORE.java
+++ b/src/Java/gtPlusPlus/core/lib/CORE.java
@@ -259,12 +259,59 @@ public class CORE {
public static boolean enableTreeFarmerParticles = true;
public static boolean useGregtechTextures = true;
-
-
-
-
-
-
+ //Pollution
+ public static int pollutionPerSecondMultiPackager = 40;
+ public static int pollutionPerSecondMultiIndustrialAlloySmelter = 300;
+ public static int pollutionPerSecondMultiIndustrialArcFurnace = 2400;
+ public static int pollutionPerSecondMultiIndustrialCentrifuge = 300;
+ public static int pollutionPerSecondMultiIndustrialCokeOven = 80;
+ public static int pollutionPerSecondMultiIndustrialCuttingMachine = 160;
+ public static int pollutionPerSecondMultiIndustrialDehydrator = 500;
+ public static int pollutionPerSecondMultiIndustrialElectrolyzer = 300;
+ public static int pollutionPerSecondMultiIndustrialExtruder = 1000;
+ public static int pollutionPerSecondMultiIndustrialMacerator = 400;
+ public static int pollutionPerSecondMultiIndustrialMixer = 800;
+ public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeMetal = 400;
+ public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeFluid = 400;
+ public static int pollutionPerSecondMultiIndustrialMultiMachine_ModeMisc = 600;
+ public static int pollutionPerSecondMultiIndustrialPlatePress_ModeForming = 240;
+ public static int pollutionPerSecondMultiIndustrialPlatePress_ModeBending = 480;
+ public static int pollutionPerSecondMultiIndustrialSifter = 40;
+ public static int pollutionPerSecondMultiIndustrialThermalCentrifuge = 1000;
+ public static int pollutionPerSecondMultiIndustrialVacuumFreezer = 500;
+ public static int pollutionPerSecondMultiIndustrialWashPlant_ModeChemBath = 400;
+ public static int pollutionPerSecondMultiIndustrialWashPlant_ModeWasher = 100;
+ public static int pollutionPerSecondMultiIndustrialWireMill = 100;
+ public static int pollutionPerSecondMultiIsaMill = 1280;
+ public static int pollutionPerSecondMultiAdvDistillationTower_ModeDistillery = 240;
+ public static int pollutionPerSecondMultiAdvDistillationTower_ModeDT = 480;
+ public static int pollutionPerSecondMultiAdvEBF = 500;
+ public static int pollutionPerSecondMultiAdvImplosion = 5000;
+ public static int pollutionPerSecondMultiABS = 200;
+ public static int pollutionPerSecondMultiCyclotron = 200;
+ public static int pollutionPerSecondMultiIndustrialFishingPond = 20;
+ public static int pollutionPerSecondMultiLargeRocketEngine;
+ public static int pollutionPerSecondMultiLargeSemiFluidGenerator = 1280;
+ public static int pollutionPerSecondMultiMassFabricator = 40;
+ public static int pollutionPerSecondMultiRefinery = 4000;
+ public static int pollutionPerSecondMultiGeneratorArray;
+ public static int pollutionPerSecondMultiTreeFarm = 100;
+ public static int pollutionPerSecondMultiFrothFlotationCell = 0;
+ public static int pollutionPerSecondMultiNuclearReactor_ModeBoosted = 160;
+ public static int pollutionPerSecondMultiNuclearReactor_ModeNormal = 80;
+ public static int pollutionPerSecondMultiAutoCrafter = 500;
+ public static int pollutionPerSecondMultiThermalBoiler = 700;
+ public static int pollutionPerSecondMultiAlgaePond = 0;
+ //pollution single blocks
+ public static int basePollutionPerSecondSemiFluidGenerator = 40;
+ public static double[] pollutionReleasedByTierSemiFluidGenerator = new double[]{0,2.0,4.0,8.0};
+ public static int basePollutionPerSecondBoiler = 35;
+ public static double[] pollutionReleasedByTierBoiler = new double[]{0,1.0,1.43, 1.86};
+ public static int baseMinPollutionPerSecondRocketFuelGenerator = 250;
+ public static int baseMaxPollutionPerSecondRocketFuelGenerator = 2000;
+ public static double[] pollutionReleasedByTierRocketFuelGenerator = new double[]{0,0,0,0,1,2,3};
+ public static int basePollutionPerSecondGeothermalGenerator = 100;
+ public static double[] pollutionReleasedByTierGeothermalGenerator = new double[]{0,0,0,0,1,1,1};
}
diff --git a/src/Java/gtPlusPlus/core/recipe/common/CI.java b/src/Java/gtPlusPlus/core/recipe/common/CI.java
index 35d0a0ec07..0a1b762a97 100644
--- a/src/Java/gtPlusPlus/core/recipe/common/CI.java
+++ b/src/Java/gtPlusPlus/core/recipe/common/CI.java
@@ -529,12 +529,6 @@ public class CI {
return ItemUtils.getEmptyCell(i);
}
-
-
- /*
- *
- */
-
private static final Material[] aMaterial_Main = new Material[] {
ALLOY.POTIN,
ALLOY.TUMBAGA,
@@ -684,11 +678,6 @@ public class CI {
Material m = null;
-
-
-
-
-
if (aPrefix == OrePrefixes.liquid) {
int aMatID = (aTier == 0 || aTier == 2 || aTier == 5 || aTier == 8 ? 0 : (aTier == 1 || aTier == 3 || aTier == 6 || aTier == 9 ? 1 : 2));
ItemStack aCell = aMaster[aMatID][aTier].getCell(aAmount);
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
index 8c1b6a4c02..ab067d21d8 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
@@ -6,6 +6,7 @@ import java.util.Iterator;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.common.FMLCommonHandler;
import gregtech.api.enums.Materials;
import gregtech.api.objects.ItemData;
import gregtech.api.util.*;
@@ -47,7 +48,7 @@ public static int mInvalidID = 1;
Logger.RECIPE(ReflectionUtils.getMethodName(7));
Logger.RECIPE(ReflectionUtils.getMethodName(8));
Logger.RECIPE(ReflectionUtils.getMethodName(9));
- System.exit(1);
+ FMLCommonHandler.instance().exitJava(1, true);
}*/
if (resultItem == null){
@@ -357,7 +358,7 @@ public static int mInvalidID = 1;
Logger.RECIPE(ReflectionUtils.getMethodName(7));
Logger.RECIPE(ReflectionUtils.getMethodName(8));
Logger.RECIPE(ReflectionUtils.getMethodName(9));
- System.exit(1);
+ FMLCommonHandler.instance().exitJava(1, true);
}
diff --git a/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java b/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java
index c3c51983e3..abeebc054d 100644
--- a/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java
+++ b/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemAgrichemBase.java
@@ -240,8 +240,7 @@ public class ItemAgrichemBase extends Item {
createCatalystNBT(aStack);
}
double currentDamage = getCatalystDamage(aStack);
- double durabilitypercent = currentDamage / 100;
- return durabilitypercent;
+ return currentDamage / getCatalystMaxDamage(aStack);
}
else {
return 1D;
@@ -264,10 +263,7 @@ public class ItemAgrichemBase extends Item {
aHasSpecialTooltips = true;
}
if (aHasSpecialTooltips) {
- if (aDam > aDamageSegment * 4){
- durability = EnumChatFormatting.GRAY;
- }
- else if (aDam > aDamageSegment * 3){
+ if (aDam > aDamageSegment * 3){
durability = EnumChatFormatting.GREEN;
}
else if (aDam > aDamageSegment * 2){
@@ -276,7 +272,7 @@ public class ItemAgrichemBase extends Item {
else if (aDam > aDamageSegment){
durability = EnumChatFormatting.GOLD;
}
- else if (aDam > 0){
+ else if (aDam >= 0){
durability = EnumChatFormatting.RED;
}
list.add(durability+""+(aDam)+EnumChatFormatting.GRAY+" / "+aMaxDamage);
@@ -288,9 +284,7 @@ public class ItemAgrichemBase extends Item {
public boolean showDurabilityBar(ItemStack aStack) {
if (ItemUtils.isCatalyst(aStack)) {
int aDam = getCatalystDamage(aStack);
- if (aDam > 0) {
- return true;
- }
+ return aDam > 0;
}
return false;
}
diff --git a/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemBioChip.java b/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemBioChip.java
index 5ecfbbabe9..f876839f5f 100644
--- a/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemBioChip.java
+++ b/src/Java/gtPlusPlus/plugin/agrichem/item/algae/ItemBioChip.java
@@ -1,21 +1,38 @@
package gtPlusPlus.plugin.agrichem.item.algae;
-import java.util.List;
+import java.util.*;
+import java.util.function.BiFunction;
+import java.util.function.Predicate;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.registry.GameRegistry;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.gui.GT_GUIDialogSelectItem;
+import gregtech.api.interfaces.INetworkUpdatableItem;
+import gregtech.api.net.GT_Packet_UpdateItem;
+import gregtech.api.objects.XSTR;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
-import net.minecraft.util.IIcon;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.*;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.Constants;
+import net.minecraftforge.common.util.FakePlayer;
+import org.apache.commons.lang3.tuple.Pair;
-public class ItemBioChip extends Item {
+public class ItemBioChip extends Item implements INetworkUpdatableItem {
+ private static final List<ItemStack> ALL_VARIANTS = new ArrayList<>();
protected IIcon base;
@@ -26,6 +43,11 @@ public class ItemBioChip extends Item {
this.setMaxDamage(0);
this.setUnlocalizedName("BioRecipeSelector");
GameRegistry.registerItem(this, this.getUnlocalizedName());
+ ALL_VARIANTS.add(new ItemStack(this, 0, 0));
+ for (int i = 1; i <= 24; i++) {
+ ItemStack aStack = new ItemStack(this, 0, i);
+ ALL_VARIANTS.add(aStack);
+ }
}
@Override
@@ -52,6 +74,8 @@ public class ItemBioChip extends Item {
public void addInformation(ItemStack aStack, EntityPlayer p_77624_2_, List aList, boolean p_77624_4_) {
try {
aList.add("Configuration == "+aStack.getItemDamage());
+ aList.add(GT_LanguageManager.addStringLocalization(new StringBuilder().append(getUnlocalizedName()).append(".tooltip.0").toString(), "Right click to reconfigure"));
+ aList.add(GT_LanguageManager.addStringLocalization(new StringBuilder().append(getUnlocalizedName()).append(".tooltip.1").toString(), "Needs a screwdriver or circuit programming tool"));
}
catch (Throwable t) {
t.printStackTrace();
@@ -133,6 +157,82 @@ public class ItemBioChip extends Item {
public String getUnlocalizedName(ItemStack stack) {
return super.getUnlocalizedName();
}
-
+ @Override
+ public boolean receive(ItemStack stack, EntityPlayerMP player, NBTTagCompound tag) {
+ int meta = tag.hasKey("meta", Constants.NBT.TAG_BYTE) ? tag.getByte("meta") : -1;
+ if (meta < 0 || meta > 24)
+ return true;
+
+ if (!player.capabilities.isCreativeMode) {
+ Pair<Integer, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> toolIndex = findConfiguratorInInv(player);
+ if (toolIndex == null) return true;
+
+ ItemStack[] mainInventory = player.inventory.mainInventory;
+ mainInventory[toolIndex.getKey()] = toolIndex.getValue().apply(mainInventory[toolIndex.getKey()], player);
+ }
+ stack.setItemDamage(meta);
+
+ return true;
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float xOffset, float yOffset, float zOffset) {
+ // nothing on server side or fake player
+ if (player instanceof FakePlayer || !world.isRemote) return false;
+ // check if any screwdriver
+ ItemStack configuratorStack;
+ if (player.capabilities.isCreativeMode) {
+ configuratorStack = null;
+ } else {
+ Pair<Integer, ?> configurator = findConfiguratorInInv(player);
+ if (configurator == null) {
+ int count;
+ try {
+ count = Integer.parseInt(StatCollector.translateToLocal("GT5U.item.programmed_circuit.no_screwdriver.count"));
+ } catch (NumberFormatException e) {
+ player.addChatComponentMessage(new ChatComponentText("Error in translation GT5U.item.programmed_circuit.no_screwdriver.count: " + e.getMessage()));
+ count = 1;
+ }
+ player.addChatComponentMessage(new ChatComponentTranslation("GT5U.item.programmed_circuit.no_screwdriver." + XSTR.XSTR_INSTANCE.nextInt(count)));
+ return false;
+ }
+ configuratorStack = player.inventory.mainInventory[configurator.getKey()];
+ }
+ openSelectorGui(configuratorStack, stack.getItemDamage());
+ return true;
+ }
+
+ private void openSelectorGui(ItemStack configurator, int meta) {
+ FMLCommonHandler.instance().showGuiScreen(new GT_GUIDialogSelectItem(
+ StatCollector.translateToLocal("GT5U.item.programmed_circuit.select.header"),
+ configurator,
+ null,
+ ItemBioChip::onConfigured,
+ ALL_VARIANTS,
+ meta,
+ true
+ ));
+ }
+
+ private static void onConfigured(ItemStack stack) {
+ NBTTagCompound tag = new NBTTagCompound();
+ tag.setByte("meta", (byte) stack.getItemDamage());
+ GT_Values.NW.sendToServer(new GT_Packet_UpdateItem(tag));
+ }
+
+ private static Pair<Integer, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> findConfiguratorInInv(EntityPlayer player) {
+ ItemStack[] mainInventory = player.inventory.mainInventory;
+ for (int j = 0, mainInventoryLength = mainInventory.length; j < mainInventoryLength; j++) {
+ ItemStack toolStack = mainInventory[j];
+
+ if (!GT_Utility.isStackValid(toolStack))
+ continue;
+
+ for (Map.Entry<Predicate<ItemStack>, BiFunction<ItemStack, EntityPlayerMP, ItemStack>> p : GregTech_API.sCircuitProgrammerList.entrySet())
+ if (p.getKey().test(toolStack))
+ return Pair.of(j, p.getValue());
+ }
+ return null;
+ }
}
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;
}
-
}