summaryrefslogtreecommitdiff
path: root/ihl/recipes/UniversalRecipeInput.java
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2017-05-31 21:23:10 +0300
committerFoghrye4 <foghrye4@gmail.com>2017-05-31 21:23:10 +0300
commit50d62a1298f05d6d440a5bc261a0fdf9ffece893 (patch)
treea23ad25c213978306a5c9f5e747566b01802078b /ihl/recipes/UniversalRecipeInput.java
parentec543445cec03fb1d638fd8aab87daebb3b1c534 (diff)
energy net fix attempt
Diffstat (limited to 'ihl/recipes/UniversalRecipeInput.java')
-rw-r--r--ihl/recipes/UniversalRecipeInput.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/ihl/recipes/UniversalRecipeInput.java b/ihl/recipes/UniversalRecipeInput.java
index 2ed546a..7cdb386 100644
--- a/ihl/recipes/UniversalRecipeInput.java
+++ b/ihl/recipes/UniversalRecipeInput.java
@@ -1,14 +1,18 @@
package ihl.recipes;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import ic2.api.recipe.IRecipeInput;
import ic2.api.recipe.RecipeInputItemStack;
import ic2.api.recipe.RecipeInputOreDict;
import ihl.interfaces.IWire;
import ihl.utils.IHLUtils;
+import ihl.worldgen.ores.IHLFluid;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
@@ -30,6 +34,7 @@ public class UniversalRecipeInput {
}
}
}
+ sortFluidsByDensity();
if (iRecipeInputs != null) {
for (Object material : iRecipeInputs) {
if (material == null) {
@@ -51,6 +56,37 @@ public class UniversalRecipeInput {
}
}
}
+
+ public void sortFluidsByDensity()
+ {
+ Map<Integer, IRecipeInputFluid> sortMap = new HashMap<Integer, IRecipeInputFluid>();
+ int[] keysArray = new int[fluidInputs.size()];
+ Iterator<IRecipeInputFluid> fli = fluidInputs.iterator();
+ while(fli.hasNext())
+ {
+ IRecipeInputFluid rinput = fli.next();
+ FluidStack fluid=rinput.getInputs().get(0);
+ if(fluid==null)
+ {
+ return;
+ }
+ int key = Math.round(IHLFluid.getRealDensity(fluid.getFluid())*100F);
+ while(sortMap.containsKey(key))
+ {
+ key++;
+ }
+ sortMap.put(key, rinput);
+ keysArray[fluidInputs.indexOf(rinput)]=key;
+ }
+ Arrays.sort(keysArray);
+ List<IRecipeInputFluid> newFluidList = new ArrayList<IRecipeInputFluid>();
+ for(int i=keysArray.length-1;i>=0;i--)
+ {
+ newFluidList.add(sortMap.get(keysArray[i]));
+ }
+ this.fluidInputs.clear();
+ this.fluidInputs.addAll(newFluidList);
+ }
public boolean matches(List<FluidStack> fluidInputs1, List<ItemStack> itemInputs1) {
return this.matches(fluidInputs1, itemInputs1, false);