aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-07-12 18:22:36 +0900
committerGitHub <noreply@github.com>2022-07-12 16:22:36 +0700
commit30613aa7ced81b77e0338a005b976683d7fcdb17 (patch)
treef986c00a9e5fe46375d12a9e3b0ef2a49be6c84f /src/main
parent47911e5e17ea6111904286bc15cc4aa21cd970c4 (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java28
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;