diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java b/src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java index 8d32b9c830..e51d4da47a 100644 --- a/src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java +++ b/src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java @@ -27,14 +27,18 @@ public class RecipeHashStrat { }; public static boolean areRecipesEqual(GT_Recipe recipe1, GT_Recipe recipe2) { + // both item outputs use a copy to prevent interfering with chance based output orders // sort all the arrays for recipe1 RecipeHashStrat.sortItemStackArray(recipe1.mInputs); - RecipeHashStrat.sortItemStackArray(recipe1.mOutputs); + ItemStack[] recipe1OutputCopy = recipe1.mOutputs.clone(); + RecipeHashStrat.sortItemStackArray(recipe1OutputCopy); RecipeHashStrat.sortFluidStackArray(recipe1.mFluidInputs); RecipeHashStrat.sortFluidStackArray(recipe1.mFluidOutputs); // sort all the arrays for recipe2 + RecipeHashStrat.sortItemStackArray(recipe2.mInputs); - RecipeHashStrat.sortItemStackArray(recipe2.mOutputs); + ItemStack[] recipe2OutputCopy = recipe2.mOutputs.clone(); + RecipeHashStrat.sortItemStackArray(recipe2OutputCopy); RecipeHashStrat.sortFluidStackArray(recipe2.mFluidInputs); RecipeHashStrat.sortFluidStackArray(recipe2.mFluidOutputs); @@ -48,7 +52,7 @@ public class RecipeHashStrat { if (!areItemsStackArraysEqual(recipe1.mInputs, recipe2.mInputs)) { return false; } - if (!areItemsStackArraysEqual(recipe1.mOutputs, recipe2.mOutputs)) { + if (!areItemsStackArraysEqual(recipe1OutputCopy, recipe2OutputCopy)) { return false; } if (!areFluidStackArraysEqual(recipe1.mFluidInputs, recipe2.mFluidInputs)) { |