From aebcbcf7287c41ffbd5ccfde87aae4bc0e0984e9 Mon Sep 17 00:00:00 2001 From: miozune Date: Wed, 31 Aug 2022 17:20:15 +0900 Subject: Cleanup checkRecipe --- .../gtnhlanth/common/tileentity/Digester.java | 37 ++++------ .../common/tileentity/DissolutionTank.java | 85 +++------------------- 2 files changed, 26 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java index 6f2cc4535f..9342ae3962 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/Digester.java @@ -25,11 +25,9 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMultiBlockBase; import gregtech.api.render.TextureFactory; -import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; import java.util.ArrayList; -import java.util.Arrays; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; @@ -93,41 +91,38 @@ public class Digester extends GT_MetaTileEntity_EnhancedMultiBlockBase @Override public boolean checkRecipe(ItemStack itemStack) { - GT_Log.out.print("Digester: in checkRecipe\n"); + // GT_Log.out.print("Digester: in checkRecipe\n"); ArrayList tFluidInputs = this.getStoredFluids(); FluidStack[] tFluidInputArray = tFluidInputs.toArray(new FluidStack[0]); ItemStack[] tItems = this.getStoredInputs().toArray(new ItemStack[0]); long tVoltage = this.getMaxInputVoltage(); - GT_Log.out.print("Digester: " + Arrays.toString(mInventory)); + // GT_Log.out.print("Digester: " + Arrays.toString(mInventory)); // Collection tRecipes = RecipeAdder.instance.DigesterRecipes.mRecipeList; GT_Recipe tRecipe = RecipeAdder.instance.DigesterRecipes.findRecipe( getBaseMetaTileEntity(), false, tVoltage, tFluidInputArray, tItems); - if (tRecipe == null) return false; + if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) return false; // GT_Log.out.print("Recipe not null\n"); - if (tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) { - // GT_Log.out.print("in isRecipeInputEqual\n"); - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - this.calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); - if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; + this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + this.calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); - if (this.mEUt > 0) this.mEUt = (-this.mEUt); - // GT_Log.out.print("valid values"); + if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; - if (tRecipe.mSpecialValue > this.getCoilLevel().getHeat()) return false; - // GT_Log.out.print("Coils good\n"); - // GT_Log.out.print(tRecipe.getFluidOutput(0).getLocalizedName()); - this.mOutputFluids = new FluidStack[] {tRecipe.getFluidOutput(0)}; + if (this.mEUt > 0) this.mEUt = (-this.mEUt); + // GT_Log.out.print("valid values"); - this.mOutputItems = new ItemStack[] {tRecipe.getOutput(0)}; - return true; - } - return false; + if (tRecipe.mSpecialValue > this.getCoilLevel().getHeat()) return false; + // GT_Log.out.print("Coils good\n"); + // GT_Log.out.print(tRecipe.getFluidOutput(0).getLocalizedName()); + this.mOutputFluids = tRecipe.mFluidOutputs; + this.mOutputItems = tRecipe.mOutputs; + this.updateSlots(); + return true; } @Override diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index 08af3b5549..d97c611a70 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -87,7 +87,6 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase tFluidInputs = this.getStoredFluids(); @@ -95,88 +94,24 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase tRecipes = RecipeAdder.instance.DigesterRecipes.mRecipeList; GT_Recipe tRecipe = RecipeAdder.instance.DissolutionTankRecipes.findRecipe( getBaseMetaTileEntity(), false, tVoltage, tFluidInputArray, tItems); - if (tRecipe == null) return false; - + if (tRecipe == null || !tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) return false; // GT_Log.out.print("Recipe not null\n"); - if (tRecipe.isRecipeInputEqual(true, tFluidInputArray, tItems)) { - - this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); - this.mEfficiencyIncrease = 10000; - this.calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); - - if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; - - if (this.mEUt > 0) this.mEUt = (-this.mEUt); - - FluidStack majorGenericFluid = tRecipe.mFluidInputs[0]; - FluidStack minorGenericFluid = tRecipe.mFluidInputs[1]; - - FluidStack majorInput = null; - FluidStack minorInput = null; - - int majorAmount = 0; - int minorAmount = 0; - - FluidStack fluidInputOne = tFluidInputs.get(0); - FluidStack fluidInputTwo = tFluidInputs.get(1); - majorInput = ((fluidInputOne.getUnlocalizedName().equals(majorGenericFluid.getUnlocalizedName())) - ? fluidInputOne - : fluidInputTwo); - // GT_Log.out.print(majorInput.getLocalizedName()); - if (fluidInputOne.getUnlocalizedName().equals(majorGenericFluid.getUnlocalizedName())) { - if (fluidInputTwo.getUnlocalizedName().equals(minorGenericFluid.getUnlocalizedName())) { - majorInput = fluidInputOne; - majorAmount = fluidInputOne.amount; - minorInput = fluidInputTwo; - minorAmount = fluidInputTwo.amount; - // GT_Log.out.print("in first IF"); - } else return false; // No valid other input + this.mEfficiency = (10000 - (this.getIdealStatus() - this.getRepairStatus()) * 1000); + this.mEfficiencyIncrease = 10000; + this.calculateOverclockedNessMulti(tRecipe.mEUt, tRecipe.mDuration, 1, tVoltage); - } else if (fluidInputTwo.getUnlocalizedName().equals(majorGenericFluid.getUnlocalizedName())) { - if (fluidInputOne.getUnlocalizedName().equals(minorGenericFluid.getUnlocalizedName())) { - majorInput = fluidInputTwo; - majorAmount = fluidInputTwo.amount; - minorInput = fluidInputOne; - minorAmount = fluidInputOne.amount; - // GT_Log.out.print("in second if"); - } else return false; + if (mMaxProgresstime == Integer.MAX_VALUE - 1 && this.mEUt == Integer.MAX_VALUE - 1) return false; - } else return false; + if (this.mEUt > 0) this.mEUt = (-this.mEUt); - // GT_Log.out.print("out of switch weirdness"); - - /* - for (FluidStack fluid : tFluidInputs) { - String name = fluid.getUnlocalizedName(); - if (name == majorGenericFluid.getUnlocalizedName()) - majorInput = fluid; - - else if (name == minorGenericFluid.getUnlocalizedName()) - minorInput = fluid; - } - */ - if (majorInput == null || minorInput == null) return false; - - // GT_Log.out.print("major " + majorInput.getLocalizedName()); - // GT_Log.out.print("minor " + minorInput.getLocalizedName()); - - // GT_Log.out.print("mjrinputamt " + majorInput.amount); - /* - if ((majorInput.amount / tRecipe.mSpecialValue) != (minorInput.amount)) - return false; - */ - if ((majorAmount / tRecipe.mSpecialValue) != (minorAmount)) return false; - - this.mOutputFluids = new FluidStack[] {tRecipe.getFluidOutput(0)}; - this.mOutputItems = new ItemStack[] {tRecipe.getOutput(0)}; - return true; - } - return false; + this.mOutputFluids = tRecipe.mFluidOutputs; + this.mOutputItems = tRecipe.mOutputs; + this.updateSlots(); + return true; } @Override -- cgit From bd63dfdbd6fe13bc79b29504524d98be6f21ef03 Mon Sep 17 00:00:00 2001 From: miozune Date: Thu, 1 Sep 2022 14:09:58 +0900 Subject: Revive ratio check --- .../common/tileentity/DissolutionTank.java | 46 +++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index d97c611a70..323d2336aa 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -108,7 +108,51 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase 0) this.mEUt = (-this.mEUt); - this.mOutputFluids = tRecipe.mFluidOutputs; + FluidStack majorGenericFluid = tRecipe.mFluidInputs[0]; + FluidStack minorGenericFluid = tRecipe.mFluidInputs[1]; + + // FluidStack majorInput = null; + // FluidStack minorInput = null; + + int majorAmount; + int minorAmount; + + FluidStack fluidInputOne = tFluidInputs.get(0); + FluidStack fluidInputTwo = tFluidInputs.get(1); + + // majorInput = ((fluidInputOne.getUnlocalizedName().equals(majorGenericFluid.getUnlocalizedName())) + // ? fluidInputOne + // : fluidInputTwo); + // GT_Log.out.print(majorInput.getLocalizedName()); + if (fluidInputOne.getUnlocalizedName().equals(majorGenericFluid.getUnlocalizedName())) { + if (fluidInputTwo.getUnlocalizedName().equals(minorGenericFluid.getUnlocalizedName())) { + // majorInput = fluidInputOne; + majorAmount = fluidInputOne.amount; + // minorInput = fluidInputTwo; + minorAmount = fluidInputTwo.amount; + // GT_Log.out.print("in first IF"); + } else return false; // No valid other input + + } else if (fluidInputTwo.getUnlocalizedName().equals(majorGenericFluid.getUnlocalizedName())) { + if (fluidInputOne.getUnlocalizedName().equals(minorGenericFluid.getUnlocalizedName())) { + // majorInput = fluidInputTwo; + majorAmount = fluidInputTwo.amount; + // minorInput = fluidInputOne; + minorAmount = fluidInputOne.amount; + // GT_Log.out.print("in second if"); + } else return false; + + } else return false; + + // GT_Log.out.print("out of switch weirdness"); + + // GT_Log.out.print("major " + majorInput.getLocalizedName()); + // GT_Log.out.print("minor " + minorInput.getLocalizedName()); + + // GT_Log.out.print("mjrinputamt " + majorInput.amount); + if (majorAmount / tRecipe.mSpecialValue != minorAmount) return false; + + this.mOutputFluids = new FluidStack[] {tRecipe.getFluidOutput(0)}; this.mOutputItems = tRecipe.mOutputs; this.updateSlots(); return true; -- cgit From 6afb4273d66ab0374b9c61c6520fc3dd9c747684 Mon Sep 17 00:00:00 2001 From: miozune Date: Thu, 1 Sep 2022 14:17:16 +0900 Subject: stop machine if ratio check failed --- .../common/tileentity/DissolutionTank.java | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index 323d2336aa..0ec203e30a 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -28,7 +28,7 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_EnhancedMul import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_Multiblock_Tooltip_Builder; import gregtech.api.util.GT_Recipe; -import java.util.ArrayList; +import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -89,7 +89,7 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase tFluidInputs = this.getStoredFluids(); + List tFluidInputs = this.getStoredFluids(); FluidStack[] tFluidInputArray = tFluidInputs.toArray(new FluidStack[0]); ItemStack[] tItems = this.getStoredInputs().toArray(new ItemStack[0]); long tVoltage = this.getMaxInputVoltage(); @@ -108,6 +108,18 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase 0) this.mEUt = (-this.mEUt); + if (!checkRatio(tRecipe, tFluidInputs)) { + stopMachine(); + return false; + } + + this.mOutputFluids = new FluidStack[] {tRecipe.getFluidOutput(0)}; + this.mOutputItems = tRecipe.mOutputs; + this.updateSlots(); + return true; + } + + private boolean checkRatio(GT_Recipe tRecipe, List tFluidInputs) { FluidStack majorGenericFluid = tRecipe.mFluidInputs[0]; FluidStack minorGenericFluid = tRecipe.mFluidInputs[1]; @@ -150,12 +162,7 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase Date: Thu, 1 Sep 2022 14:28:27 +0900 Subject: update slots before ratio check --- .../java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java index 0ec203e30a..46d9a49b3d 100644 --- a/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java +++ b/src/main/java/com/elisis/gtnhlanth/common/tileentity/DissolutionTank.java @@ -105,9 +105,10 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase 0) this.mEUt = (-this.mEUt); + this.updateSlots(); + if (!checkRatio(tRecipe, tFluidInputs)) { stopMachine(); return false; @@ -115,7 +116,6 @@ public class DissolutionTank extends GT_MetaTileEntity_EnhancedMultiBlockBase