aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
authorbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2020-12-30 23:30:33 +0100
committerbartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>2020-12-31 02:02:58 +0100
commit939441f7b24e5f6abb0b5534dfea715b4be6e5ed (patch)
treeadf8d57b6b80b2202ce354fa5a5d83cfc9de11ce /src/main/java/gregtech/common/tileentities
parent2db36cb988b58ace9d91d6f7b636a6059507c873 (diff)
downloadGT5-Unofficial-939441f7b24e5f6abb0b5534dfea715b4be6e5ed.tar.gz
GT5-Unofficial-939441f7b24e5f6abb0b5534dfea715b4be6e5ed.tar.bz2
GT5-Unofficial-939441f7b24e5f6abb0b5534dfea715b4be6e5ed.zip
Implemented ReverseRecipes
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java31
1 files changed, 29 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 4589940a14..92ed054b05 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
@@ -120,6 +120,13 @@ public class GT_MetaTileEntity_Disassembler
}
private boolean process(){
+
+ GT_Recipe gt_recipe = GT_Recipe.GT_Recipe_Map.sDisassemblerRecipes.findRecipe(this.getBaseMetaTileEntity(), true, this.mEUt, null, this.getAllInputs());
+ if (gt_recipe != null) {
+ gt_recipe.isRecipeInputEqual(true, null, this.getRealInventory());
+ return setOutputsAndTime(gt_recipe.mOutputs, gt_recipe.mInputs[0].stackSize);
+ }
+
Collection<DissassembleReference> recipes = this.findRecipeFromMachine();
if (recipes.isEmpty())
return false;
@@ -131,6 +138,7 @@ public class GT_MetaTileEntity_Disassembler
recipe.inputs[i] = null;
recipe.inputs = GT_Utility.getArrayListWithoutNulls(recipe.inputs).toArray(new ItemStack[0]);
+
return setOutputsAndTime(recipe.inputs, recipe.stackSize);
}
@@ -160,12 +168,12 @@ public class GT_MetaTileEntity_Disassembler
.map(x -> x.recipe)
.collect(Collectors.toList());
- handleRecipeTranceformation(inputs, output, recipesColl);
+ handleRecipeTransformation(inputs, output, recipesColl);
return new DissassembleReference(recipes.stream().mapToInt(x -> x.stackSize).min().orElseThrow(NumberFormatException::new), output, null);
}
- private static void handleRecipeTranceformation(ItemStack[] inputs, ItemStack[] output, List<GT_Recipe> recipesColl) {
+ private static void handleRecipeTransformation(ItemStack[] inputs, ItemStack[] output, List<GT_Recipe> recipesColl) {
for (int i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
Set<ItemStack[]> inputsStacks = null;
if (recipesColl != null)
@@ -183,6 +191,25 @@ public class GT_MetaTileEntity_Disassembler
addOthersAndHandleAlwaysReplace(inputs, output);
}
+ /**
+ * Public Interface for ReverseRecipes, do not call inside of this class.
+ * @param inputs
+ * @param output
+ * @param inputsStacks
+ */
+ public static void handleRecipeTransformation(ItemStack[] inputs, ItemStack[] output, Set<ItemStack[]> inputsStacks) {
+ for (int i = 0, inputsLength = inputs.length; i < inputsLength; i++) {
+ ItemStack input = inputs[i];
+ ItemData data = GT_OreDictUnificator.getItemData(input);
+ if (data == null || data.mMaterial == null || data.mMaterial.mMaterial == null || data.mPrefix == null) {
+ output[i] = input;
+ continue;
+ }
+ handleReplacement(inputsStacks, data, output, input, i);
+ }
+ addOthersAndHandleAlwaysReplace(inputs, output);
+ }
+
private static void addOthersAndHandleAlwaysReplace(ItemStack[] inputs, ItemStack[] output){
for (int i = 0; i < inputs.length; i++) {
//Adds rest of Items