From e010c8be798fda1d564880d64bde438d01ecf519 Mon Sep 17 00:00:00 2001 From: BlueWeabo Date: Sat, 27 May 2023 17:11:54 +0300 Subject: blacklist benzene and helium plasma from XL Turbines (#639) * blacklist benzene and helium plasma * change to a list and add null check * use hashset --- .gitignore | 3 ++- .../turbines/GT_MTE_LargeTurbine_Gas.java | 30 +++++++++++++++++++++- .../turbines/GT_MTE_LargeTurbine_Plasma.java | 14 ++++++++++ 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 966fea05d1..e5a436002a 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,5 @@ src/main/resources/mixins.*.json /world /saves /asm -/.vscode \ No newline at end of file +/.vscode +.factorypath diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java index cdcffed2d8..025169aa0d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java @@ -3,11 +3,15 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.t import static gtPlusPlus.core.lib.CORE.RANDOM; import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; +import gregtech.api.enums.Materials; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -19,6 +23,12 @@ import gregtech.api.util.GT_Utility; @SuppressWarnings("deprecation") public class GT_MTE_LargeTurbine_Gas extends GregtechMetaTileEntity_LargerTurbineBase { + private static final HashSet BLACKLIST = new HashSet<>(); + + static { + BLACKLIST.add(Materials.Benzene.getFluid(0).getFluid()); + } + public GT_MTE_LargeTurbine_Gas(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } @@ -64,12 +74,30 @@ public class GT_MTE_LargeTurbine_Gas extends GregtechMetaTileEntity_LargerTurbin return 0; } + @Override + public boolean checkRecipeGeneric(ItemStack[] aItemInputs, FluidStack[] aFluidInputs, int aMaxParallelRecipes, + long aEUPercent, int aSpeedBonusPercent, int aOutputChanceRoll, GT_Recipe aRecipe) { + List fluids = getStoredFluids(); + for (FluidStack fluid : fluids) { + if (fluid != null && BLACKLIST.contains(fluid.getFluid())) { + return false; + } + } + return super.checkRecipeGeneric( + aItemInputs, + aFluidInputs, + aMaxParallelRecipes, + aEUPercent, + aSpeedBonusPercent, + aOutputChanceRoll, + aRecipe); + } + @Override int fluidIntoPower(ArrayList aFluids, long aOptFlow, int aBaseEff, float[] flowMultipliers) { if (aFluids.size() >= 1) { int tEU = 0; int actualOptimalFlow = 0; - FluidStack firstFuelType = new FluidStack(aFluids.get(0), 0); // Identify a SINGLE type of fluid to process. // Doesn't matter which one. Ignore the rest! int fuelValue = getFuelValue(firstFuelType); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java index ad3ac3b5ea..00cf42bae2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java @@ -1,11 +1,14 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.turbines; import java.util.ArrayList; +import java.util.HashSet; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; +import gregtech.api.enums.Materials; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -20,6 +23,12 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GT_MetaTileEn @SuppressWarnings("deprecation") public class GT_MTE_LargeTurbine_Plasma extends GregtechMetaTileEntity_LargerTurbineBase { + private static final HashSet BLACKLIST = new HashSet<>(); + + static { + BLACKLIST.add(Materials.Helium.getPlasma(0).getFluid()); + } + public GT_MTE_LargeTurbine_Plasma(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } @@ -97,6 +106,11 @@ public class GT_MTE_LargeTurbine_Plasma extends GregtechMetaTileEntity_LargerTur ArrayList tFluids = getStoredFluids(); if (tFluids.size() > 0) { + for (FluidStack fluid : tFluids) { + if (fluid != null && BLACKLIST.contains(fluid.getFluid())) { + return false; + } + } if (baseEff == 0 || optFlow == 0 || counter >= 512 || this.getBaseMetaTileEntity().hasWorkJustBeenEnabled() -- cgit