aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java61
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java24
3 files changed, 58 insertions, 34 deletions
diff --git a/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java b/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java
index 0b22ea3acc..fc8e84cb61 100644
--- a/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java
+++ b/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java
@@ -3,16 +3,15 @@ package gtPlusPlus.core.util.reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import net.minecraft.item.ItemStack;
-
import gregtech.api.enums.GT_Values;
import gregtech.api.interfaces.internal.IGT_RecipeAdder;
import gregtech.api.util.GT_Recipe;
-import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public final class AddGregtechRecipe {
@@ -24,53 +23,47 @@ public final class AddGregtechRecipe {
if (aRecipe.mInputs == null || aRecipe.mFluidInputs == null || aRecipe.mFluidOutputs == null || aRecipe.mOutputs == null) {
return false;
- }
-
- if (aRecipe.mInputs.length > 2 || aRecipe.mFluidInputs.length > 1 || aRecipe.mFluidOutputs.length > 1 || aRecipe.mOutputs.length > 1) {
+ }
+ if (aRecipe.mInputs.length > 2 || aRecipe.mFluidInputs.length > 1 || aRecipe.mFluidOutputs.length > 1 || aRecipe.mOutputs.length > 9) {
return false;
}
- else if (aRecipe.mInputs.length <= 0 || aRecipe.mFluidInputs.length <= 0 || aRecipe.mFluidOutputs.length <= 0 || aRecipe.mOutputs.length <= 0) {
+ else if (aRecipe.mInputs.length <= 0) {
return false;
}
int aCircuitNumber = -1;
- int aItemSlot = -1;
+ Item aCircuit = CI.getNumberedCircuit(1).getItem();
+ boolean hasCircuit = false;
- int aSlot = 0;
for (ItemStack a : aRecipe.mInputs) {
- if (a != null && a.getItem() != CI.getNumberedCircuit(1).getItem()) {
- aItemSlot = aSlot;
- }
- else {
- aSlot++;
+ if (a != null && a.getItem() == aCircuit) {
+ hasCircuit = true;
+ aCircuitNumber = a.getItemDamage();
+ break;
}
}
- for (int i=0;i<25;i++) {
- ItemStack aTest = CI.getNumberedCircuit(i);
- for (ItemStack a : aRecipe.mInputs) {
- if (a != null && GT_Utility.areStacksEqual(a, aTest)) {
- aCircuitNumber = i;
- break;
- }
- }
+ ItemStack aInputItem = null;
+ if (!hasCircuit || aCircuitNumber < 1) {
+ return false;
}
- if (aCircuitNumber < 0) {
- return false;
+ for (ItemStack a : aRecipe.mInputs) {
+ if (a != null && a.getItem() != aCircuit) {
+ aInputItem = a;
+ break;
+ }
}
-
return CORE.RA.addCokeOvenRecipe(
- aRecipe.mInputs[aItemSlot],
- ItemUtils.getGregtechCircuit(aCircuitNumber),
- aRecipe.mFluidInputs[0],
- aRecipe.mFluidOutputs[0],
- aRecipe.mOutputs[0],
- aModifiedTime,
- aRecipe.mEUt);
-
-
+ aCircuitNumber,
+ aInputItem,
+ aRecipe.mFluidInputs,
+ aRecipe.mFluidOutputs,
+ aRecipe.mOutputs,
+ aModifiedTime,
+ aRecipe.mEUt);
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
index b4091cb42f..945ff7bf0e 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java
@@ -22,6 +22,13 @@ public interface IGregtech_RecipeAdder {
//public boolean addCokeOvenRecipe(boolean aOptimize, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue);
public boolean addCokeOvenRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt);
+
+ public boolean addCokeOvenRecipe(int aCircuit, ItemStack aInput2, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUt);
+
+
+ public boolean addCokeOvenRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUt);
+
+
public boolean addFuel(ItemStack aInput1, ItemStack aOutput1, int aEU, int aType);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index 58f9f1d12c..afb0303470 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -157,6 +157,30 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
return false;
}
}
+
+
+ @Override
+ public boolean addCokeOvenRecipe(int aCircuit, ItemStack aInput2, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUt) {
+ return addCokeOvenRecipe(CI.getNumberedCircuit(aCircuit), aInput2, aFluidInputs, aFluidOutputs, aOutputs, aDuration, aEUt);
+ }
+
+ @Override
+ public boolean addCokeOvenRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, ItemStack[] aOutputs, int aDuration, int aEUt) {
+ GTPP_Recipe aSpecialRecipe = new GTPP_Recipe(
+ true,
+ new ItemStack[] { aInput1, aInput2 },
+ aOutputs,
+ null,
+ new int[] {},
+ aFluidInputs,
+ aFluidOutputs,
+ Math.max(1, aDuration),
+ Math.max(1, aEUt),
+ 0);
+ int aSize = GTPP_Recipe.GTPP_Recipe_Map.sCokeOvenRecipes.mRecipeList.size();
+ GTPP_Recipe.GTPP_Recipe_Map.sCokeOvenRecipes.add(aSpecialRecipe);
+ return GTPP_Recipe.GTPP_Recipe_Map.sCokeOvenRecipes.mRecipeList.size() > aSize;
+ }
@Override
public boolean addMatterFabricatorRecipe(final FluidStack aFluidInput, final FluidStack aFluidOutput,