aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common
diff options
context:
space:
mode:
authorD-Cysteine <54219287+D-Cysteine@users.noreply.github.com>2021-08-03 20:44:17 -0600
committerD-Cysteine <54219287+D-Cysteine@users.noreply.github.com>2021-08-03 20:44:17 -0600
commit7494ea5645fb76aec16f9852ebf3454f1fd197c4 (patch)
treea99df3379d2581b43626cc76f5b0caa9cb00f42b /src/main/java/gregtech/common
parent68b447103638ddc2bfaba0b5a93bf10b670c0322 (diff)
downloadGT5-Unofficial-7494ea5645fb76aec16f9852ebf3454f1fd197c4.tar.gz
GT5-Unofficial-7494ea5645fb76aec16f9852ebf3454f1fd197c4.tar.bz2
GT5-Unofficial-7494ea5645fb76aec16f9852ebf3454f1fd197c4.zip
Add disassembler restrictions bypass
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java29
1 files changed, 20 insertions, 9 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 b820dd44fd..13eefcd7a6 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
@@ -172,9 +172,6 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi
)
return DID_NOT_FIND_RECIPE;
- if (checkTier(is))
- return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
-
Integer handleHardOverride = handleHardOverride(is);
if (handleHardOverride != null)
return handleHardOverride;
@@ -241,17 +238,31 @@ public class GT_MetaTileEntity_Disassembler extends GT_MetaTileEntity_BasicMachi
GT_Recipe gt_recipe = GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.findRecipe(this.getBaseMetaTileEntity(), true, this.maxEUInput(), null, this.getAllInputs());
if (gt_recipe == null)
return DID_NOT_FIND_RECIPE;
- if (gt_recipe.isRecipeInputEqual(false, null, this.getAllInputs()))
- return setOutputsAndTime(gt_recipe.mOutputs, gt_recipe.mInputs[0].stackSize)
- ? FOUND_AND_SUCCESSFULLY_USED_RECIPE
- : FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ if (gt_recipe.isRecipeInputEqual(false, null, this.getAllInputs())) {
+ if (gt_recipe.mSpecialValue == -100) {
+ // Bypass standard disassembler restrictions.
+ this.getInputAt(0).stackSize -= gt_recipe.mInputs[0].stackSize;
+ System.arraycopy(gt_recipe.mOutputs, 0, this.mOutputItems, 0, gt_recipe.mOutputs.length);
+
+ this.calculateOverclockedNess(gt_recipe);
+ return FOUND_AND_SUCCESSFULLY_USED_RECIPE;
+ } else {
+ return setOutputsAndTime(gt_recipe.mOutputs, gt_recipe.mInputs[0].stackSize)
+ ? FOUND_AND_SUCCESSFULLY_USED_RECIPE
+ : FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
+ }
+ }
return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
}
private boolean setOutputsAndTime(ItemStack[] inputs, int stackSize){
- if (this.getInputAt(0).stackSize >= stackSize)
- this.getInputAt(0).stackSize -= stackSize;
+ ItemStack machineInput = this.getInputAt(0);
+ if (checkTier(machineInput))
+ return false;
+
+ if (machineInput.stackSize >= stackSize)
+ machineInput.stackSize -= stackSize;
else
return false;