aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tectech/loader
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/tectech/loader')
-rw-r--r--src/main/java/tectech/loader/TecTechConfig.java5
-rw-r--r--src/main/java/tectech/loader/recipe/BaseRecipeLoader.java1
-rw-r--r--src/main/java/tectech/loader/recipe/Godforge.java398
3 files changed, 273 insertions, 131 deletions
diff --git a/src/main/java/tectech/loader/TecTechConfig.java b/src/main/java/tectech/loader/TecTechConfig.java
index 7bf7eef72b..9c9425a9c9 100644
--- a/src/main/java/tectech/loader/TecTechConfig.java
+++ b/src/main/java/tectech/loader/TecTechConfig.java
@@ -13,11 +13,6 @@ public class TecTechConfig extends ConfigManager {
// final static to allow compiler to remove the debug code when this is false
public static boolean DEBUG_MODE = false;
public static boolean POWERLESS_MODE = false;
- /**
- * Not complete; enabled by default only in dev env
- */
- public boolean ENABLE_GOD_FORGE;
-
public boolean BOOM_ENABLE;
public boolean DISABLE_BLOCK_HARDNESS_NERF;
public boolean EASY_SCAN;
diff --git a/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java b/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java
index 8b6c40c6f8..9e08460fb6 100644
--- a/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java
+++ b/src/main/java/tectech/loader/recipe/BaseRecipeLoader.java
@@ -42,7 +42,6 @@ public class BaseRecipeLoader {
new Crafting().run();
new Extractor().run();
new ResearchStationAssemblyLine().run();
- } else {
new Godforge().run();
}
}
diff --git a/src/main/java/tectech/loader/recipe/Godforge.java b/src/main/java/tectech/loader/recipe/Godforge.java
index 7bd94d2c77..414756a036 100644
--- a/src/main/java/tectech/loader/recipe/Godforge.java
+++ b/src/main/java/tectech/loader/recipe/Godforge.java
@@ -3,9 +3,13 @@ package tectech.loader.recipe;
import static gregtech.api.enums.Mods.EternalSingularity;
import static gregtech.api.enums.Mods.GalaxySpace;
import static gregtech.api.util.GTModHandler.getModItem;
+import static gregtech.api.util.GTRecipeBuilder.BUCKETS;
+import static gregtech.api.util.GTRecipeBuilder.INGOTS;
import static gregtech.api.util.GTRecipeBuilder.SECONDS;
import static gregtech.api.util.GTRecipeBuilder.TICKS;
+import static gregtech.api.util.GTRecipeConstants.COIL_HEAT;
import static gregtech.api.util.GTRecipeConstants.FOG_EXOTIC_TIER;
+import static gregtech.api.util.GTRecipeConstants.FOG_PLASMA_MULTISTEP;
import static gregtech.api.util.GTRecipeConstants.FOG_PLASMA_TIER;
import static tectech.recipe.TecTechRecipeMaps.godforgeExoticMatterRecipes;
import static tectech.recipe.TecTechRecipeMaps.godforgePlasmaRecipes;
@@ -17,7 +21,9 @@ import java.util.HashMap;
import java.util.List;
import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
+import net.minecraftforge.oredict.OreDictionary;
import goodgenerator.items.GGMaterial;
import goodgenerator.util.ItemRefer;
@@ -27,11 +33,18 @@ import gregtech.api.enums.Materials;
import gregtech.api.enums.MaterialsUEVplus;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.TierEU;
+import gregtech.api.objects.ItemData;
+import gregtech.api.recipe.RecipeMaps;
import gregtech.api.util.GTOreDictUnificator;
+import gregtech.api.util.GTRecipe;
+import gregtech.api.util.GTRecipeBuilder;
import gregtech.api.util.GTUtility;
import gtPlusPlus.core.material.MaterialsAlloy;
import gtPlusPlus.core.material.MaterialsElements;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList;
+import it.unimi.dsi.fastutil.ints.IntArrayList;
+import it.unimi.dsi.fastutil.ints.IntList;
+import tectech.recipe.TecTechRecipeMaps;
import tectech.thing.CustomItemList;
public class Godforge implements Runnable {
@@ -48,6 +61,20 @@ public class Godforge implements Runnable {
public static final List<ItemStack> magmatterSpaceFluidItemsForNEI = new ArrayList<>();
public static final List<ItemStack> magmatterItemsForNEI = new ArrayList<>();
+ private FluidStack[] convertToFluid(ItemStack[] items) {
+ List<FluidStack> molten = new ArrayList<>();
+
+ for (ItemStack itemStack : items) {
+ String dict = OreDictionary.getOreName(OreDictionary.getOreIDs(itemStack)[0]);
+ // substring 4 because dust is 4 characters long and there is no other possible oreDict
+ String strippedOreDict = dict.substring(4);
+ molten.add(FluidRegistry.getFluidStack("molten." + strippedOreDict.toLowerCase(), 144));
+
+ }
+
+ return molten.toArray(new FluidStack[0]);
+ }
+
@Override
public void run() {
// Solid to plasma recipes
@@ -85,6 +112,9 @@ public class Godforge implements Runnable {
MaterialsElements.getInstance().IODINE.getDust(1),
MaterialsElements.getInstance().HAFNIUM.getDust(1),
MaterialsElements.getInstance().CURIUM.getDust(1) };
+
+ FluidStack[] molten_t0_1step = convertToFluid(solids_t0_1step);
+
FluidStack[] solid_plasmas_t0_1step = { Materials.Aluminium.getPlasma(144),
Materials.Iron.getPlasma(144), Materials.Calcium.getPlasma(144), Materials.Sulfur.getPlasma(144),
Materials.Zinc.getPlasma(144), Materials.Niobium.getPlasma(144), Materials.Tin.getPlasma(144),
@@ -124,143 +154,220 @@ public class Godforge implements Runnable {
new FluidStack(MaterialsElements.getInstance().CURIUM.getPlasma(), 144) };
for (int i = 0; i < solids_t0_1step.length; i++) {
- boolean multistep = false;
GTValues.RA.stdBuilder()
.itemInputs(solids_t0_1step[i])
.fluidOutputs(solid_plasmas_t0_1step[i])
.duration(10 * TICKS)
.eut(TierEU.RECIPE_MAX)
- .special(multistep)
+ .metadata(FOG_PLASMA_MULTISTEP, false)
.metadata(FOG_PLASMA_TIER, 0)
.noOptimize()
.addTo(godforgePlasmaRecipes);
+
+ if (molten_t0_1step[i] != null) {
+ GTValues.RA.stdBuilder()
+ .fluidInputs(molten_t0_1step[i])
+ .fluidOutputs(solid_plasmas_t0_1step[i])
+ .duration(10 * TICKS)
+ .eut(TierEU.RECIPE_MAX)
+ .metadata(FOG_PLASMA_MULTISTEP, false)
+ .metadata(FOG_PLASMA_TIER, 0)
+ .noOptimize()
+ .addTo(godforgePlasmaRecipes);
+ }
}
+ }
- // Multi-step
- ItemStack[] solids_t0_xstep = { Materials.Force.getDust(1), Materials.Bismuth.getDust(1),
- MaterialsElements.STANDALONE.ADVANCED_NITINOL.getDust(1), Materials.Boron.getDust(1),
- MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getDust(1),
- MaterialsElements.STANDALONE.RUNITE.getDust(1),
- MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1), Materials.Iridium.getDust(1),
- Materials.Naquadah.getDust(1), Materials.Osmium.getDust(1), Materials.Platinum.getDust(1),
- Materials.Plutonium.getDust(1), MaterialsElements.getInstance().CALIFORNIUM.getDust(1),
- Materials.Chrome.getDust(1) };
- FluidStack[] solid_plasmas_t0_xstep = {
- new FluidStack(MaterialsElements.STANDALONE.FORCE.getPlasma(), 144),
- Materials.Bismuth.getPlasma(144),
- new FluidStack(MaterialsElements.STANDALONE.ADVANCED_NITINOL.getPlasma(), 144),
- Materials.Boron.getPlasma(144),
- new FluidStack(MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getPlasma(), 144),
- new FluidStack(MaterialsElements.STANDALONE.RUNITE.getPlasma(), 144),
- new FluidStack(MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 144),
- Materials.Iridium.getPlasma(144), Materials.Naquadah.getPlasma(144),
- Materials.Osmium.getPlasma(144), Materials.Platinum.getPlasma(144),
- Materials.Plutonium.getPlasma(144),
- new FluidStack(MaterialsElements.getInstance().CALIFORNIUM.getPlasma(), 144),
- Materials.Chrome.getPlasma(144), };
-
- for (int i = 0; i < solids_t0_xstep.length; i++) {
- boolean multistep = true;
+ // Multi-step
+ ItemStack[] solids_t0_xstep = { Materials.Force.getDust(1), Materials.Bismuth.getDust(1),
+ MaterialsElements.STANDALONE.ADVANCED_NITINOL.getDust(1), Materials.Boron.getDust(1),
+ MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getDust(1), MaterialsElements.STANDALONE.RUNITE.getDust(1),
+ MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getDust(1), Materials.Iridium.getDust(1),
+ Materials.Naquadah.getDust(1), Materials.Osmium.getDust(1), Materials.Platinum.getDust(1),
+ Materials.Plutonium.getDust(1), MaterialsElements.getInstance().CALIFORNIUM.getDust(1),
+ Materials.Chrome.getDust(1) };
+
+ FluidStack[] molten_t0_xstep = convertToFluid(solids_t0_xstep);
+
+ FluidStack[] solid_plasmas_t0_xstep = { new FluidStack(MaterialsElements.STANDALONE.FORCE.getPlasma(), 144),
+ Materials.Bismuth.getPlasma(144),
+ new FluidStack(MaterialsElements.STANDALONE.ADVANCED_NITINOL.getPlasma(), 144),
+ Materials.Boron.getPlasma(144),
+ new FluidStack(MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getPlasma(), 144),
+ new FluidStack(MaterialsElements.STANDALONE.RUNITE.getPlasma(), 144),
+ new FluidStack(MaterialsElements.STANDALONE.CELESTIAL_TUNGSTEN.getPlasma(), 144),
+ Materials.Iridium.getPlasma(144), Materials.Naquadah.getPlasma(144), Materials.Osmium.getPlasma(144),
+ Materials.Platinum.getPlasma(144), Materials.Plutonium.getPlasma(144),
+ new FluidStack(MaterialsElements.getInstance().CALIFORNIUM.getPlasma(), 144),
+ Materials.Chrome.getPlasma(144), };
+
+ for (int i = 0; i < solids_t0_xstep.length; i++) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(solids_t0_xstep[i])
+ .fluidOutputs(solid_plasmas_t0_xstep[i])
+ .duration(2 * SECONDS)
+ .eut(TierEU.RECIPE_MAX)
+ .metadata(FOG_PLASMA_MULTISTEP, true)
+ .metadata(FOG_PLASMA_TIER, 0)
+ .noOptimize()
+ .addTo(godforgePlasmaRecipes);
+
+ if (molten_t0_xstep[i] != null) {
GTValues.RA.stdBuilder()
- .itemInputs(solids_t0_xstep[i])
+ .fluidInputs(molten_t0_xstep[i])
.fluidOutputs(solid_plasmas_t0_xstep[i])
.duration(2 * SECONDS)
.eut(TierEU.RECIPE_MAX)
- .special(multistep)
+ .metadata(FOG_PLASMA_MULTISTEP, true)
.metadata(FOG_PLASMA_TIER, 0)
.noOptimize()
.addTo(godforgePlasmaRecipes);
}
}
- // Fusion tier 4-5
- {
- // Single step
- ItemStack[] solids_t1_1step = { Materials.Lead.getDust(1), Materials.Plutonium241.getDust(1),
- Materials.Thorium.getDust(1), Materials.Naquadria.getDust(1) };
- FluidStack[] solid_plasmas_t1_1step = { Materials.Lead.getPlasma(144),
- Materials.Plutonium241.getPlasma(144), Materials.Thorium.getPlasma(144),
- Materials.Naquadria.getPlasma(144) };
+ }
+ // Fusion tier 4-5
+ {
+ // Single step
+ ItemStack[] solids_t1_1step = { Materials.Lead.getDust(1), Materials.Plutonium241.getDust(1),
+ Materials.Thorium.getDust(1), Materials.Naquadria.getDust(1) };
+
+ FluidStack[] molten_t1_1step = convertToFluid(solids_t1_1step);
+
+ FluidStack[] solid_plasmas_t1_1step = { Materials.Lead.getPlasma(144),
+ Materials.Plutonium241.getPlasma(144), Materials.Thorium.getPlasma(144),
+ Materials.Naquadria.getPlasma(144) };
+
+ for (int i = 0; i < solids_t1_1step.length; i++) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(solids_t1_1step[i])
+ .fluidOutputs(solid_plasmas_t1_1step[i])
+ .duration(5 * SECONDS)
+ .eut(TierEU.RECIPE_MAX)
+ .metadata(FOG_PLASMA_MULTISTEP, false)
+ .metadata(FOG_PLASMA_TIER, 1)
+ .noOptimize()
+ .addTo(godforgePlasmaRecipes);
+
+ if (molten_t1_1step[i] != null) {
- for (int i = 0; i < solids_t1_1step.length; i++) {
- boolean multistep = false;
GTValues.RA.stdBuilder()
- .itemInputs(solids_t1_1step[i])
+ .fluidInputs(molten_t1_1step[i])
.fluidOutputs(solid_plasmas_t1_1step[i])
.duration(5 * SECONDS)
.eut(TierEU.RECIPE_MAX)
- .special(multistep)
+ .metadata(FOG_PLASMA_MULTISTEP, false)
.metadata(FOG_PLASMA_TIER, 1)
.noOptimize()
.addTo(godforgePlasmaRecipes);
}
+ }
- // Multi-step
- ItemStack[] solids_t1_xstep = { MaterialsElements.getInstance().NEPTUNIUM.getDust(1),
- MaterialsElements.getInstance().FERMIUM.getDust(1) };
- FluidStack[] solid_plasmas_t1_xstep = {
- new FluidStack(MaterialsElements.getInstance().NEPTUNIUM.getPlasma(), 144),
- new FluidStack(MaterialsElements.getInstance().FERMIUM.getPlasma(), 144) };
+ // Multi-step
+ ItemStack[] solids_t1_xstep = { MaterialsElements.getInstance().NEPTUNIUM.getDust(1),
+ MaterialsElements.getInstance().FERMIUM.getDust(1) };
- for (int i = 0; i < solids_t1_xstep.length; i++) {
- boolean multistep = true;
+ FluidStack[] molten_t1_xstep = convertToFluid(solids_t1_xstep);
+
+ FluidStack[] solid_plasmas_t1_xstep = {
+ new FluidStack(MaterialsElements.getInstance().NEPTUNIUM.getPlasma(), 144),
+ new FluidStack(MaterialsElements.getInstance().FERMIUM.getPlasma(), 144) };
+
+ for (int i = 0; i < solids_t1_xstep.length; i++) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(solids_t1_xstep[i])
+ .fluidOutputs(solid_plasmas_t1_xstep[i])
+ .duration(7 * SECONDS)
+ .eut(TierEU.RECIPE_MAX)
+ .metadata(FOG_PLASMA_MULTISTEP, true)
+ .metadata(FOG_PLASMA_TIER, 1)
+ .noOptimize()
+ .addTo(godforgePlasmaRecipes);
+
+ if (molten_t1_xstep[i] != null) {
GTValues.RA.stdBuilder()
- .itemInputs(solids_t1_xstep[i])
+ .fluidInputs(molten_t1_xstep[i])
.fluidOutputs(solid_plasmas_t1_xstep[i])
.duration(7 * SECONDS)
.eut(TierEU.RECIPE_MAX)
- .special(multistep)
+ .metadata(FOG_PLASMA_MULTISTEP, true)
.metadata(FOG_PLASMA_TIER, 1)
.noOptimize()
.addTo(godforgePlasmaRecipes);
}
}
- // Exotic Plasmas
- {
- // Single step
- ItemStack[] solids_t2_1step = { MaterialsElements.STANDALONE.RHUGNOR.getDust(1),
- MaterialsElements.STANDALONE.DRAGON_METAL.getDust(1),
- MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getDust(1), Materials.CosmicNeutronium.getDust(1),
- Materials.Draconium.getDust(1), Materials.DraconiumAwakened.getDust(1),
- Materials.Ichorium.getDust(1), Materials.Bedrockium.getDust(1) };
- FluidStack[] solid_plasmas_t2_1step = {
- new FluidStack(MaterialsElements.STANDALONE.RHUGNOR.getPlasma(), 144),
- new FluidStack(MaterialsElements.STANDALONE.DRAGON_METAL.getPlasma(), 144),
- new FluidStack(MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getPlasma(), 144),
- Materials.CosmicNeutronium.getPlasma(144), Materials.Draconium.getPlasma(144),
- Materials.DraconiumAwakened.getPlasma(144), Materials.Ichorium.getPlasma(144),
- Materials.Bedrockium.getPlasma(144), };
-
- for (int i = 0; i < solids_t2_1step.length; i++) {
- boolean multistep = false;
+ }
+ // Exotic Plasmas
+ {
+ // Single step
+ ItemStack[] solids_t2_1step = { MaterialsElements.STANDALONE.RHUGNOR.getDust(1),
+ MaterialsElements.STANDALONE.DRAGON_METAL.getDust(1),
+ MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getDust(1), Materials.CosmicNeutronium.getDust(1),
+ Materials.Draconium.getDust(1), Materials.DraconiumAwakened.getDust(1), Materials.Ichorium.getDust(1) };
+
+ FluidStack[] molten_t2_1step = convertToFluid(solids_t2_1step);
+
+ FluidStack[] solid_plasmas_t2_1step = {
+ new FluidStack(MaterialsElements.STANDALONE.RHUGNOR.getPlasma(), 144),
+ new FluidStack(MaterialsElements.STANDALONE.DRAGON_METAL.getPlasma(), 144),
+ new FluidStack(MaterialsElements.STANDALONE.CHRONOMATIC_GLASS.getPlasma(), 144),
+ Materials.CosmicNeutronium.getPlasma(144), Materials.Draconium.getPlasma(144),
+ Materials.DraconiumAwakened.getPlasma(144), Materials.Ichorium.getPlasma(144) };
+
+ for (int i = 0; i < solids_t2_1step.length; i++) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(solids_t2_1step[i])
+ .fluidOutputs(solid_plasmas_t2_1step[i])
+ .duration(15 * SECONDS)
+ .eut(TierEU.RECIPE_MAX)
+ .metadata(FOG_PLASMA_MULTISTEP, false)
+ .metadata(FOG_PLASMA_TIER, 2)
+ .noOptimize()
+ .addTo(godforgePlasmaRecipes);
+
+ if (molten_t2_1step[i] != null) {
+
GTValues.RA.stdBuilder()
- .itemInputs(solids_t2_1step[i])
+ .fluidInputs(molten_t2_1step[i])
.fluidOutputs(solid_plasmas_t2_1step[i])
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_MAX)
- .special(multistep)
+ .metadata(FOG_PLASMA_MULTISTEP, false)
.metadata(FOG_PLASMA_TIER, 2)
.noOptimize()
.addTo(godforgePlasmaRecipes);
}
+ }
+
+ // Multi-step
+ ItemStack[] solids_t2_xstep = { MaterialsElements.STANDALONE.HYPOGEN.getDust(1),
+ Materials.Tritanium.getDust(1), Materials.Flerovium.getDust(1), Materials.Neutronium.getDust(1) };
+
+ FluidStack[] molten_t2_xstep = convertToFluid(solids_t2_xstep);
+
+ FluidStack[] solid_plasmas_t2_xstep = {
+ new FluidStack(MaterialsElements.STANDALONE.HYPOGEN.getPlasma(), 144),
+ Materials.Tritanium.getPlasma(144), Materials.Flerovium.getPlasma(144),
+ Materials.Neutronium.getPlasma(144), };
+
+ for (int i = 0; i < solids_t2_xstep.length; i++) {
+ GTValues.RA.stdBuilder()
+ .itemInputs(solids_t2_xstep[i])
+ .fluidOutputs(solid_plasmas_t2_xstep[i])
+ .duration(25 * SECONDS)
+ .eut(TierEU.RECIPE_MAX)
+ .metadata(FOG_PLASMA_MULTISTEP, true)
+ .metadata(FOG_PLASMA_TIER, 2)
+ .noOptimize()
+ .addTo(godforgePlasmaRecipes);
+
+ if (molten_t2_xstep[i] != null) {
- // Multi-step
- ItemStack[] solids_t2_xstep = { MaterialsElements.STANDALONE.HYPOGEN.getDust(1),
- Materials.Tritanium.getDust(1), Materials.Flerovium.getDust(1), Materials.Neutronium.getDust(1),
- Materials.Infinity.getDust(1), MaterialsUEVplus.SixPhasedCopper.getDust(1), };
- FluidStack[] solid_plasmas_t2_xstep = {
- new FluidStack(MaterialsElements.STANDALONE.HYPOGEN.getPlasma(), 144),
- Materials.Tritanium.getPlasma(144), Materials.Flerovium.getPlasma(144),
- Materials.Neutronium.getPlasma(144), Materials.Infinity.getPlasma(144),
- MaterialsUEVplus.SixPhasedCopper.getPlasma(144) };
-
- for (int i = 0; i < solids_t2_xstep.length; i++) {
- boolean multistep = true;
GTValues.RA.stdBuilder()
- .itemInputs(solids_t2_xstep[i])
+ .fluidInputs(molten_t2_xstep[i])
.fluidOutputs(solid_plasmas_t2_xstep[i])
.duration(25 * SECONDS)
.eut(TierEU.RECIPE_MAX)
- .special(multistep)
+ .metadata(FOG_PLASMA_MULTISTEP, true)
.metadata(FOG_PLASMA_TIER, 2)
.noOptimize()
.addTo(godforgePlasmaRecipes);
@@ -373,15 +480,12 @@ public class Godforge implements Runnable {
Materials.Arsenic,
Materials.Barium,
Materials.Beryllium,
- Materials.Bismuth,
- Materials.Boron,
Materials.Caesium,
Materials.Calcium,
Materials.Cadmium,
Materials.Carbon,
Materials.Cerium,
Materials.Chlorine,
- Materials.Chrome,
Materials.Cobalt,
Materials.Copper,
Materials.Desh,
@@ -397,29 +501,21 @@ public class Godforge implements Runnable {
Materials.Holmium,
Materials.Hydrogen,
Materials.Indium,
- Materials.Iridium,
Materials.Iron,
Materials.Lanthanum,
- Materials.Lead,
Materials.Lithium,
Materials.Lutetium,
Materials.Magnesium,
Materials.Manganese,
Materials.MeteoricIron,
Materials.Molybdenum,
- Materials.Naquadah,
Materials.Neodymium,
Materials.Nickel,
Materials.Niobium,
Materials.Nitrogen,
Materials.Oriharukon,
- Materials.Osmium,
- Materials.Oxygen,
Materials.Palladium,
Materials.Phosphorus,
- Materials.Platinum,
- Materials.Plutonium,
- Materials.Plutonium241,
Materials.Potassium,
Materials.Praseodymium,
Materials.Promethium,
@@ -434,7 +530,6 @@ public class Godforge implements Runnable {
Materials.Tantalum,
Materials.Tellurium,
Materials.Terbium,
- Materials.Thorium,
Materials.Thulium,
Materials.Tin,
Materials.Titanium,
@@ -457,15 +552,12 @@ public class Godforge implements Runnable {
6000 /* Arsenic */,
6000 /* Barium */,
6000 /* Beryllium */,
- 8000 /* Bismuth */,
- 8000 /* Boron */,
6000 /* Caesium */,
10000 /* Calcium */,
6000 /* Cadmium */,
6000 /* Carbon */,
6000 /* Cerium */,
6000 /* Chlorine */,
- 6000 /* Chrome */,
6000 /* Cobalt */,
6000 /* Copper */,
6000 /* Desh */,
@@ -481,29 +573,21 @@ public class Godforge implements Runnable {
6000 /* Holmium */,
10000 /* Hydrogen */,
6000 /* Indium */,
- 6000 /* Iridium */,
10000 /* Iron */,
6000 /* Lanthanum */,
- 500 /* Lead */,
6000 /* Lithium */,
6000 /* Lutetium */,
6000 /* Magnesium */,
6000 /* Manganese */,
6000 /* Meteoric Iron */,
6000 /* Molybdenum */,
- 6000 /* Naquadah */,
6000 /* Neodymium */,
10000 /* Nickel */,
10000 /* Niobium */,
10000 /* Nitrogen */,
6000 /* Oriharukon */,
- 6000 /* Osmium */,
- 8000 /* Oxygen */,
6000 /* Palladium */,
6000 /* Phosphorus */,
- 6000 /* Platinum */,
- 6000 /* Plutonium 239 */,
- 500 /* Plutonium 241 */,
6000 /* Potassium */,
6000 /* Praseodymium */,
2000 /* Promethium */,
@@ -518,7 +602,6 @@ public class Godforge implements Runnable {
6000 /* Tantalum */,
2000 /* Tellurium */,
1000 /* Terbium */,
- 500 /* Thorium */,
6000 /* Thulium */,
10000 /* Tin */,
10000 /* Titanium */,
@@ -540,20 +623,9 @@ public class Godforge implements Runnable {
exoticModulePlasmaItemMap.put(MaterialsElements.getInstance().RHENIUM.getTinyDust(1), 2000);
exoticModulePlasmaItemMap.put(MaterialsElements.getInstance().RHODIUM.getTinyDust(1), 6000);
exoticModulePlasmaItemMap.put(MaterialsElements.getInstance().IODINE.getTinyDust(1), 6000);
- exoticModulePlasmaItemMap.put(MaterialsElements.STANDALONE.ASTRAL_TITANIUM.getTinyDust(1), 8000);
- exoticModulePlasmaItemMap.put(MaterialsElements.STANDALONE.ADVANCED_NITINOL.getTinyDust(1), 8000);
- exoticModulePlasmaItemMap.put(MaterialsElements.STANDALONE.FORCE.getTinyDust(1), 8000);
exoticModulePlasmaItemMap.put(MaterialsElements.getInstance().HAFNIUM.getTinyDust(1), 6000);
- exoticModulePlasmaItemMap.put(MaterialsElements.getInstance().CALIFORNIUM.getTinyDust(1), 1000);
- exoticModulePlasmaItemMap.put(MaterialsElements.STANDALONE.RUNITE.getTinyDust(1), 8000);
-
- exoticModulePlasmaFluidMap.put(new FluidStack(MaterialsElements.getInstance().XENON.getFluid(), 1), 8000);
- exoticModulePlasmaFluidMap.put(new FluidStack(MaterialsElements.getInstance().KRYPTON.getFluid(), 1), 8000);
- exoticModulePlasmaFluidMap.put(new FluidStack(MaterialsElements.getInstance().NEON.getFluid(), 1), 8000);
- // These are here because they cant be solidified
- exoticModulePlasmaFluidMap.put(new FluidStack(MaterialsElements.getInstance().CURIUM.getFluid(), 1), 10000);
- exoticModulePlasmaFluidMap.put(new FluidStack(MaterialsElements.getInstance().NEPTUNIUM.getFluid(), 1), 800);
- exoticModulePlasmaFluidMap.put(new FluidStack(MaterialsElements.getInstance().FERMIUM.getFluid(), 1), 800);
+ exoticModulePlasmaItemMap.put(MaterialsElements.getInstance().CURIUM.getTinyDust(1), 10000);
+
// Mercury is weird, it has neither dust nor gas, so it needs to be added separately
exoticModulePlasmaFluidMap.put(Materials.Mercury.getFluid(1), 6000);
@@ -652,7 +724,7 @@ public class Godforge implements Runnable {
MaterialsElements.STANDALONE.HYPOGEN.getFrameBox(64),
MaterialsElements.STANDALONE.DRAGON_METAL.getFrameBox(64),
CustomItemList.EOH_Reinforced_Spatial_Casing.get(64),
- CustomItemList.EOH_Infinite_Energy_Casing.get(8), ItemList.ZPM6.get(4),
+ CustomItemList.EOH_Infinite_Energy_Casing.get(8), ItemList.ZPM6.get(2),
ItemList.Field_Generator_UMV.get(32) });
godforgeUpgradeMats.put(
@@ -660,9 +732,9 @@ public class Godforge implements Runnable {
new ItemStack[] { GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.WhiteDwarfMatter, 64),
GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.BlackDwarfMatter, 64),
GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Eternity, 16),
- GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 4),
+ GTOreDictUnificator.get(OrePrefixes.frameGt, MaterialsUEVplus.Universium, 2),
CustomItemList.EOH_Infinite_Energy_Casing.get(64),
- CustomItemList.StabilisationFieldGeneratorTier5.get(16), ItemList.ZPM6.get(16),
+ CustomItemList.StabilisationFieldGeneratorTier5.get(16), ItemList.ZPM6.get(6),
ItemList.Field_Generator_UMV.get(64) });
godforgeUpgradeMats.put(
@@ -675,4 +747,80 @@ public class Godforge implements Runnable {
}
}
+
+ public static void initMoltenModuleRecipes() {
+ for (GTRecipe recipe : RecipeMaps.blastFurnaceRecipes.getAllRecipes()) {
+ List<ItemStack> itemOutputs = new ArrayList<>(1);
+ List<FluidStack> fluidOutputs = new ArrayList<>(2);
+
+ int[] originalChances = recipe.mChances;
+ IntList newChances = new IntArrayList();
+ for (int i = 0; i < recipe.mOutputs.length; i++) {
+ ItemStack stack = recipe.getOutput(i);
+ if (stack == null) continue;
+ FluidStack potentialFluid = convertToMolten(stack);
+ if (potentialFluid != null) {
+ potentialFluid.amount *= stack.stackSize;
+ fluidOutputs.add(potentialFluid);
+ } else {
+ itemOutputs.add(stack);
+ if (originalChances != null) {
+ int chance = 10000;
+ if (originalChances.length > i) {
+ chance = originalChances[i];
+ }
+ newChances.add(chance);
+ }
+ }
+ }
+
+ fluidOutputs.addAll(Arrays.asList(recipe.mFluidOutputs));
+ Integer heat = recipe.getMetadata(COIL_HEAT);
+
+ GTRecipeBuilder builder = GTValues.RA.stdBuilder()
+ .noOptimize()
+ .itemOutputs(itemOutputs.toArray(new ItemStack[0]))
+ .fluidOutputs(fluidOutputs.toArray(new FluidStack[0]))
+ .duration(recipe.mDuration)
+ .eut(recipe.mEUt)
+ .specialValue(recipe.mSpecialValue);
+
+ if (recipe.mInputs != null) builder.itemInputs(recipe.mInputs);
+ if (recipe.mFluidInputs != null) builder.fluidInputs(recipe.mFluidInputs);
+ if (!newChances.isEmpty()) builder.outputChances(newChances.toIntArray());
+ if (heat != null) builder.metadata(COIL_HEAT, heat);
+
+ builder.addTo(TecTechRecipeMaps.godforgeMoltenRecipes);
+ }
+ }
+
+ private static FluidStack convertToMolten(ItemStack stack) {
+ // if this is null it has to be a gt++ material
+ ItemData data = GTOreDictUnificator.getAssociation(stack);
+ Materials mat = data == null ? null : data.mMaterial.mMaterial;
+ if (mat != null) {
+ if (mat.mStandardMoltenFluid != null) {
+ return mat.getMolten(INGOTS * data.mMaterial.mAmount / GTValues.M);
+ } else if (mat.mFluid != null) {
+ return mat.getFluid(BUCKETS);
+ }
+ }
+ int[] oreIDs = OreDictionary.getOreIDs(stack);
+ if (oreIDs.length == 0) {
+ return null;
+ }
+ String dict = OreDictionary.getOreName(oreIDs[0]);
+
+ // Check various oredicts
+ String strippedOreDict = null;
+ if (dict.startsWith("ingotHot")) {
+ strippedOreDict = dict.substring(8);
+ } else if (dict.startsWith("dustRoasted") && !dict.contains("Cobalt")) {
+ strippedOreDict = dict.substring(11);
+ }
+ if (strippedOreDict != null) {
+ return FluidRegistry.getFluidStack("molten." + strippedOreDict.toLowerCase(), INGOTS);
+ }
+ return null;
+ }
}