diff options
| author | Foghrye4 <foghrye4@gmail.com> | 2017-01-27 11:32:28 +0300 |
|---|---|---|
| committer | Foghrye4 <foghrye4@gmail.com> | 2017-01-27 11:32:28 +0300 |
| commit | 2db8e30b1d2151fdde5d08a6c06aef55f0c397d2 (patch) | |
| tree | e8cd0022f3a30a5c952092e0ea4c7ffdafcdf7bb /ihl/recipes | |
| parent | ffe23313fb7421b0a1849b420baf708999023f7b (diff) | |
License, readme and stuff
Diffstat (limited to 'ihl/recipes')
| -rw-r--r-- | ihl/recipes/IRecipeInputFluid.java | 2 | ||||
| -rw-r--r-- | ihl/recipes/IronWorkbenchRecipe.java | 34 | ||||
| -rw-r--r-- | ihl/recipes/RecipeInputDetonator.java | 73 | ||||
| -rw-r--r-- | ihl/recipes/RecipeInputDie.java | 5 | ||||
| -rw-r--r-- | ihl/recipes/RecipeInputFluidDictionary.java | 11 | ||||
| -rw-r--r-- | ihl/recipes/RecipeInputFluidStack.java | 8 | ||||
| -rw-r--r-- | ihl/recipes/RecipeInputObjectInstance.java | 2 | ||||
| -rw-r--r-- | ihl/recipes/RecipeInputOreDictionaryList.java | 24 | ||||
| -rw-r--r-- | ihl/recipes/UniversalRecipeInput.java | 37 | ||||
| -rw-r--r-- | ihl/recipes/UniversalRecipeManager.java | 93 | ||||
| -rw-r--r-- | ihl/recipes/UniversalRecipeOutput.java | 48 |
11 files changed, 224 insertions, 113 deletions
diff --git a/ihl/recipes/IRecipeInputFluid.java b/ihl/recipes/IRecipeInputFluid.java index 8faf15d..823c0ae 100644 --- a/ihl/recipes/IRecipeInputFluid.java +++ b/ihl/recipes/IRecipeInputFluid.java @@ -1,8 +1,6 @@ package ihl.recipes; import java.util.List; - -import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; public interface IRecipeInputFluid { diff --git a/ihl/recipes/IronWorkbenchRecipe.java b/ihl/recipes/IronWorkbenchRecipe.java index 8ecb8df..f0bd81f 100644 --- a/ihl/recipes/IronWorkbenchRecipe.java +++ b/ihl/recipes/IronWorkbenchRecipe.java @@ -16,11 +16,11 @@ public class IronWorkbenchRecipe { public List<IRecipeInput> materials=new ArrayList<IRecipeInput>();
public List<ItemStack> outputs = new ArrayList<ItemStack>();
- public IronWorkbenchRecipe(List tools1, List materials1, List<ItemStack> output1_1)
+ public IronWorkbenchRecipe(List<?> tools1, List<?> materials1, List<ItemStack> output1_1)
{
if(tools1!=null)
{
- Iterator iTools1 = tools1.iterator();
+ Iterator<?> iTools1 = tools1.iterator();
while(iTools1.hasNext())
{
Object tool = iTools1.next();
@@ -37,13 +37,13 @@ public class IronWorkbenchRecipe { tools.add(new RecipeInputItemStack(stack));
}
}
- else
+ else
{
tools.add((IRecipeInput) tool);
}
}
}
- Iterator iMaterials1 = materials1.iterator();
+ Iterator<?> iMaterials1 = materials1.iterator();
while(iMaterials1.hasNext())
{
Object material = iMaterials1.next();
@@ -77,9 +77,33 @@ public class IronWorkbenchRecipe { }
}
- public IronWorkbenchRecipe(List asList, List asList2, List<ItemStack> asList3, List<ItemStack> workspaceElements1) {
+ public IronWorkbenchRecipe(List<?> asList, List<?> asList2, List<ItemStack> asList3, List<ItemStack> workspaceElements1) {
this(asList, asList2, asList3);
+ if(workspaceElements1!=null)
+ {
this.workspaceElements.addAll(workspaceElements1);
+ }
+ }
+
+ public boolean isTool(ItemStack tool1)
+ {
+ if(tools!=null && !tools.isEmpty())
+ {
+ if(tool1==null)
+ {
+ return false;
+ }
+ Iterator<IRecipeInput> i1 = tools.iterator();
+ while(i1.hasNext())
+ {
+ IRecipeInput tool = i1.next();
+ if(tool.matches(tool1))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
}
public boolean isCanBeCrafted(List<ItemStack> tools1, List<ItemStack> materials1, List<ItemStack> workspaceElements1)
diff --git a/ihl/recipes/RecipeInputDetonator.java b/ihl/recipes/RecipeInputDetonator.java new file mode 100644 index 0000000..efef075 --- /dev/null +++ b/ihl/recipes/RecipeInputDetonator.java @@ -0,0 +1,73 @@ +package ihl.recipes;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import ic2.api.recipe.IRecipeInput;
+import ihl.utils.IHLUtils;
+import net.minecraft.item.ItemStack;
+
+public class RecipeInputDetonator implements IRecipeInput
+{
+ public final ItemStack input;
+ public final int detonator_delay;
+
+ public RecipeInputDetonator(String string, int detonator_delay)
+ {
+ this(IHLUtils.getItemStackWithTag(string, "detonator_delay", detonator_delay));
+ }
+
+ public RecipeInputDetonator(ItemStack itemStack)
+ {
+ input=itemStack;
+ detonator_delay=itemStack.stackTagCompound.getInteger("detonator_delay");
+ }
+
+ @Override
+ public boolean matches(ItemStack subject)
+ {
+ return subject.getItem() == this.input.getItem() && (subject.getItemDamage() == this.input.getItemDamage() || this.input.getItemDamage() == 32767);
+ }
+
+ @Override
+ public int getAmount()
+ {
+ return 1;
+ }
+
+ @Override
+ public List<ItemStack> getInputs()
+ {
+ return Arrays.asList(new ItemStack[] {this.input});
+ }
+
+ @Override
+ public String toString()
+ {
+ ItemStack stack = this.input.copy();
+ return "RInputDice<" + stack + ">";
+ }
+
+ public List<ItemStack> transformOutput(ItemStack matchedItemStack, List<ItemStack> outputs)
+ {
+ List<ItemStack> newOutputs = new ArrayList<ItemStack>();
+ int misTS = matchedItemStack.stackTagCompound.getInteger("detonator_delay");
+ ItemStack material;
+ for(ItemStack material1:outputs)
+ {
+ if(IHLUtils.getFirstOreDictName(material1) == "blockExplosive")
+ {
+ material=material1.copy();
+ material.stackTagCompound.setInteger("detonator_delay", misTS);
+ newOutputs.add(material);
+ }
+ else
+ {
+ newOutputs.add(material1);
+ }
+ }
+ return newOutputs;
+ }
+}
+
diff --git a/ihl/recipes/RecipeInputDie.java b/ihl/recipes/RecipeInputDie.java index c8356ca..8fbd4db 100644 --- a/ihl/recipes/RecipeInputDie.java +++ b/ihl/recipes/RecipeInputDie.java @@ -6,7 +6,6 @@ import java.util.List; import ic2.api.recipe.IRecipeInput;
import ihl.interfaces.IWire;
-import ihl.items_blocks.FlexibleCableItem;
import ihl.utils.IHLUtils;
import net.minecraft.item.ItemStack;
@@ -53,7 +52,7 @@ public class RecipeInputDie implements IRecipeInput public List<ItemStack> transformOutput(ItemStack matchedItemStack, List<ItemStack> outputs)
{
- List<ItemStack> newOutputs = new ArrayList();
+ List<ItemStack> newOutputs = new ArrayList<ItemStack>();
int misTS = matchedItemStack.stackTagCompound.getInteger("transverseSection");
ItemStack material;
for(ItemStack material1:outputs)
@@ -75,7 +74,7 @@ public class RecipeInputDie implements IRecipeInput }
return newOutputs;
}
-
+
public int transformOutput(ItemStack matchedItemStack, ItemStack material)
{
int consumeAmountMultiplier=1;
diff --git a/ihl/recipes/RecipeInputFluidDictionary.java b/ihl/recipes/RecipeInputFluidDictionary.java index 46c51eb..e1581c3 100644 --- a/ihl/recipes/RecipeInputFluidDictionary.java +++ b/ihl/recipes/RecipeInputFluidDictionary.java @@ -1,12 +1,8 @@ package ihl.recipes; -import java.util.Arrays; import java.util.List; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; -import ic2.api.recipe.IRecipeInput; import ihl.IHLMod; public class RecipeInputFluidDictionary implements IRecipeInputFluid @@ -39,5 +35,12 @@ public class RecipeInputFluidDictionary implements IRecipeInputFluid public List<FluidStack> getInputs() { return IHLMod.fluidDictionary.getFluids(input); } + + @Override + public String toString() + { + return "RInputFluidStackDictionary<" + this.amount + "x" + this.input; + } + } diff --git a/ihl/recipes/RecipeInputFluidStack.java b/ihl/recipes/RecipeInputFluidStack.java index a7b5d0e..e4c116d 100644 --- a/ihl/recipes/RecipeInputFluidStack.java +++ b/ihl/recipes/RecipeInputFluidStack.java @@ -3,10 +3,8 @@ package ihl.recipes; import java.util.Arrays; import java.util.List; -import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; -import ic2.api.recipe.IRecipeInput; public class RecipeInputFluidStack implements IRecipeInputFluid { @@ -37,5 +35,11 @@ public class RecipeInputFluidStack implements IRecipeInputFluid public List<FluidStack> getInputs() { return Arrays.asList(new FluidStack[] {new FluidStack(fluid,amount)}); } + + @Override + public String toString() + { + return "RInputFluidStack<" + this.amount + "x" + this.fluid.getName(); + } } diff --git a/ihl/recipes/RecipeInputObjectInstance.java b/ihl/recipes/RecipeInputObjectInstance.java index eeadc5c..8648e72 100644 --- a/ihl/recipes/RecipeInputObjectInstance.java +++ b/ihl/recipes/RecipeInputObjectInstance.java @@ -5,8 +5,6 @@ import java.util.List; import net.minecraft.item.ItemStack; import ic2.api.recipe.IRecipeInput; -import ihl.interfaces.IWire; -import ihl.items_blocks.FlexibleCableItem; import ihl.utils.IHLUtils; public class RecipeInputObjectInstance implements IRecipeInput diff --git a/ihl/recipes/RecipeInputOreDictionaryList.java b/ihl/recipes/RecipeInputOreDictionaryList.java index 3c4b551..572f15b 100644 --- a/ihl/recipes/RecipeInputOreDictionaryList.java +++ b/ihl/recipes/RecipeInputOreDictionaryList.java @@ -35,14 +35,14 @@ public class RecipeInputOreDictionaryList implements IRecipeInput this.meta = meta;
}
- @Override
+ @Override
public boolean matches(ItemStack subject)
{
- List inputs = this.getOres();
+ List<ItemStack> inputs = this.getOres();
boolean useOreStackMeta = this.meta == null;
Item subjectItem = subject.getItem();
int subjectMeta = subject.getItemDamage();
- Iterator i$ = inputs.iterator();
+ Iterator<ItemStack> i$ = inputs.iterator();
Item oreItem;
int metaRequired;
@@ -59,7 +59,7 @@ public class RecipeInputOreDictionaryList implements IRecipeInput return false;
}
- oreStack = (ItemStack)i$.next();
+ oreStack = i$.next();
oreItem = oreStack.getItem();
}
while (oreItem == null);
@@ -82,13 +82,13 @@ public class RecipeInputOreDictionaryList implements IRecipeInput @Override
public List<ItemStack> getInputs()
{
- List ores = this.getOres();
+ List<ItemStack> ores = this.getOres();
boolean hasInvalidEntries = false;
- Iterator ret = ores.iterator();
+ Iterator<ItemStack> ret = ores.iterator();
while (ret.hasNext())
{
- ItemStack i$ = (ItemStack)ret.next();
+ ItemStack i$ = ret.next();
if (i$.getItem() == null)
{
@@ -103,12 +103,12 @@ public class RecipeInputOreDictionaryList implements IRecipeInput }
else
{
- ArrayList ret1 = new ArrayList(ores.size());
- Iterator i$1 = ores.iterator();
+ ArrayList<ItemStack> ret1 = new ArrayList<ItemStack>(ores.size());
+ Iterator<ItemStack> i$1 = ores.iterator();
while (i$1.hasNext())
{
- ItemStack stack = (ItemStack)i$1.next();
+ ItemStack stack = i$1.next();
if (stack.getItem() != null)
{
@@ -134,10 +134,10 @@ public class RecipeInputOreDictionaryList implements IRecipeInput }
else
{
- this.ores = new ArrayList();
+ this.ores = new ArrayList<ItemStack>();
for(int i=0;i<this.input.length;i++)
{
- ArrayList ret = OreDictionary.getOres(this.input[i]);
+ ArrayList<ItemStack> ret = OreDictionary.getOres(this.input[i]);
if (ret != OreDictionary.EMPTY_LIST)
{
this.ores.addAll(ret);
diff --git a/ihl/recipes/UniversalRecipeInput.java b/ihl/recipes/UniversalRecipeInput.java index f0b42e2..1d2b06c 100644 --- a/ihl/recipes/UniversalRecipeInput.java +++ b/ihl/recipes/UniversalRecipeInput.java @@ -15,29 +15,16 @@ import net.minecraftforge.fluids.FluidStack; public class UniversalRecipeInput{
- private final List<IRecipeInputFluid> fluidInputs=new ArrayList();
- private final List<IRecipeInput> itemInputs=new ArrayList();
- private boolean sharp=true;
- private int temperatureMin = 273;
- private int temperatureMax = Integer.MAX_VALUE;
- private float speedFactor=-1.0f;//=-Ea/R (k=k0*exp(-Ea/(RT)))
+ private final List<IRecipeInputFluid> fluidInputs=new ArrayList<IRecipeInputFluid>();
+ private final List<IRecipeInput> itemInputs=new ArrayList<IRecipeInput>();
private int multiplier=Integer.MAX_VALUE;
-
- public UniversalRecipeInput(List fluidInputs1, List itemInputs1, boolean sharp1)
- {
- this(fluidInputs1, itemInputs1);
- this.sharp=false;
- }
-
- public UniversalRecipeInput(List fluidInputs1, List itemInputs1)
+ public UniversalRecipeInput(Object[] fluidStacks, Object[] iRecipeInputs)
{
- if(fluidInputs1!=null)
+ if(fluidStacks!=null)
{
- Iterator ifluidInputs1 = fluidInputs1.iterator();
- while(ifluidInputs1.hasNext())
+ for(Object material:fluidStacks)
{
- Object material = ifluidInputs1.next();
if(material==null)
{
throw new NullPointerException("Recipe input cannot be null!");
@@ -52,12 +39,10 @@ public class UniversalRecipeInput{ }
}
}
- if(itemInputs1!=null)
+ if(iRecipeInputs!=null)
{
- Iterator iitemInputs1 = itemInputs1.iterator();
- while(iitemInputs1.hasNext())
+ for(Object material:iRecipeInputs)
{
- Object material = iitemInputs1.next();
if(material==null)
{
throw new NullPointerException("Recipe input cannot be null!");
@@ -103,13 +88,13 @@ public class UniversalRecipeInput{ public boolean matches(UniversalRecipeInput input) {
List<IRecipeInput> rInputs = input.getItemInputs();
Iterator<IRecipeInput> ii = rInputs.iterator();
- List<ItemStack> rInputsItems = new ArrayList();
+ List<ItemStack> rInputsItems = new ArrayList<ItemStack>();
while(ii.hasNext())
{
IRecipeInput is = ii.next();
rInputsItems.add(is.getInputs().get(0));
}
- List<FluidStack> rInputsFluids = new ArrayList();
+ List<FluidStack> rInputsFluids = new ArrayList<FluidStack>();
List<IRecipeInputFluid> rInputsF = input.getFluidInputs();
Iterator<IRecipeInputFluid> iiF = rInputsF.iterator();
while(iiF.hasNext())
@@ -226,13 +211,13 @@ public class UniversalRecipeInput{ public boolean adjustAmounts(UniversalRecipeInput input, boolean doAdjustAmounts) {
List<IRecipeInput> rInputs = input.getItemInputs();
Iterator<IRecipeInput> ii = rInputs.iterator();
- List<ItemStack> rInputsItems = new ArrayList();
+ List<ItemStack> rInputsItems = new ArrayList<ItemStack>();
while(ii.hasNext())
{
IRecipeInput is = ii.next();
rInputsItems.add(is.getInputs().get(0));
}
- List<FluidStack> rInputsFluids = new ArrayList();
+ List<FluidStack> rInputsFluids = new ArrayList<FluidStack>();
List<IRecipeInputFluid> rInputsF = input.getFluidInputs();
Iterator<IRecipeInputFluid> iiF = rInputsF.iterator();
while(iiF.hasNext())
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<UniversalRecipeInput, UniversalRecipeOutput> recipes = new HashMap();
+ private final Map<UniversalRecipeInput, UniversalRecipeOutput> recipes = new HashMap<UniversalRecipeInput, UniversalRecipeOutput>();
+ private final Map<String, UniversalRecipeInput> keywordMap = new HashMap<String, UniversalRecipeInput>();
public void addRecipe(UniversalRecipeInput input, UniversalRecipeOutput output)
{
@@ -41,31 +42,53 @@ public class UniversalRecipeManager { }
}
- Iterator var8 = this.recipes.keySet().iterator();
+ Iterator<UniversalRecipeInput> var8 = this.recipes.keySet().iterator();
while (var8.hasNext())
{
UniversalRecipeInput existingInput = (UniversalRecipeInput)var8.next();
if (existingInput.matches(input))
{
- Iterator<IRecipeInput> ilist1 = existingInput.getItemInputs().iterator();
- Iterator<IRecipeInput> ilist2 = input.getItemInputs().iterator();
- while(ilist1.hasNext())
+ StringBuffer ssError =new StringBuffer(255);
+ ssError.append("Ambiguous recipe. \n");
+ ssError.append("Existing input: \n");
+ Iterator<IRecipeInput> iii1 = existingInput.getItemInputs().iterator();
+ Iterator<IRecipeInputFluid> 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<IRecipeInput> iii2 = input.getItemInputs().iterator();
+ Iterator<IRecipeInputFluid> 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<FluidStack> fluidInputs, List<ItemStack> itemInputs, boolean adjustInput, boolean inputAffectOutput)
{
@@ -75,14 +98,14 @@ public class UniversalRecipeManager { }
else
{
- Iterator i$ = this.recipes.entrySet().iterator();
+ Iterator<Entry<UniversalRecipeInput, UniversalRecipeOutput>> i$ = this.recipes.entrySet().iterator();
while (true)
{
if (i$.hasNext())
{
- Entry entry = (Entry)i$.next();
- UniversalRecipeInput recipeInput = (UniversalRecipeInput)entry.getKey();
+ Entry<UniversalRecipeInput, UniversalRecipeOutput> 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<FluidStack> fluidInputs1, List<ItemStack> itemInputs1) {
{
- Iterator i$ = this.recipes.entrySet().iterator();
+ Iterator<Entry<UniversalRecipeInput, UniversalRecipeOutput>> i$ = this.recipes.entrySet().iterator();
while (true)
{
if (i$.hasNext())
{
- Entry entry = (Entry)i$.next();
- UniversalRecipeInput recipeInput = (UniversalRecipeInput)entry.getKey();
+ Entry<UniversalRecipeInput, UniversalRecipeOutput> 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<FluidStack> fluidInputs = IHLUtils.convertRecipeInputToFluidStackList(uRecipeInput.getFluidInputs());
List<ItemStack> itemInputs = IHLUtils.convertRecipeInputToItemStackList(uRecipeInput.getItemInputs());
{
- Iterator i$ = this.recipes.entrySet().iterator();
+ Iterator<Entry<UniversalRecipeInput, UniversalRecipeOutput>> 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<UniversalRecipeInput, UniversalRecipeOutput> 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<Entry<UniversalRecipeInput, UniversalRecipeOutput>> 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<UniversalRecipeInput, UniversalRecipeOutput> entry = i$.next();
+ UniversalRecipeOutput recipeOutput = entry.getValue();
+ if (recipeOutputHasCommonEntries(recipeOutput,uRecipeOutput))
+ {
+ i$.remove();
+ }
}
}
diff --git a/ihl/recipes/UniversalRecipeOutput.java b/ihl/recipes/UniversalRecipeOutput.java index bda2bcf..17c20e4 100644 --- a/ihl/recipes/UniversalRecipeOutput.java +++ b/ihl/recipes/UniversalRecipeOutput.java @@ -9,24 +9,22 @@ import net.minecraftforge.fluids.FluidStack; public class UniversalRecipeOutput{
- private final List<FluidStack> fluidOutputs=new ArrayList();
- private final List<RecipeOutputItemStack> itemOutputs=new ArrayList();
+ private final List<FluidStack> fluidOutputs=new ArrayList<FluidStack>();
+ private final List<RecipeOutputItemStack> itemOutputs=new ArrayList<RecipeOutputItemStack>();
private final int time;
public final boolean specialConditions;
- public UniversalRecipeOutput(List<FluidStack> fluidOutputs1, List itemOutputs1, int time1)
+ public UniversalRecipeOutput(FluidStack[] fluidOutputs1, Object[] itemOutputs1, int time1)
{
this(fluidOutputs1, itemOutputs1, time1,false);
}
- public UniversalRecipeOutput(List<FluidStack> fluidOutputs1, List itemOutputs1, int time1, boolean specialConditions1)
+ public UniversalRecipeOutput(FluidStack[] fluidStacks, Object[] recipeOutputItemStacks, int time1, boolean specialConditions1)
{
- if(fluidOutputs1!=null)
+ if(fluidStacks!=null)
{
- Iterator<FluidStack> ioi = fluidOutputs1.iterator();
- while(ioi.hasNext())
+ for(FluidStack fStack:fluidStacks)
{
- FluidStack fStack = ioi.next();
if(fStack==null)
{
throw new NullPointerException("Recipe cannot contain null elements!");
@@ -34,12 +32,10 @@ public class UniversalRecipeOutput{ fluidOutputs.add(fStack);
}
}
- if(itemOutputs1!=null)
+ if(recipeOutputItemStacks!=null)
{
- Iterator ioi = itemOutputs1.iterator();
- while(ioi.hasNext())
+ for(Object io:recipeOutputItemStacks)
{
- Object io = ioi.next();
if(io==null)
{
throw new NullPointerException("Recipe output cannot be null!");
@@ -58,6 +54,14 @@ public class UniversalRecipeOutput{ time=time1;
}
+ public UniversalRecipeOutput(List<FluidStack> recipeOutputsFluids,
+ List<RecipeOutputItemStack> recipeOutputsRecipeOut, int time1) {
+ this.fluidOutputs.addAll(recipeOutputsFluids);
+ this.itemOutputs.addAll(recipeOutputsRecipeOut);
+ this.time=time1;
+ this.specialConditions=false;
+ }
+
public boolean matches(List<FluidStack> fluidOutputs1, List<ItemStack> itemOutputs1)
{
if(fluidOutputs.size()!=fluidOutputs1.size()||itemOutputs.size()!=itemOutputs.size())
@@ -98,27 +102,27 @@ public class UniversalRecipeOutput{ }
public UniversalRecipeOutput copyWithMultiplier(int mulipier) {
- ArrayList<FluidStack> fluidStacks = new ArrayList<FluidStack>();
- ArrayList<RecipeOutputItemStack> itemStacks = new ArrayList<RecipeOutputItemStack>();
+ FluidStack[] fluidStacks = null;
+ RecipeOutputItemStack[] itemStacks = null;
if(fluidOutputs!=null && !fluidOutputs.isEmpty())
{
- Iterator<FluidStack> fi = fluidOutputs.iterator();
- while(fi.hasNext())
+ fluidStacks = new FluidStack[fluidOutputs.size()];
+ for(int i=0;i<fluidOutputs.size();i++)
{
- FluidStack fs = fi.next();
+ FluidStack fs = fluidOutputs.get(i);
FluidStack newFs = fs.copy();
newFs.amount*=mulipier;
- fluidStacks.add(newFs);
+ fluidStacks[i]=fs;
}
}
if(itemOutputs!=null && !itemOutputs.isEmpty())
{
- Iterator<RecipeOutputItemStack> ii = itemOutputs.iterator();
- while(ii.hasNext())
+ itemStacks = new RecipeOutputItemStack[itemOutputs.size()];
+ for(int i=0;i<itemOutputs.size();i++)
{
- RecipeOutputItemStack is = ii.next();
+ RecipeOutputItemStack is = itemOutputs.get(i);
RecipeOutputItemStack newIs = is.copy(mulipier);
- itemStacks.add(newIs);
+ itemStacks[i]=newIs;
}
}
return new UniversalRecipeOutput(fluidStacks,itemStacks, getTime(),false);
|
