From 2db8e30b1d2151fdde5d08a6c06aef55f0c397d2 Mon Sep 17 00:00:00 2001 From: Foghrye4 Date: Fri, 27 Jan 2017 11:32:28 +0300 Subject: License, readme and stuff --- ihl/recipes/UniversalRecipeManager.java | 93 ++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 35 deletions(-) (limited to 'ihl/recipes/UniversalRecipeManager.java') diff --git a/ihl/recipes/UniversalRecipeManager.java b/ihl/recipes/UniversalRecipeManager.java index 443a67f..99f43bc 100644 --- a/ihl/recipes/UniversalRecipeManager.java +++ b/ihl/recipes/UniversalRecipeManager.java @@ -6,9 +6,9 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import ic2.api.recipe.IRecipeInput; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; -import ic2.api.recipe.IRecipeInput; import ihl.utils.IHLUtils; public class UniversalRecipeManager { @@ -25,7 +25,8 @@ public class UniversalRecipeManager { machineRecipeManagers.put(machine1, this); } - private final Map recipes = new HashMap(); + private final Map recipes = new HashMap(); + private final Map keywordMap = new HashMap(); public void addRecipe(UniversalRecipeInput input, UniversalRecipeOutput output) { @@ -41,31 +42,53 @@ public class UniversalRecipeManager { } } - Iterator var8 = this.recipes.keySet().iterator(); + Iterator var8 = this.recipes.keySet().iterator(); while (var8.hasNext()) { UniversalRecipeInput existingInput = (UniversalRecipeInput)var8.next(); if (existingInput.matches(input)) { - Iterator ilist1 = existingInput.getItemInputs().iterator(); - Iterator ilist2 = input.getItemInputs().iterator(); - while(ilist1.hasNext()) + StringBuffer ssError =new StringBuffer(255); + ssError.append("Ambiguous recipe. \n"); + ssError.append("Existing input: \n"); + Iterator iii1 = existingInput.getItemInputs().iterator(); + Iterator fii1 = existingInput.getFluidInputs().iterator(); + while(iii1!=null && iii1.hasNext()) + { + ssError.append(iii1.next().toString()); + ssError.append(" \n"); + } + while(fii1!=null && fii1.hasNext()) { - IRecipeInput is = ilist1.next(); + ssError.append(fii1.next().toString()); + ssError.append(" \n"); } - System.out.println("recipe 2:"); - while(ilist2.hasNext()) + ssError.append("New input: \n"); + Iterator iii2 = input.getItemInputs().iterator(); + Iterator fii2 = input.getFluidInputs().iterator(); + while(iii2!=null && iii2.hasNext()) { - IRecipeInput is = ilist2.next(); + ssError.append(iii2.next().toString()); + ssError.append(" \n"); } - throw new RuntimeException("Ambiguous recipe."); + while(fii2!=null && fii2.hasNext()) + { + ssError.append(fii2.next().toString()); + ssError.append(" \n"); + } + throw new RuntimeException(ssError.toString()); } } this.recipes.put(input, output); } + public void addRecipe(String keyword, UniversalRecipeInput input, UniversalRecipeOutput output) + { + this.addRecipe(input, output); + this.keywordMap.put(keyword, input); + } public UniversalRecipeOutput getOutputFor(List fluidInputs, List itemInputs, boolean adjustInput, boolean inputAffectOutput) { @@ -75,14 +98,14 @@ public class UniversalRecipeManager { } else { - Iterator i$ = this.recipes.entrySet().iterator(); + Iterator> i$ = this.recipes.entrySet().iterator(); while (true) { if (i$.hasNext()) { - Entry entry = (Entry)i$.next(); - UniversalRecipeInput recipeInput = (UniversalRecipeInput)entry.getKey(); + Entry entry = i$.next(); + UniversalRecipeInput recipeInput = entry.getKey(); if (!recipeInput.matches(fluidInputs, itemInputs)) { @@ -91,7 +114,7 @@ public class UniversalRecipeManager { if (recipeInput.adjustAmounts(fluidInputs, itemInputs,true, false)) { - UniversalRecipeOutput output = (UniversalRecipeOutput)entry.getValue(); + UniversalRecipeOutput output = entry.getValue(); if (adjustInput) { if(inputAffectOutput) @@ -121,14 +144,14 @@ public class UniversalRecipeManager { public UniversalRecipeInput getRecipeInput(List fluidInputs1, List itemInputs1) { { - Iterator i$ = this.recipes.entrySet().iterator(); + Iterator> i$ = this.recipes.entrySet().iterator(); while (true) { if (i$.hasNext()) { - Entry entry = (Entry)i$.next(); - UniversalRecipeInput recipeInput = (UniversalRecipeInput)entry.getKey(); + Entry entry = i$.next(); + UniversalRecipeInput recipeInput = entry.getKey(); if (!recipeInput.matches(fluidInputs1,itemInputs1)) { @@ -147,12 +170,14 @@ public class UniversalRecipeManager { } + @SuppressWarnings({ "unchecked", "rawtypes" }) public UniversalRecipeOutput getOutputFor(List[] input, boolean adjustInput, boolean inputAffectOutput) { return this.getOutputFor(input[0], input[1], adjustInput, inputAffectOutput); } + @SuppressWarnings({ "unchecked", "rawtypes" }) public UniversalRecipeInput getRecipeInput(List[] input) { return this.getRecipeInput(input[0], input[1]); @@ -161,36 +186,34 @@ public class UniversalRecipeManager { public void removeRecipeByInput(UniversalRecipeInput uRecipeInput) { - Entry entryToRemove = null; List fluidInputs = IHLUtils.convertRecipeInputToFluidStackList(uRecipeInput.getFluidInputs()); List itemInputs = IHLUtils.convertRecipeInputToItemStackList(uRecipeInput.getItemInputs()); { - Iterator i$ = this.recipes.entrySet().iterator(); + Iterator> i$ = this.recipes.entrySet().iterator(); while (i$.hasNext()) { - Entry entry = (Entry)i$.next(); - UniversalRecipeInput recipeInput = (UniversalRecipeInput)entry.getKey(); - if (recipeInput.matches(fluidInputs, itemInputs)) - { - i$.remove(); - break; - } + Entry entry = i$.next(); + UniversalRecipeInput recipeInput = entry.getKey(); + if (recipeInput.matches(fluidInputs, itemInputs)) + { + i$.remove(); + break; + } } } } public void removeRecipeByOutput(UniversalRecipeOutput uRecipeOutput) { - Entry entryToRemove = null; - Iterator i$ = this.recipes.entrySet().iterator(); + Iterator> i$ = this.recipes.entrySet().iterator(); while (i$.hasNext()) { - Entry entry = (Entry)i$.next(); - UniversalRecipeOutput recipeOutput = (UniversalRecipeOutput)entry.getValue(); - if (recipeOutputHasCommonEntries(recipeOutput,uRecipeOutput)) - { - i$.remove(); - } + Entry entry = i$.next(); + UniversalRecipeOutput recipeOutput = entry.getValue(); + if (recipeOutputHasCommonEntries(recipeOutput,uRecipeOutput)) + { + i$.remove(); + } } } -- cgit v1.2.3