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.java53
-rw-r--r--src/Java/gregtech/api/util/GasSpargingRecipeMap.java35
2 files changed, 88 insertions, 0 deletions
diff --git a/src/Java/gregtech/api/util/GasSpargingRecipe.java b/src/Java/gregtech/api/util/GasSpargingRecipe.java
new file mode 100644
index 0000000000..7bbebf0bcf
--- /dev/null
+++ b/src/Java/gregtech/api/util/GasSpargingRecipe.java
@@ -0,0 +1,53 @@
+package gregtech.api.util;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+
+public class GasSpargingRecipe {
+
+ public final FluidStack mInputGas;
+ public final int[] mMaxOutputQuantity;
+ public final FluidStack[] mFluidInputs;
+ public final FluidStack[] mFluidOutputs;
+ public final ItemStack[] mInputs;
+ public final ItemStack[] mOutputs;
+
+ public GasSpargingRecipe(FluidStack aSpargeGas, FluidStack[] aOutputs, int[] aMaxOutputQuantity) {
+ mInputGas = aSpargeGas;
+ mFluidInputs = new FluidStack[] {mInputGas};
+ mFluidOutputs = aOutputs;
+ mMaxOutputQuantity = aMaxOutputQuantity;
+ mInputs = new ItemStack[] {GT_Utility.getFluidDisplayStack(mFluidInputs[0], true)};
+ mOutputs = new ItemStack[mFluidOutputs.length];
+ for (int i=0; i<mFluidOutputs.length;i++) {
+ mOutputs[i] = GT_Utility.getFluidDisplayStack(mFluidOutputs[i], true);
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof GasSpargingRecipe) {
+ GasSpargingRecipe i = (GasSpargingRecipe) o;
+ this.mInputGas.equals(i.mInputGas);
+ }
+ return false;
+ }
+
+ public int getMaxOutput(final int aIndex) {
+ if ((aIndex < 0) || (aIndex >= this.mMaxOutputQuantity.length)) {
+ return 10000;
+ }
+ return this.mMaxOutputQuantity[aIndex];
+ }
+
+ public boolean isValid() {
+ if (mInputGas == null || mInputGas.amount <= 0 ||
+ mFluidOutputs == null || mFluidOutputs.length < 1 ||
+ mMaxOutputQuantity == null || mMaxOutputQuantity.length < 1 ||
+ mFluidOutputs.length != mMaxOutputQuantity.length) {
+ return false;
+ }
+ return true;
+ }
+
+}
diff --git a/src/Java/gregtech/api/util/GasSpargingRecipeMap.java b/src/Java/gregtech/api/util/GasSpargingRecipeMap.java
new file mode 100644
index 0000000000..4f4bba9aca
--- /dev/null
+++ b/src/Java/gregtech/api/util/GasSpargingRecipeMap.java
@@ -0,0 +1,35 @@
+package gregtech.api.util;
+
+import static gregtech.api.enums.GT_Values.RES_PATH_GUI;
+
+import gtPlusPlus.api.objects.data.AutoMap;
+import net.minecraftforge.fluids.FluidStack;
+
+public class GasSpargingRecipeMap extends AutoMap<GasSpargingRecipe>{
+
+ public static final AutoMap<GasSpargingRecipe> mRecipes = new AutoMap<GasSpargingRecipe>();
+ public static final String mUnlocalizedName = "gtpp.recipe.lftr.sparging";
+ 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[] aOutputs, int[] aMaxOutputs) {
+ if (aSpargeGas == null || aSpargeGas.amount <= 0 ||
+ aOutputs == null || aOutputs.length < 1 ||
+ aMaxOutputs == null || aMaxOutputs.length < 1 ||
+ aOutputs.length != aMaxOutputs.length) {
+ return false;
+ }
+ int aMapSize = mRecipes.size();
+ GasSpargingRecipe aRecipe = new GasSpargingRecipe(
+ aSpargeGas,
+ aOutputs,
+ aMaxOutputs
+ );
+ mRecipes.put(aRecipe);
+ return mRecipes.size() > aMapSize;
+ }
+}
+
+