From 80c02e661544471acb455aa5b92b3770a57366ae Mon Sep 17 00:00:00 2001 From: Kyium <43573052+Kyium@users.noreply.github.com> Date: Mon, 18 Sep 2023 16:43:42 +0100 Subject: Multiblock chance bug fix (#748) * fixed a bug from my multiblock recipe duplication remover that messed with the order of recipe outputs that had chances. * commented changes --------- Co-authored-by: Kyium --- src/main/java/gtPlusPlus/core/util/recipe/RecipeHashStrat.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/main/java') 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)) { -- cgit