aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java4
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java5
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java15
-rw-r--r--src/Java/gtPlusPlus/core/material/ELEMENT.java2
-rw-r--r--src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java23
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java10
-rw-r--r--src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java21
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/interfaces/internal/IGregtech_RecipeAdder.java7
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java46
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java114
10 files changed, 186 insertions, 61 deletions
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
index 1fb629976a..3da3c18836 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
@@ -136,7 +136,7 @@ public class CoalTar {
private static void recipeEthylBenzineFuelsIntoHeavyFuel() {
- GT_Values.RA.addChemicalRecipe(
+ CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict("cellFuel", 9),
ItemUtils.getItemStackOfAmountFromOreDict("cellEthylbenzene", 2),
null,
@@ -144,7 +144,7 @@ public class CoalTar {
ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 11),
100,
CORE.GTNH ? 1000 : 500);
- GT_Values.RA.addChemicalRecipe(
+ CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict("cellBioDiesel", 9),
ItemUtils.getItemStackOfAmountFromOreDict("cellEthylbenzene", 2),
null,
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java b/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java
index 4f2bf877f1..1d45dec183 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/NuclearChem.java
@@ -5,6 +5,7 @@ import net.minecraft.init.Items;
import gregtech.api.enums.GT_Values;
import gtPlusPlus.core.item.ModItems;
+import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -48,7 +49,7 @@ public class NuclearChem {
}
private static void chemReator_CreateMutagen() {
- GT_Values.RA.addChemicalRecipe(
+ CORE.RA.addChemicalRecipe(
CI.getNumberedCircuit(20),
ItemUtils.getSimpleStack(Items.nether_star, 2),
FluidUtils.getMobEssence(5000),
@@ -59,7 +60,7 @@ public class NuclearChem {
}
private static void chemReactor_MutagenWithEggs() {
- GT_Values.RA.addChemicalRecipe(
+ CORE.RA.addChemicalRecipe(
CI.getNumberedCircuit(20),
ItemUtils.getSimpleStack(Items.egg, 2),
FluidUtils.getFluidStack(GeneticMutagen, 500),
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
index 6b1a006098..7b5a90a64e 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/RocketFuels.java
@@ -155,17 +155,20 @@ public class RocketFuels {
FluidStack fuelA = FluidUtils.getFluidStack("diesel", 400);
FluidStack fuelB = FluidUtils.getFluidStack("fuel", 400);
if (fuelA != null){
- GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ //GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
}
- if (fuelA == null && fuelB != null){
- GT_Values.RA.addDistilleryRecipe(23, fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ if (fuelA == null && fuelB != null){
+ //GT_Values.RA.addDistilleryRecipe(23, fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
+ GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelB, FluidUtils.getFluidStack(Kerosene, 50), 200, 64, false);
}
}
public static void createRP1(){
FluidStack fuelA = FluidUtils.getFluidStack(Kerosene, 100);
if (fuelA != null){
- GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(RP1, 25), 400, 120, false);
+ //GT_Values.RA.addDistilleryRecipe(23, fuelA, FluidUtils.getFluidStack(RP1, 25), 400, 120, false);
+ GT_Values.RA.addDistilleryRecipe(CI.getNumberedCircuit(23), fuelA, FluidUtils.getFluidStack(RP1, 50), 400, 120, false);
}
}
@@ -279,13 +282,13 @@ public class RocketFuels {
}
private static void createUnsymmetricalDimethylhydrazine() {
- GT_Values.RA.addChemicalRecipe(
+ CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict("cellHydrazine", 2),
ItemUtils.getItemStackOfAmountFromOreDict("cellFormaldehyde", 2),
FluidUtils.getFluidStack("hydrogen", 4000),
FluidUtils.getFluidStack(Unsymmetrical_Dimethylhydrazine, 1000),
- ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 2),
ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 2),
+ ItemUtils.getItemStackOfAmountFromOreDict("cellEmpty", 2),
20*60);
}
diff --git a/src/Java/gtPlusPlus/core/material/ELEMENT.java b/src/Java/gtPlusPlus/core/material/ELEMENT.java
index 888f030f56..fd8df711e9 100644
--- a/src/Java/gtPlusPlus/core/material/ELEMENT.java
+++ b/src/Java/gtPlusPlus/core/material/ELEMENT.java
@@ -154,7 +154,7 @@ public final class ELEMENT {
//GTNH Trinium Handling
if (CORE.GTNH){
//yay
- Materials a1 = MaterialUtils.getMaterialByName("Trinium");
+ Materials a1 = MaterialUtils.getMaterial("Trinium");
Materials a2 = Materials.valueOf("Trinium");
Materials a3 = Materials.get("Trinium");
Materials a4;
diff --git a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
index 68fb856417..50658ee2a2 100644
--- a/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
+++ b/src/Java/gtPlusPlus/core/recipe/RECIPES_GREGTECH.java
@@ -19,6 +19,7 @@ import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.util.minecraft.MaterialUtils;
import gtPlusPlus.core.util.reflect.AddGregtechRecipe;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
import net.minecraftforge.fluids.FluidStack;
@@ -42,7 +43,11 @@ public class RECIPES_GREGTECH {
chemicalReactorRecipes();
dehydratorRecipes();
blastFurnaceRecipes();
- largeChemReactorRecipes();
+
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ largeChemReactorRecipes();
+ }
+
fissionFuelRecipes();
autoclaveRecipes();
compressorRecipes();
@@ -501,27 +506,27 @@ public class RECIPES_GREGTECH {
private static void largeChemReactorRecipes() {
//Styrene
- GT_Values.RA.addMultiblockChemicalRecipe(
- new ItemStack[]{GT_Utility.getIntegratedCircuit(24)},
+ CORE.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{CI.getNumberedCircuit(24)},
new FluidStack[]{
FluidUtils.getFluidStack("fluid.ethylbenzene", 1000)
},
new FluidStack[]{
- Materials.Styrene.getFluid(1000),
+ MaterialUtils.getMaterial("Styrene").getFluid(1000),
Materials.Hydrogen.getGas(2000)
},
null,
30,
30);
//Short-cut Styrene
- GT_Values.RA.addMultiblockChemicalRecipe(
- new ItemStack[]{GT_Utility.getIntegratedCircuit(24)},
+ CORE.RA.addMultiblockChemicalRecipe(
+ new ItemStack[]{CI.getNumberedCircuit(24)},
new FluidStack[]{
- Materials.Ethylene.getGas(500),
- Materials.Benzene.getFluid(500)
+ MaterialUtils.getMaterial("Ethylene").getGas(500),
+ MaterialUtils.getMaterial("Benzene").getFluid(500)
},
new FluidStack[]{
- Materials.Styrene.getFluid(500),
+ MaterialUtils.getMaterial("Styrene").getFluid(500),
Materials.Hydrogen.getGas(1000)
},
null,
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
index 98b02078c6..ae43abe3c5 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
@@ -183,7 +183,7 @@ public class MaterialUtils {
}
}
- public static Materials getMaterialByName(String materialName) {
+ private static Materials getMaterialByName(String materialName) {
if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
return (Materials) EnumUtils.getValue(gregtech.api.enums.Materials.class, materialName, false);
@@ -218,6 +218,14 @@ public class MaterialUtils {
TextureSet o = (r != null && r.isPresent() && r.get() != null) ? r.get() : null;
return o;
}
+
+ public static Materials getMaterial(String aMaterialName) {
+ Materials m = gtPlusPlus.xmod.gregtech.common.StaticFields59.getMaterial(aMaterialName);
+ if (m == null) {
+ m = getMaterialByName(aMaterialName);
+ }
+ return m;
+ }
} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java b/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java
index c125e26016..92dae4e913 100644
--- a/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java
+++ b/src/Java/gtPlusPlus/plugin/sulfurchem/Core_SulfuricChemistry.java
@@ -11,6 +11,7 @@ import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import gtPlusPlus.plugin.manager.Core_Manager;
+import gtPlusPlus.xmod.gregtech.common.StaticFields59;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
@@ -97,7 +98,7 @@ public class Core_SulfuricChemistry implements IPlugin {
* Sulfur Trioxide Recipes
*/
//Air
- if (GT_Values.RA.addChemicalRecipe(
+ if (CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
ItemUtils.getItemStackOfAmountFromOreDict("cellAir", 1),
FluidUtils.getFluidStack("sulfurdioxide", 3000),
@@ -108,7 +109,7 @@ public class Core_SulfuricChemistry implements IPlugin {
16)) {
mCountAdded++;
}
- if (GT_Values.RA.addChemicalRecipe(
+ if (CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurDioxide", 3),
FluidUtils.getFluidStack("air", 1000),
@@ -120,7 +121,7 @@ public class Core_SulfuricChemistry implements IPlugin {
mCountAdded++;
}
//Oxygen
- if (GT_Values.RA.addChemicalRecipe(
+ if (CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
ItemUtils.getItemStackOfAmountFromOreDict("cellOxygen", 1),
FluidUtils.getFluidStack("sulfurdioxide", 3000),
@@ -131,7 +132,7 @@ public class Core_SulfuricChemistry implements IPlugin {
16)) {
mCountAdded++;
}
- if (GT_Values.RA.addChemicalRecipe(
+ if (CORE.RA.addChemicalRecipe(
ItemUtils.getItemStackOfAmountFromOreDict(catalyst, 0),
ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurDioxide", 3),
FluidUtils.getFluidStack("oxygen", 1000),
@@ -147,7 +148,7 @@ public class Core_SulfuricChemistry implements IPlugin {
* Sulfuric Acid Recipes
*/
- if (GT_Values.RA.addChemicalRecipe(
+ if (CORE.RA.addChemicalRecipe(
CI.getNumberedCircuit(22),
ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1),
FluidUtils.getFluidStack("water", 750),
@@ -158,7 +159,7 @@ public class Core_SulfuricChemistry implements IPlugin {
20)) {
mCountAdded++;
}
- if (GT_Values.RA.addChemicalRecipe(
+ if (CORE.RA.addChemicalRecipe(
CI.getNumberedCircuit(22),
ItemUtils.getItemStackOfAmountFromOreDict("cellWater", 3),
FluidUtils.getFluidStack("sulfurtrioxide", 4000),
@@ -204,7 +205,8 @@ public class Core_SulfuricChemistry implements IPlugin {
}
//Multi Block Recipes
- recipe : for (GT_Recipe r : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) {
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ recipe : for (GT_Recipe r : StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList) {
for (ItemStack i : r.mOutputs) {
i.stackSize = 1;
if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfurTrioxide", 1))) {
@@ -228,6 +230,7 @@ public class Core_SulfuricChemistry implements IPlugin {
continue;
}
}
+ }
return mDisabled;
}
@@ -263,7 +266,8 @@ public class Core_SulfuricChemistry implements IPlugin {
}
//Multi Block Recipes
- recipe : for (GT_Recipe r : GT_Recipe.GT_Recipe_Map.sMultiblockChemicalRecipes.mRecipeList) {
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ recipe : for (GT_Recipe r : StaticFields59.getLargeChemicalReactorRecipeMap().mRecipeList) {
for (ItemStack i : r.mOutputs) {
i.stackSize = 1;
if (ItemStack.areItemStacksEqual(i, ItemUtils.getItemStackOfAmountFromOreDict("cellSulfuricAcid", 1))) {
@@ -287,6 +291,7 @@ public class Core_SulfuricChemistry implements IPlugin {
continue;
}
}
+ }
return mDisabled;
}
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 c03a634ea2..6060554db7 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
@@ -168,4 +168,11 @@ public interface IGregtech_RecipeAdder {
public boolean addAssemblylineRecipe(ItemStack aResearchItem, int aResearchTime, ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack aOutput, int aDuration, int aEUt);
+ public boolean addChemicalRecipe(ItemStack input1, ItemStack input2, FluidStack inputFluid, FluidStack outputFluid, ItemStack output, int time, int eu);
+ public boolean addChemicalRecipe(ItemStack input1, ItemStack input2, FluidStack inputFluid, FluidStack outputFluid, ItemStack output, Object object, int time, int eu);
+ public boolean addChemicalRecipe(ItemStack input1, ItemStack input2, FluidStack inputFluid, FluidStack outputFluid, ItemStack output, ItemStack object, int time);
+
+ public boolean addMultiblockChemicalRecipe(ItemStack[] itemStacks, FluidStack[] fluidStacks, FluidStack[] fluidStacks2, ItemStack[] outputs, int time, int eu);
+
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
index 15c6a519b1..2568db32bc 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/StaticFields59.java
@@ -3,10 +3,14 @@ package gtPlusPlus.xmod.gregtech.common;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.LinkedHashMap;
+import java.util.Map;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.block.Block;
@@ -15,14 +19,19 @@ public class StaticFields59 {
public static final Field mGtBlockCasings5;
public static final Field mPreventableComponents;
public static final Field mDisabledItems;
+ public static final Field mMultiblockChemicalRecipes;
public static final Method mCalculatePollutionReduction;
-
+
+ private static final Map<String, Materials> mMaterialCache = new LinkedHashMap<String, Materials>();
+
+
//OrePrefixes
-
+
static {
mGtBlockCasings5 = getField(GregTech_API.class, "sBlockCasings5");
mPreventableComponents = getField(OrePrefixes.class, "mPreventableComponents");
mDisabledItems = getField(OrePrefixes.class, "mDisabledItems");
+ mMultiblockChemicalRecipes = getField(GT_Recipe_Map.class, "sMultiblockChemicalRecipes");
mCalculatePollutionReduction = getMethod(GT_MetaTileEntity_Hatch_Muffler.class, "calculatePollutionReduction", int.class);
}
@@ -33,7 +42,7 @@ public class StaticFields59 {
return null;
}
}
-
+
public static int calculatePollutionReducation(GT_MetaTileEntity_Hatch_Muffler h, int i) {
try {
return (int) mCalculatePollutionReduction.invoke(h, i);
@@ -41,7 +50,7 @@ public class StaticFields59 {
return 0;
}
}
-
+
public static Field getField(Class a, String b) {
try {
return ReflectionUtils.getField(a, b);
@@ -49,7 +58,7 @@ public class StaticFields59 {
return null;
}
}
-
+
public static Method getMethod(Class a, String b, Class... params) {
return ReflectionUtils.getMethod(a, b, params);
}
@@ -69,6 +78,29 @@ public class StaticFields59 {
return false;
}
}
-
-
+
+ public static synchronized final GT_Recipe_Map getLargeChemicalReactorRecipeMap() {
+ try {
+ return (GT_Recipe_Map) mMultiblockChemicalRecipes.get(null);
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ return null;
+ }
+ }
+
+ public static Materials getMaterial(String aMaterialName) {
+ Materials m = mMaterialCache.get(aMaterialName);
+ if (m != null) {
+ return m;
+ }
+ else {
+ m = Materials.get(aMaterialName);
+ if (m != null) {
+ mMaterialCache.put(aMaterialName, m);
+ return m;
+ }
+ return null;
+ }
+ }
+
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
index b7a69d4f87..b1b450040b 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/recipes/GregtechRecipeAdder.java
@@ -652,35 +652,52 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
return GT_Values.RA.addAssemblerRecipe((ItemStack) aInput1, (ItemStack) aInput2, aInputFluid, aOutput, a1, a2);
}
}
-
+
/*
* Reflection Based Recipe Additions with Fallbacks
*/
private static final Method mSixSlotAssembly;
private static final Method mAssemblyLine;
+ private static final Method[] mChemicalRecipe = new Method[3];
+ private static final Method mLargeChemReactor;
static {
- if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || CORE.GTNH) {
- //Get GT's RA class;
- Class<? extends IGT_RecipeAdder> clazz = GT_Values.RA.getClass();
+
+ //Get GT's RA class;
+ Class<? extends IGT_RecipeAdder> clazz = GT_Values.RA.getClass();
+
+ mChemicalRecipe[0] = ReflectionUtils.getMethod(clazz, "addChemicalRecipe", ItemStack.class, ItemStack.class, FluidStack.class, FluidStack.class, ItemStack.class, int.class);
+
+
+ if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || CORE.GTNH) {
//6 Slot Assembler
mSixSlotAssembly = ReflectionUtils.getMethod(clazz, "addAssemblerRecipe", ItemStack[].class, FluidStack.class, ItemStack.class, int.class, int.class);
//Assembly Line
mAssemblyLine = ReflectionUtils.getMethod(clazz, "addAssemblylineRecipe", ItemStack.class, int.class, ItemStack[].class, FluidStack[].class, ItemStack.class, int.class, int.class);
-
+
+ mChemicalRecipe[1] = ReflectionUtils.getMethod(clazz, "addChemicalRecipe", ItemStack.class, ItemStack.class, FluidStack.class, FluidStack.class, ItemStack.class, int.class, int.class);
+ mChemicalRecipe[2] = ReflectionUtils.getMethod(clazz, "addChemicalRecipe", ItemStack.class, ItemStack.class, FluidStack.class, FluidStack.class, ItemStack.class, ItemStack.class, int.class);
+
+ mLargeChemReactor = ReflectionUtils.getMethod(clazz, "addMultiblockChemicalRecipe", ItemStack[].class, FluidStack[].class, FluidStack[].class, ItemStack[].class, int.class, int.class);
+
+
+
}
else {
mSixSlotAssembly = null;
mAssemblyLine = null;
+ mLargeChemReactor = null;
}
+
+
}
-
-
-
-
-
-
+
+
+
+
+
+
public boolean addSixSlotAssemblingRecipe(ItemStack[] aInputs, FluidStack aInputFluid, ItemStack aOutput1, int aDuration, int aEUt) {
if (CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK || CORE.GTNH) {
if (mSixSlotAssembly != null) {
@@ -697,17 +714,17 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
}
public boolean addAssemblylineRecipe(ItemStack aResearchItem, int aResearchTime, ItemStack[] aInputs, FluidStack[] aFluidInputs, ItemStack aOutput, int aDuration, int aEUt) {
- if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
- if (aInputs.length < 6 && aFluidInputs.length < 2) {
- ItemStack[] aInputStack = new ItemStack[] {aResearchItem, aInputs[0], aInputs[1], aInputs[2], aInputs[3], aInputs[4]};
- return CORE.RA.addSixSlotAssemblingRecipe(aInputStack, aFluidInputs[0], aOutput, aDuration, aEUt);
- }
- return false;
- }
- else {
- if ((aResearchItem==null)||(aResearchTime<=0)||(aInputs == null) || (aOutput == null) || aInputs.length>15 || aInputs.length<4) {
- return false;
- }
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ if (aInputs.length < 6 && aFluidInputs.length < 2) {
+ ItemStack[] aInputStack = new ItemStack[] {aResearchItem, aInputs[0], aInputs[1], aInputs[2], aInputs[3], aInputs[4]};
+ return CORE.RA.addSixSlotAssemblingRecipe(aInputStack, aFluidInputs[0], aOutput, aDuration, aEUt);
+ }
+ return false;
+ }
+ else {
+ if ((aResearchItem==null)||(aResearchTime<=0)||(aInputs == null) || (aOutput == null) || aInputs.length>15 || aInputs.length<4) {
+ return false;
+ }
else {
if (mAssemblyLine != null) {
try {
@@ -732,13 +749,57 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
return false;
}
}
- }
-
-
+ }
+
+
}
+ public boolean addChemicalRecipe(ItemStack input1, ItemStack input2, FluidStack inputFluid, FluidStack outputFluid, ItemStack output, int time, int eu){
+ return addChemicalRecipe(input1, input2, inputFluid, outputFluid, output, null, time, eu);
+ }
+
+ @Override
+ public boolean addChemicalRecipe(ItemStack input1, ItemStack input2, FluidStack inputFluid, FluidStack outputFluid, ItemStack output, Object object, int time, int eu) {
+ try {
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ return (boolean) mChemicalRecipe[0].invoke(GT_Values.RA, input1, input2, inputFluid, outputFluid, output, time);
+ }
+ else {
+ return (boolean) mChemicalRecipe[1].invoke(GT_Values.RA, input1, input2, inputFluid, outputFluid, output, time, eu);
+ }
+ }
+ catch (Throwable t) {
+ return false;
+ }
+ }
+ @Override
+ public boolean addChemicalRecipe(ItemStack input1, ItemStack input2, FluidStack inputFluid, FluidStack outputFluid, ItemStack output, ItemStack output2, int time) {
+ try {
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ return (boolean) mChemicalRecipe[0].invoke(GT_Values.RA, input1, input2, inputFluid, outputFluid, output, time);
+ }
+ else {
+ return (boolean) mChemicalRecipe[2].invoke(GT_Values.RA, input1, input2, inputFluid, outputFluid, output, output2, time);
+ }
+ }
+ catch (Throwable t) {
+ return false;
+ }
+ }
+
+ @Override
+ public boolean addMultiblockChemicalRecipe(ItemStack[] itemStacks, FluidStack[] fluidStacks, FluidStack[] fluidStacks2, ItemStack[] outputs, int time, int eu) {
+ if (!CORE.MAIN_GREGTECH_5U_EXPERIMENTAL_FORK) {
+ return false;
+ }
+ try {
+ return (boolean) mLargeChemReactor.invoke(GT_Values.RA, itemStacks, fluidStacks, fluidStacks2, outputs, time, eu);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ return false;
+ }
+ }
@@ -769,4 +830,7 @@ public class GregtechRecipeAdder implements IGregtech_RecipeAdder {
return itemsNull && fluidsNull;
}
+
+
+
}