aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gregtech/api/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gregtech/api/util')
-rw-r--r--src/Java/gregtech/api/util/GasSpargingRecipe.java45
-rw-r--r--src/Java/gregtech/api/util/GasSpargingRecipeMap.java17
2 files changed, 49 insertions, 13 deletions
diff --git a/src/Java/gregtech/api/util/GasSpargingRecipe.java b/src/Java/gregtech/api/util/GasSpargingRecipe.java
index 86e52e19de..493c31dc65 100644
--- a/src/Java/gregtech/api/util/GasSpargingRecipe.java
+++ b/src/Java/gregtech/api/util/GasSpargingRecipe.java
@@ -1,32 +1,31 @@
package gregtech.api.util;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.util.data.ArrayUtils;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.MaterialUtils;
-import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public class GasSpargingRecipe implements Comparable<GasSpargingRecipe> {
public final FluidStack mInputGas;
public final FluidStack mInputSpentFuel;
+ public final FluidStack mOutputSpargedFuel;
public final int[] mMaxOutputQuantity;
public final FluidStack[] mFluidInputs;
public final FluidStack[] mFluidOutputs;
- public final ItemStack[] mInputs;
- public final ItemStack[] mOutputs;
public final int mDuration;
public final int mEUt;
- public GasSpargingRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel, FluidStack[] aOutputs, int[] aMaxOutputQuantity) {
+ public GasSpargingRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel, FluidStack aSpargedFuel, FluidStack[] aOutputs, int[] aMaxOutputQuantity) {
mInputGas = aSpargeGas;
mInputSpentFuel = aSpentFuel;
+ mOutputSpargedFuel = aSpargedFuel;
mFluidInputs = new FluidStack[] {mInputGas, mInputSpentFuel};
+ aOutputs = ArrayUtils.insertElementAtIndex(aOutputs, 0, aSpargeGas);
+ aOutputs = ArrayUtils.insertElementAtIndex(aOutputs, 1, aSpargedFuel);
mFluidOutputs = aOutputs;
mMaxOutputQuantity = aMaxOutputQuantity;
- mInputs = new ItemStack[] {GT_Utility.getFluidDisplayStack(mFluidInputs[0], true), GT_Utility.getFluidDisplayStack(mFluidInputs[1], true)};
- mOutputs = new ItemStack[mFluidOutputs.length];
- for (int i=0; i<mFluidOutputs.length;i++) {
- mOutputs[i] = GT_Utility.getFluidDisplayStack(mFluidOutputs[i], true);
- }
mDuration = 20 * 60 * 5;
mEUt = MaterialUtils.getVoltageForTier(3);
}
@@ -42,7 +41,14 @@ public class GasSpargingRecipe implements Comparable<GasSpargingRecipe> {
return false;
}
- public int getMaxOutput(final int aIndex) {
+ public int getMaxOutput(int aIndex) {
+ if (aIndex == 0) {
+ return mInputGas.amount * 100;
+ }
+ else if (aIndex == 1) {
+ return mOutputSpargedFuel.amount * 100;
+ }
+ aIndex -= 2;
if ((aIndex < 0) || (aIndex >= this.mMaxOutputQuantity.length)) {
return 10000;
}
@@ -59,6 +65,15 @@ public class GasSpargingRecipe implements Comparable<GasSpargingRecipe> {
}
return true;
}
+
+ public boolean containsInputs(FluidStack aSpargeGas, FluidStack aSpentFuel) {
+ if (aSpargeGas != null && aSpargeGas.getFluid().equals(this.mInputGas.getFluid())) {
+ if (aSpentFuel != null && aSpentFuel.getFluid().equals(this.mInputSpentFuel.getFluid())) {
+ return true;
+ }
+ }
+ return false;
+ }
@Override
public int compareTo(GasSpargingRecipe o) {
@@ -70,5 +85,15 @@ public class GasSpargingRecipe implements Comparable<GasSpargingRecipe> {
return -1;
}
}
+
+ public String[] getRecipeInfo() {
+ AutoMap<String> result = new AutoMap<String>();
+ result.put("Input "+ItemUtils.getArrayStackNames(mFluidInputs));
+ result.put("Output "+ItemUtils.getArrayStackNames(mFluidOutputs));
+ result.put("Duration: "+mDuration);
+ result.put("EU/t: "+mEUt);
+ String s[] = result.toArray();
+ return s;
+ }
}
diff --git a/src/Java/gregtech/api/util/GasSpargingRecipeMap.java b/src/Java/gregtech/api/util/GasSpargingRecipeMap.java
index bf12f4dc79..6e60cc7ac3 100644
--- a/src/Java/gregtech/api/util/GasSpargingRecipeMap.java
+++ b/src/Java/gregtech/api/util/GasSpargingRecipeMap.java
@@ -12,11 +12,12 @@ public class GasSpargingRecipeMap extends AutoMap<GasSpargingRecipe>{
public static final String mNEIName = mUnlocalizedName;
public static final String mNEIDisplayName = "LFTR Gas Sparging";
public static final String mNEIGUIPath = RES_PATH_GUI + "basicmachines/FissionFuel.png";
-
-
- public static boolean addRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel, FluidStack[] aOutputs, int[] aMaxOutputs) {
+
+
+ public static boolean addRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel, FluidStack aSpargedFuel, FluidStack[] aOutputs, int[] aMaxOutputs) {
if (aSpargeGas == null || aSpargeGas.amount <= 0 ||
aSpentFuel == null || aSpentFuel.amount <= 0 ||
+ aSpargedFuel == null || aSpargedFuel.amount <= 0 ||
aOutputs == null || aOutputs.length < 1 ||
aMaxOutputs == null || aMaxOutputs.length < 1 ||
aOutputs.length != aMaxOutputs.length) {
@@ -26,12 +27,22 @@ public class GasSpargingRecipeMap extends AutoMap<GasSpargingRecipe>{
GasSpargingRecipe aRecipe = new GasSpargingRecipe(
aSpargeGas,
aSpentFuel,
+ aSpargedFuel,
aOutputs,
aMaxOutputs
);
mRecipes.put(aRecipe);
return mRecipes.size() > aMapSize;
}
+
+ public static GasSpargingRecipe findRecipe(FluidStack aSpargeGas, FluidStack aSpentFuel) {
+ for (GasSpargingRecipe aRecipe : mRecipes) {
+ if (aRecipe.containsInputs(aSpargeGas, aSpentFuel)) {
+ return aRecipe;
+ }
+ }
+ return null;
+ }
}