aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.properties2
-rw-r--r--src/main/java/com/github/bartimaeusnek/ASM/BWCoreStaticReplacementMethodes.java28
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;
}
}