diff options
-rw-r--r-- | build.properties | 2 | ||||
-rw-r--r-- | src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java | 28 |
2 files changed, 19 insertions, 11 deletions
diff --git a/build.properties b/build.properties index 73f214419f..f9a6425a12 100644 --- a/build.properties +++ b/build.properties @@ -22,7 +22,7 @@ mc_version=1.7.10 majorUpdate=0 minorUpdate=5 -buildNumber=3_pre5 +buildNumber=3_pre6 APIVersion=8 ic2.version=2.2.828-experimental gregtech.version=5.09.32.36 diff --git a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java index 53a0fff182..d9ff910ff8 100644 --- a/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java +++ b/src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java @@ -30,8 +30,9 @@ import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; +import java.util.HashSet; import java.util.Iterator; -import java.util.Optional; +import java.util.List; public class BWCoreStaticReplacementMethodes { @@ -79,25 +80,32 @@ public class BWCoreStaticReplacementMethodes { return new ItemStack(itemstack.getItem(), 1, i1); } else { - Optional<IRecipe> iPossibleRecipe = Optional.empty(); + IRecipe iPossibleRecipe = null; int index = 0; - for (Iterator<IRecipe> it = RECENTLYUSEDRECIPES.iterator(); it.hasNext();++index) { + for (Iterator<IRecipe> it = RECENTLYUSEDRECIPES.iterator(); it.hasNext(); ++index) { IRecipe RECENTLYUSEDRECIPE = it.next(); if (RECENTLYUSEDRECIPE.matches(inventoryCrafting, world)) { - iPossibleRecipe = Optional.of(RECENTLYUSEDRECIPE); + iPossibleRecipe = RECENTLYUSEDRECIPE; break; } } - if (iPossibleRecipe.isPresent()) { + if (iPossibleRecipe != null) { RECENTLYUSEDRECIPES.addPrioToNode(index); - return iPossibleRecipe.get().getCraftingResult(inventoryCrafting); + return iPossibleRecipe.getCraftingResult(inventoryCrafting); } - iPossibleRecipe = CraftingManager.getInstance().getRecipeList().stream().filter(r -> ((IRecipe)r).matches(inventoryCrafting, world)).findFirst(); - ItemStack stack = iPossibleRecipe.map(iRecipe -> iRecipe.getCraftingResult(inventoryCrafting)).orElse(null); - if (stack != null) - RECENTLYUSEDRECIPES.addLast(iPossibleRecipe.get()); + ItemStack stack = null; + HashSet<IRecipe> recipeHashSet = new HashSet<>(); + for (IRecipe recipe : (List<IRecipe>) CraftingManager.getInstance().getRecipeList()) + if (recipe.matches(inventoryCrafting, world)) + recipeHashSet.add(recipe); + + for (IRecipe recipe : recipeHashSet){ + stack = recipe.getCraftingResult(inventoryCrafting); + if (stack != null && recipeHashSet.size() == 1) + RECENTLYUSEDRECIPES.addLast(recipe); + } return stack; } } |