diff options
author | miozune <miozune@gmail.com> | 2022-07-12 18:22:36 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-12 16:22:36 +0700 |
commit | 30613aa7ced81b77e0338a005b976683d7fcdb17 (patch) | |
tree | f986c00a9e5fe46375d12a9e3b0ef2a49be6c84f /src/main/java | |
parent | 47911e5e17ea6111904286bc15cc4aa21cd970c4 (diff) | |
download | GT5-Unofficial-30613aa7ced81b77e0338a005b976683d7fcdb17.tar.gz GT5-Unofficial-30613aa7ced81b77e0338a005b976683d7fcdb17.tar.bz2 GT5-Unofficial-30613aa7ced81b77e0338a005b976683d7fcdb17.zip |
Now properly limit Disassembler recipes by machine voltage (#1127)
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java index 75edd259b1..b345f52c21 100644 --- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java +++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java @@ -226,6 +226,10 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi removeInvalidStacks(recipe); + if (!checkVoltage(recipe)) { + return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; + } + return setOutputsAndTime(recipe.inputs, recipe.stackSize) ? FOUND_AND_SUCCESSFULLY_USED_RECIPE : FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS; @@ -282,6 +286,10 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi .findFirst() .orElseThrow(NullPointerException::new) .inputs; + int EUt = recipes.stream() + .findFirst() + .orElseThrow(NullPointerException::new) + .EUt; ItemStack[] output = new ItemStack[inputs.length]; List<GT_Recipe> recipesColl = null; @@ -293,7 +301,7 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi handleRecipeTransformation(inputs, output, recipesColl); - return new DissassembleReference(recipes.stream().mapToInt(x -> x.stackSize).min().orElseThrow(NumberFormatException::new), output, null); + return new DissassembleReference(recipes.stream().mapToInt(x -> x.stackSize).min().orElseThrow(NumberFormatException::new), output, null, EUt); } private static void handleRecipeTransformation(ItemStack[] inputs, ItemStack[] output, List<? extends GT_Recipe> recipesColl) { @@ -493,11 +501,24 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi final int stackSize; ItemStack[] inputs; final GT_Recipe recipe; + final int EUt; + + public DissassembleReference(int stackSize, ItemStack[] inputs, GT_Recipe recipe, int EUt) { + this.stackSize = stackSize; + this.inputs = inputs; + this.recipe = recipe; + this.EUt = EUt; + } public DissassembleReference(int stackSize, ItemStack[] inputs, GT_Recipe recipe) { this.stackSize = stackSize; this.inputs = inputs; this.recipe = recipe; + if (recipe != null) { + this.EUt = recipe.mEUt; + } else { + this.EUt = 0; + } } } @@ -520,7 +541,6 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi return isDone; }) ) - .filter(x -> x.mEUt < GT_Values.V[this.mTier]) .map(x -> new DissassembleReference(stacksize.get(), x.mInputs, x)) .collect(Collectors.toList()); @@ -548,6 +568,10 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi return outputValue / inputValue; } + private boolean checkVoltage(DissassembleReference recipe) { + return recipe.EUt < GT_Values.V[this.mTier]; + } + @Override protected boolean allowPutStackValidated(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return super.allowPutStackValidated(aBaseMetaTileEntity, aIndex, aSide, aStack) && aStack.getTagCompound() != null && aStack.getTagCompound().getCompoundTag("GT.CraftingComponents") != null; |