aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus')
-rw-r--r--src/Java/gtPlusPlus/api/interfaces/RunnableWithInfo.java12
-rw-r--r--src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java12
-rw-r--r--src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java3
-rw-r--r--src/Java/gtPlusPlus/core/material/MaterialGenerator.java65
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java11
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java5
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Base.java16
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java19
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java13
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java61
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java11
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java12
-rw-r--r--src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java3
-rw-r--r--src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java5
19 files changed, 222 insertions, 78 deletions
diff --git a/src/Java/gtPlusPlus/api/interfaces/RunnableWithInfo.java b/src/Java/gtPlusPlus/api/interfaces/RunnableWithInfo.java
new file mode 100644
index 0000000000..4f4b9d7acd
--- /dev/null
+++ b/src/Java/gtPlusPlus/api/interfaces/RunnableWithInfo.java
@@ -0,0 +1,12 @@
+package gtPlusPlus.api.interfaces;
+
+public interface RunnableWithInfo<V> extends Runnable {
+
+ public V getInfoData();
+
+ default public Class<?> getInfoDataType() {
+ return getInfoData().getClass();
+ }
+
+
+}
diff --git a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
index 7f35c3b9b9..efbb4add7e 100644
--- a/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
+++ b/src/Java/gtPlusPlus/core/handler/COMPAT_HANDLER.java
@@ -11,12 +11,14 @@ import net.minecraft.item.ItemStack;
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_OreDictUnificator;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.common.compat.*;
import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.recipe.*;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -173,9 +175,15 @@ public class COMPAT_HANDLER {
//Add hand-made recipes
RECIPES_GREGTECH.run();
//Add autogenerated Recipes from Item Components
- for (Set<Runnable> m : MaterialGenerator.mRecipeMapsToGenerate) {
- for (Runnable r : m) {
+ for (Set<RunnableWithInfo<Material>> m : MaterialGenerator.mRecipeMapsToGenerate) {
+ for (RunnableWithInfo<Material> r : m) {
+ try {
r.run();
+ }
+ catch (Throwable t) {
+ t.printStackTrace();
+ Logger.INFO("[ERROR] "+r.getInfoData().getLocalizedName()+" recipes failed to generated.");
+ }
}
}
RecipeGen_Recycling.executeGenerators();
diff --git a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
index f87c5a9ead..2052a8d910 100644
--- a/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
+++ b/src/Java/gtPlusPlus/core/item/chemistry/CoalTar.java
@@ -12,6 +12,7 @@ import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.item.base.BaseItemComponent;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
@@ -62,7 +63,7 @@ public class CoalTar {
else {
Toluene = FluidUtils.getFluidStack("liquid_toluene", 1000).getFluid();
Item itemCellToluene = new BaseItemComponent("Toluene", "Toluene", new short[]{140, 70, 20, 100});
- GT_Values.RA.addFluidCannerRecipe(ItemUtils.getEmptyCell(), ItemUtils.getSimpleStack(itemCellToluene), FluidUtils.getFluidStack("liquid_toluene", 1000), null);
+ MaterialGenerator.addFluidCannerRecipe(ItemUtils.getEmptyCell(), ItemUtils.getSimpleStack(itemCellToluene), FluidUtils.getFluidStack("liquid_toluene", 1000), null);
}
//Create Coal Tar
diff --git a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
index f1155c33f5..256e78a698 100644
--- a/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
+++ b/src/Java/gtPlusPlus/core/material/MaterialGenerator.java
@@ -4,7 +4,13 @@ import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.Recipe_GT;
+
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.block.base.BasicBlock.BlockTypes;
@@ -29,21 +35,45 @@ import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.gregtech.loaders.*;
+import net.minecraftforge.fluids.FluidStack;
public class MaterialGenerator {
- public static final AutoMap<Set<Runnable>> mRecipeMapsToGenerate = new AutoMap<Set<Runnable>>();
+ public static final AutoMap<Set<RunnableWithInfo<Material>>> mRecipeMapsToGenerate = new AutoMap<Set<RunnableWithInfo<Material>>>();
+
+ @SuppressWarnings("unused")
+ private static volatile Item temp;
+ @SuppressWarnings("unused")
+ private static volatile Block tempBlock;
- static {
- mRecipeMapsToGenerate.put(RecipeGen_DustGeneration.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_MaterialProcessing.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_Fluids.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_ShapedCrafting.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_Assembler.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_Extruder.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_Plates.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_AlloySmelter.mRecipeGenMap);
- mRecipeMapsToGenerate.put(RecipeGen_BlastSmelter.mRecipeGenMap);
+ public static void addFluidExtractionRecipe(ItemStack a, Object b, FluidStack c, int a1, int a2, int a3) {
+ GT_Recipe r = new Recipe_GT(
+ true,
+ new ItemStack[] {a, (ItemStack) b},
+ new ItemStack[] {},
+ null,
+ new int[] {},
+ new FluidStack[] {},
+ new FluidStack[] {c},
+ a2, a3, a1);
+ new RecipeGen_FluidCanning(r, true);
+ }
+
+ public static void addFluidCannerRecipe(ItemStack aFullContainer, ItemStack aEmpty, FluidStack rFluidIn, FluidStack rFluidOut) {
+ GT_Recipe r = new Recipe_GT(
+ true,
+ new ItemStack[] {aEmpty},
+ new ItemStack[] {aFullContainer},
+ null,
+ new int[] {},
+ new FluidStack[] {rFluidIn},
+ new FluidStack[] {rFluidOut},
+ 0, 0, 0);
+ new RecipeGen_FluidCanning(r, false);
+ }
+
+ public static void generateFluidExtractorRecipe(GT_Recipe recipe, boolean extracting) {
+ new RecipeGen_FluidCanning(recipe, extracting);
}
public static void generate(final Material matInfo){
@@ -76,8 +106,6 @@ public class MaterialGenerator {
if (matInfo.getState() == MaterialState.SOLID){
if (generateEverything == true){
if (sRadiation >= 1){
- Item temp;
- Block tempBlock;
tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
temp = new BaseItemIngot(matInfo);
@@ -91,8 +119,6 @@ public class MaterialGenerator {
}
else {
- Item temp;
- Block tempBlock;
tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.FRAME, Colour);
temp = new BaseItemIngot(matInfo);
@@ -114,8 +140,6 @@ public class MaterialGenerator {
temp = new BaseItemGear(matInfo);
}
} else {
- Item temp;
- Block tempBlock;
tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
temp = new BaseItemIngot(matInfo);
@@ -128,9 +152,7 @@ public class MaterialGenerator {
}
}
else if (matInfo.getState() == MaterialState.LIQUID){
- Item temp;
if (generateEverything == true){
- Block tempBlock;
tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
}
temp = new BaseItemIngot(matInfo);
@@ -190,7 +212,6 @@ public class MaterialGenerator {
}
if (matInfo.getState() == MaterialState.SOLID){
- Item temp;
temp = new BaseItemDust("itemDust"+unlocalizedName, materialName, matInfo, Colour, "Dust", materialTier, sRadiation, false);
temp = new BaseItemDust("itemDustTiny"+unlocalizedName, materialName, matInfo, Colour, "Tiny", materialTier, sRadiation, false);
temp = new BaseItemDust("itemDustSmall"+unlocalizedName, materialName, matInfo, Colour, "Small", materialTier, sRadiation, false);
@@ -214,7 +235,6 @@ public class MaterialGenerator {
generateNuclearMaterial(matInfo, true);
}
- @SuppressWarnings("unused")
public static void generateNuclearMaterial(final Material matInfo, final boolean generatePlates){
try {
final String unlocalizedName = matInfo.getUnlocalizedName();
@@ -227,9 +247,6 @@ public class MaterialGenerator {
sRadiation = matInfo.vRadiationLevel;
}
- Item temp;
- Block tempBlock;
-
tempBlock = new BlockBaseModular(unlocalizedName, materialName,BlockTypes.STANDARD, Colour);
temp = new BaseItemDust("itemDust"+unlocalizedName, materialName, matInfo, Colour, "Dust", 3, sRadiation);
temp = new BaseItemDust("itemDustTiny"+unlocalizedName, materialName, matInfo, Colour, "Tiny", 2, sRadiation);
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
index f7f3906d18..08b37645eb 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
@@ -16,6 +16,7 @@ import gtPlusPlus.core.item.base.BaseItemComponent;
import gtPlusPlus.core.item.base.cell.BaseItemCell;
import gtPlusPlus.core.item.base.cell.BaseItemPlasmaCell;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;
@@ -233,7 +234,7 @@ public class FluidUtils {
}
}
if ((aFullContainer != null) && (aEmptyContainer != null) && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) {
- GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount));
+ MaterialGenerator.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount));
}
return rFluid;
}
@@ -327,7 +328,7 @@ public class FluidUtils {
rFluid.setTemperature((int) (aTemperatureK));
}
if ((aFullContainer != null) && (aEmptyContainer != null) && !FluidContainerRegistry.registerFluidContainer(new FluidStack(rFluid, aFluidAmount), aFullContainer, aEmptyContainer)) {
- GT_Values.RA.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount));
+ MaterialGenerator.addFluidCannerRecipe(aFullContainer, container(aFullContainer, false), null, new FluidStack(rFluid, aFluidAmount));
}
else {
//Utils.LOG_INFO("Failed creating recipes to fill/empty cells of "+aName+".");
@@ -440,7 +441,7 @@ public class FluidUtils {
1000);
//Disable this, not sure why it exists //TODO
- /*GT_Values.RA.addFluidExtractionRecipe(
+ /*MaterialGenerator.addFluidExtractionRecipe(
ItemUtils.getItemStackOfAmountFromOreDictNoBroken("dust"+Utils.sanitizeString(localizedName), 1), //Input
null, //Input 2
FluidUtils.getFluidStack(gtFluid, 144), //Fluid Output
@@ -485,7 +486,7 @@ public class FluidUtils {
1000);
if (dustStack != null){
- GT_Values.RA.addFluidExtractionRecipe(
+ MaterialGenerator.addFluidExtractionRecipe(
dustStack, //Input
null, //Input 2
FluidUtils.getFluidStack(gtFluid, amountPerItem), //Fluid Output
@@ -495,7 +496,7 @@ public class FluidUtils {
);
}
if (dustStack2 != null){
- GT_Values.RA.addFluidExtractionRecipe(
+ MaterialGenerator.addFluidExtractionRecipe(
dustStack2, //Input
null, //Input 2
FluidUtils.getFluidStack(gtFluid, amountPerItem), //Fluid Output
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
index e2a67197d3..29ece40c3d 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
@@ -21,6 +21,7 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.item.base.ingots.BaseItemIngot_OLD;
import gtPlusPlus.core.item.base.misc.BaseItemMisc;
import gtPlusPlus.core.item.base.misc.BaseItemMisc.MiscTypes;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -109,8 +110,8 @@ public class GTPP_Bees {
addExtractorRecipe(ItemUtils.getSimpleStack(dropFluorineBlob), FluidUtils.getFluidStack("fluorine", 4));
}
- private boolean addExtractorRecipe(ItemStack input, FluidStack output){
- return GT_Values.RA.addFluidExtractionRecipe(
+ private void addExtractorRecipe(ItemStack input, FluidStack output){
+ MaterialGenerator.addFluidExtractionRecipe(
input,
null,
output,
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java
index 37e61c433a..f0a816d405 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_AlloySmelter.java
@@ -6,12 +6,16 @@ import java.util.Set;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
-public class RecipeGen_AlloySmelter implements Runnable{
+public class RecipeGen_AlloySmelter extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
- final Material toGenerate;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_AlloySmelter(final Material M){
this.toGenerate = M;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java
index 2880c9f5bd..0182ca13e8 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Assembler.java
@@ -7,14 +7,18 @@ import net.minecraft.item.ItemStack;
import gregtech.api.enums.GT_Values;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
-public class RecipeGen_Assembler implements Runnable{
+public class RecipeGen_Assembler extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
- final Material toGenerate;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_Assembler(final Material M){
this.toGenerate = M;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Base.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Base.java
new file mode 100644
index 0000000000..7e9153679f
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Base.java
@@ -0,0 +1,16 @@
+package gtPlusPlus.xmod.gregtech.loaders;
+
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
+import gtPlusPlus.core.material.Material;
+
+public abstract class RecipeGen_Base implements RunnableWithInfo<Material>{
+
+ protected Material toGenerate;
+ protected boolean disableOptional;
+
+ @Override
+ public Material getInfoData() {
+ return toGenerate;
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
index de634c1415..05f25e3cf0 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_BlastSmelter.java
@@ -9,12 +9,11 @@ import net.minecraft.item.ItemStack;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.material.ALLOY;
-import gtPlusPlus.core.material.Material;
-import gtPlusPlus.core.material.MaterialStack;
+import gtPlusPlus.core.material.*;
import gtPlusPlus.core.material.nuclear.FLUORIDES;
import gtPlusPlus.core.material.nuclear.NUCLIDE;
import gtPlusPlus.core.material.state.MaterialState;
@@ -22,10 +21,12 @@ import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraftforge.fluids.FluidStack;
-public class RecipeGen_BlastSmelter implements Runnable{
+public class RecipeGen_BlastSmelter extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
- final Material toGenerate;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_BlastSmelter(final Material M){
this.toGenerate = M;
@@ -60,7 +61,6 @@ public class RecipeGen_BlastSmelter implements Runnable{
//Prepare some Variables
ItemStack[] components;
ArrayList<MaterialStack> tMaterial = new ArrayList<>();
- short counter=0;
int inputStackCount=0;
int fluidAmount=0;
final boolean doTest = true;
@@ -171,10 +171,7 @@ public class RecipeGen_BlastSmelter implements Runnable{
if (tMaterial != null){
//Reset the Variables for compounds if last recipe was a success.
inputStackCount=0;
- counter=0;
-
-
-
+
//If this Material has some kind of compound list, proceed
if (mMaterialListSize > 1){
final gtPlusPlus.core.material.MaterialStack[] tempStack = new gtPlusPlus.core.material.MaterialStack[mMaterialListSize];
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
index 369178abd0..1b392a5d10 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_DustGeneration.java
@@ -8,8 +8,10 @@ import net.minecraft.item.ItemStack;
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_ModHandler;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.recipe.common.CI;
@@ -17,12 +19,12 @@ import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
import net.minecraftforge.fluids.FluidStack;
-public class RecipeGen_DustGeneration implements Runnable{
+public class RecipeGen_DustGeneration extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
-
- final Material toGenerate;
- final boolean disableOptional;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_DustGeneration(final Material M){
this(M, false);
@@ -307,5 +309,6 @@ public class RecipeGen_DustGeneration implements Runnable{
}
return false;
}
+
}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java
index 3b518c06d9..08008994ea 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Extruder.java
@@ -9,13 +9,17 @@ import gregtech.api.GregTech_API;
import gregtech.api.enums.ItemList;
import gregtech.api.util.GT_Recipe;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
-public class RecipeGen_Extruder implements Runnable{
+public class RecipeGen_Extruder extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
- final Material toGenerate;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_Extruder(final Material M){
this.toGenerate = M;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java
new file mode 100644
index 0000000000..be25b793a9
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_FluidCanning.java
@@ -0,0 +1,61 @@
+package gtPlusPlus.xmod.gregtech.loaders;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.util.GT_Recipe;
+
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
+import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
+
+public class RecipeGen_FluidCanning extends RecipeGen_Base {
+
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
+
+ private final GT_Recipe recipe;
+ public RecipeGen_FluidCanning(GT_Recipe g) {
+ this(g, true);
+ }
+ public RecipeGen_FluidCanning(GT_Recipe g, boolean extracting) {
+ recipe = g;
+ mRecipeGenMap.add(this);
+ disableOptional = extracting;
+ }
+
+ @Override
+ public void run() {
+ generateRecipes();
+ }
+
+ private void generateRecipes() {
+ if (recipe != null) {
+ //Used to store Fluid extraction state
+ if (this.disableOptional) {
+ GT_Values.RA.addFluidExtractionRecipe(
+ recipe.mInputs[0], //Input
+ recipe.mInputs[1], //Input 2
+ recipe.mFluidOutputs[0], //Fluid Output
+ recipe.mSpecialValue, //Chance
+ recipe.mDuration, //Duration
+ recipe.mEUt //Eu Tick
+ );
+ }
+ else {
+ GT_Values.RA.addFluidCannerRecipe(
+ recipe.mInputs[0], //Input
+ recipe.mInputs[1], //Input 2
+ recipe.mFluidInputs[0], //Fluid Input
+ recipe.mFluidOutputs[0] //Fluid Output
+ );
+
+ }
+
+ }
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java
index a3bb3fb080..5ff646eee2 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Fluids.java
@@ -6,15 +6,17 @@ import java.util.Set;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
-public class RecipeGen_Fluids implements Runnable{
+public class RecipeGen_Fluids extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
-
- final Material toGenerate;
- final boolean disableOptional;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_Fluids(final Material M){
this(M, false);
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java
index ecf98351c3..07f806c9c9 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_MaterialProcessing.java
@@ -9,21 +9,24 @@ import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_Recipe;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.material.MaterialStack;
import gtPlusPlus.core.material.state.MaterialState;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraftforge.fluids.FluidStack;
-public class RecipeGen_MaterialProcessing implements Runnable{
+public class RecipeGen_MaterialProcessing extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
-
- final Material toGenerate;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_MaterialProcessing(final Material M){
this.toGenerate = M;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java
index 69afb4dec0..001c494356 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_Plates.java
@@ -10,13 +10,17 @@ import gregtech.api.enums.GT_Values;
import gregtech.api.enums.ItemList;
import gregtech.api.util.GT_Recipe;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
-public class RecipeGen_Plates implements Runnable{
+public class RecipeGen_Plates extends RecipeGen_Base {
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
- final Material toGenerate;
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
public RecipeGen_Plates(final Material M){
this.toGenerate = M;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java
index 4f2a4ff43d..fce4bad318 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/loaders/RecipeGen_ShapedCrafting.java
@@ -7,17 +7,21 @@ import net.minecraft.item.ItemStack;
import gregtech.api.util.GT_ModHandler;
+import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.util.minecraft.RecipeUtils;
-public class RecipeGen_ShapedCrafting implements Runnable{
-
- public static final Set<Runnable> mRecipeGenMap = new HashSet<Runnable>();
- final Material toGenerate;
+public class RecipeGen_ShapedCrafting extends RecipeGen_Base {
+ public final static Set<RunnableWithInfo<Material>> mRecipeGenMap = new HashSet<RunnableWithInfo<Material>>();
+ static {
+ MaterialGenerator.mRecipeMapsToGenerate.put(mRecipeGenMap);
+ }
+
public RecipeGen_ShapedCrafting(final Material M){
this.toGenerate = M;
mRecipeGenMap.add(this);
diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java
index 66d98fe451..2eb8377036 100644
--- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java
+++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java
@@ -10,6 +10,7 @@ import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.LoadedMods;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
@@ -220,7 +221,7 @@ public class FishTrapHandler {
private static void addGregtechFluidRecipe(final ItemStack input){
if (LoadedMods.Gregtech){
- GT_Values.RA.addFluidExtractionRecipe(input, null, FluidUtils.getFluidStack("fishoil", 4), 0, (64/4), 4); //4eu/t total eu used = 64 so time = 64/4
+ MaterialGenerator.addFluidExtractionRecipe(input, null, FluidUtils.getFluidStack("fishoil", 4), 0, (64/4), 4); //4eu/t total eu used = 64 so time = 64/4
}
}
diff --git a/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java b/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
index e3aaa1ae2f..3344833ca8 100644
--- a/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
+++ b/src/Java/gtPlusPlus/xmod/thermalfoundation/recipe/TF_Gregtech_Recipes.java
@@ -11,6 +11,7 @@ import gregtech.api.util.GT_OreDictUnificator;
import cofh.lib.util.helpers.ItemHelper;
import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.core.material.MaterialGenerator;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.xmod.thermalfoundation.item.TF_Items;
import net.minecraftforge.fluids.FluidRegistry;
@@ -33,7 +34,7 @@ public class TF_Gregtech_Recipes {
//Gelid Cryotheum
Logger.INFO("Adding Recipes for Gelid Cryotheum");
- GT_Values.RA.addFluidExtractionRecipe(dust_Cryotheum, GT_Values.NI, getFluidStack("cryotheum", 144), 10000, 200, 240);
+ MaterialGenerator.addFluidExtractionRecipe(dust_Cryotheum, GT_Values.NI, getFluidStack("cryotheum", 144), 10000, 200, 240);
GT_Values.RA.addChemicalBathRecipe((GT_OreDictUnificator.get(OrePrefixes.ore, Materials.Cinnabar, 1L)), getFluidStack("cryotheum", 144), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cinnabar, 3L), GT_Values.NI, GT_Values.NI, null, 400, 30);
//Blizz Powder
@@ -47,7 +48,7 @@ public class TF_Gregtech_Recipes {
//Blazing Pyrotheum
Logger.INFO("Adding Recipes for Blazing Pyrotheum");
- GT_Values.RA.addFluidExtractionRecipe(dust_Pyrotheum, GT_Values.NI, getFluidStack("pyrotheum", 250), 10000, 200, 240);
+ MaterialGenerator.addFluidExtractionRecipe(dust_Pyrotheum, GT_Values.NI, getFluidStack("pyrotheum", 250), 10000, 200, 240);
ItemStack dustCoal = ItemUtils.getItemStackOfAmountFromOreDict("dustCoal", 1);