diff options
author | Martin Robertz <dream-master@gmx.net> | 2021-07-21 17:25:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-21 17:25:06 +0200 |
commit | 9a09386e6a2a693eea18e9e52309f3630f7530e0 (patch) | |
tree | c7c05b95aeaffe57a46579efd1d97a68c67b3bb5 /src/main/java | |
parent | 9dbe381c07cb89321885e2b4b6967a2c24d7c398 (diff) | |
parent | 43dbba9c51369dd229f8a0c349c3109d22dbac15 (diff) | |
download | GT5-Unofficial-9a09386e6a2a693eea18e9e52309f3630f7530e0.tar.gz GT5-Unofficial-9a09386e6a2a693eea18e9e52309f3630f7530e0.tar.bz2 GT5-Unofficial-9a09386e6a2a693eea18e9e52309f3630f7530e0.zip |
Merge pull request #594 from GTNewHorizons/fix-recipe-check
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Recipe.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java index 0214eab54b..5db314ed30 100644 --- a/src/main/java/gregtech/api/util/GT_Recipe.java +++ b/src/main/java/gregtech/api/util/GT_Recipe.java @@ -23,6 +23,7 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidContainerItem; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import static gregtech.api.enums.GT_Values.*; @@ -388,13 +389,18 @@ public class GT_Recipe implements Comparable<GT_Recipe> { if (mInputs.length > 0 && aInputs == null) return false; + ConcurrentHashMap<Integer, Boolean> isUsed = new ConcurrentHashMap<>(); + for (ItemStack tStack : mInputs) { ItemStack unified_tStack = GT_OreDictUnificator.get_nocopy(true, tStack); if (unified_tStack != null) { amt = tStack.stackSize; boolean temp = true; + int it = 0; for (ItemStack aStack : aInputs) { - if (GT_OreDictUnificator.isInputStackEqual(aStack, unified_tStack)) { + it ++; + if (GT_OreDictUnificator.isInputStackEqual(aStack, unified_tStack) && !isUsed.containsKey(it)) { + isUsed.put(it, true); if (GTppRecipeHelper) {//remove once the fix is out if (GT_Utility.areStacksEqual(aStack, Ic2Items.FluidCell.copy(), true) || GT_Utility.areStacksEqual(aStack, ItemList.Tool_DataStick.get(1L), true) || GT_Utility.areStacksEqual(aStack, ItemList.Tool_DataOrb.get(1L), true)) { if (!GT_Utility.areStacksEqual(aStack, tStack, false)) |