aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java18
-rw-r--r--src/main/java/gregtech/api/util/GT_Recipe.java75
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeBuilder.java4
-rw-r--r--src/main/java/gregtech/api/util/GT_RecipeConstants.java26
-rw-r--r--src/main/java/gregtech/common/items/ItemComb.java60
-rw-r--r--src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java105
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java96
-rw-r--r--src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java190
8 files changed, 210 insertions, 364 deletions
diff --git a/src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java b/src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java
index 69f87161d1..bbc2fd4ada 100644
--- a/src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java
+++ b/src/main/java/gregtech/api/interfaces/IGT_RecipeMap.java
@@ -18,7 +18,13 @@ public interface IGT_RecipeMap {
/**
* Add a downstream recipe map that will get to handle the original builder.
- *
+ *
+ * Downstream recipe maps got passed the recipe builder after parent recipe map is done with its business. Notice
+ * at this time the original recipe builder might be modified by the parent recipe map in some form, but it will
+ * remain as valid.
+ *
+ * A downstream will only be invoked if parent recipe map added something.
+ *
* @param downstream
*/
void addDownstream(IGT_RecipeMap downstream);
@@ -53,9 +59,13 @@ public interface IGT_RecipeMap {
@Override
public Collection<GT_Recipe> doAdd(GT_RecipeBuilder builder) {
List<Collection<GT_Recipe>> ret = new ArrayList<>();
- ret.add(func.apply(builder));
- for (IGT_RecipeMap downstream : downstreams) {
- ret.add(downstream.doAdd(builder));
+ Collection<GT_Recipe> out = func.apply(builder);
+ ret.add(out);
+ builder.clearInvalid();
+ if (!out.isEmpty()) {
+ for (IGT_RecipeMap downstream : downstreams) {
+ ret.add(downstream.doAdd(builder));
+ }
}
return GT_Utility.concat(ret);
}
diff --git a/src/main/java/gregtech/api/util/GT_Recipe.java b/src/main/java/gregtech/api/util/GT_Recipe.java
index b5603619af..ba78931129 100644
--- a/src/main/java/gregtech/api/util/GT_Recipe.java
+++ b/src/main/java/gregtech/api/util/GT_Recipe.java
@@ -1344,6 +1344,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
true).setSlotOverlay(false, false, true, true, GT_UITextures.OVERLAY_SLOT_DATA_ORB)
.setUsualFluidInputCount(4)
.setDisableOptimize(true);
+ /**
+ * Usually, but not always, you should use {@link GT_RecipeConstants#UniversalArcFurnace} instead.
+ */
public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map(
new HashSet<>(20000),
"gt.recipe.plasmaarcfurnace",
@@ -1361,6 +1364,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
true,
true).setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT)
.setRecipeConfigFile("arcfurnace", FIRST_ITEM_INPUT);
+ /**
+ * Usually, but not always, you should use {@link GT_RecipeConstants#UniversalArcFurnace} instead.
+ */
public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map(
new HashSet<>(20000),
"gt.recipe.arcfurnace",
@@ -1801,6 +1807,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
true).setSlotOverlay(false, false, GT_UITextures.OVERLAY_SLOT_BOXED)
.setRecipeConfigFile("unboxing", FIRST_ITEM_OUTPUT)
.setProgressBar(GT_UITextures.PROGRESSBAR_ARROW, ProgressBar.Direction.RIGHT);
+ /**
+ * Usually, but not always, you should use {@link GT_RecipeConstants#Fusion} instead.
+ */
public static final GT_Recipe_Map sFusionRecipes = new GT_Recipe_Map_FluidOnly(
new HashSet<>(50),
"gt.recipe.fusionreactor",
@@ -1822,6 +1831,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
.setRecipeConfigFile("fusion", FIRST_FLUID_OUTPUT)
.setDisableOptimize(true)
.setNEISpecialInfoFormatter(FusionSpecialValueFormatter.INSTANCE);
+ /**
+ * Usually, but not always, you should use {@link GT_RecipeConstants#Fusion} instead.
+ */
public static final GT_Recipe_Map sComplexFusionRecipes = new GT_Recipe_Map_ComplexFusion(
new HashSet<>(50),
"gt.recipe.complexfusionreactor",
@@ -1885,7 +1897,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
.setSlotOverlay(true, false, GT_UITextures.OVERLAY_SLOT_CHARGER_FLUID)
.setProgressBar(GT_UITextures.PROGRESSBAR_EXTRACT, ProgressBar.Direction.RIGHT);
/**
- * Use special value as coil heat level.
+ * Use {@link GT_RecipeConstants#COIL_HEAT} as heat level.
*/
public static final GT_Recipe_Map sBlastRecipes = new GT_Recipe_Map(
new HashSet<>(800),
@@ -1906,7 +1918,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
.setRecipeConfigFile("blastfurnace", FIRST_ITEM_INPUT)
.setNEISpecialInfoFormatter(HeatingCoilSpecialValueFormatter.INSTANCE);
/**
- * Use special value as coil heat level.
+ * Use {@link GT_RecipeConstants#COIL_HEAT} as heat level.
*/
public static final GT_Recipe_Map sPlasmaForgeRecipes = new GT_Recipe_Map_LargeNEI(
new HashSet<>(20),
@@ -2137,6 +2149,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
}
+ /**
+ * Uses {@link GT_RecipeConstants#ADDITIVE_AMOUNT} for coal/charcoal amount.
+ */
public static final GT_Recipe_Map sPrimitiveBlastRecipes = new GT_Recipe_Map(
new HashSet<>(200),
"gt.recipe.primitiveblastfurnace",
@@ -2231,6 +2246,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
return coll.getAll();
})
.setRecipeConfigFile("primitiveblastfurnace", FIRST_ITEM_INPUT);
+ /**
+ * Uses {@link GT_RecipeConstants#ADDITIVE_AMOUNT} for TNT/ITNT/... amount. Value is truncated to [0, 64]
+ */
public static final GT_Recipe_Map sImplosionRecipes = new GT_Recipe_Map(
new HashSet<>(900),
"gt.recipe.implosioncompressor",
@@ -2326,6 +2344,10 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
return buildOrEmpty(b);
})
.setUsualFluidInputCount(2);
+ /**
+ * using {@code .addTo(sChemicalRecipes)} will cause the recipe to be added to single block recipe map ONLY!
+ * use {@link GT_RecipeConstants#UniversalChemical} to add to both.
+ */
public static final GT_Recipe_Map sChemicalRecipes = new GT_Recipe_Map(
new HashSet<>(1170),
"gt.recipe.chemicalreactor",
@@ -2348,31 +2370,29 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
.setSlotOverlay(true, true, GT_UITextures.OVERLAY_SLOT_VIAL_2)
.setRecipeConfigFile("chemicalreactor", FIRST_ITEM_OR_FLUID_OUTPUT)
.setProgressBar(GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE, ProgressBar.Direction.RIGHT);
- public static final GT_Recipe_Map sMultiblockChemicalRecipes = new GT_Recipe_Map_LargeChemicalReactor().setProgressBar(
- GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE,
- ProgressBar.Direction.RIGHT)
- .setUsualFluidInputCount(
- 6)
- .setUsualFluidOutputCount(
- 6);
- public static final GT_Recipe_Map sDistillationRecipes = new GT_Recipe_Map_DistillationTower().setRecipeConfigFile(
- "distillation",
- FIRST_FLUIDSTACK_INPUT)
- .setProgressBar(
- GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE,
- ProgressBar.Direction.RIGHT)
- .setUsualFluidOutputCount(
- 11)
- .setDisableOptimize(
- true);
- public static final GT_Recipe_Map_OilCracker sCrackingRecipes = (GT_Recipe_Map_OilCracker) new GT_Recipe_Map_OilCracker().setRecipeConfigFile(
- "cracking",
- FIRST_FLUIDSTACK_INPUT)
- .setProgressBar(
- GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE,
- ProgressBar.Direction.RIGHT)
- .setUsualFluidInputCount(
- 2);
+ /**
+ * using {@code .addTo(sChemicalRecipes)} will cause the recipe to be added to multiblock recipe map ONLY!
+ * use {@link GT_RecipeConstants#UniversalChemical} to add to both.
+ */
+ public static final GT_Recipe_Map sMultiblockChemicalRecipes = //
+ new GT_Recipe_Map_LargeChemicalReactor().setProgressBar(
+ GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE,
+ ProgressBar.Direction.RIGHT)
+ .setUsualFluidInputCount(6)
+ .setUsualFluidOutputCount(6);
+ public static final GT_Recipe_Map sDistillationRecipes = //
+ new GT_Recipe_Map_DistillationTower().setRecipeConfigFile("distillation", FIRST_FLUIDSTACK_INPUT)
+ .setProgressBar(
+ GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE,
+ ProgressBar.Direction.RIGHT)
+ .setUsualFluidOutputCount(11)
+ .setDisableOptimize(true);
+ public static final GT_Recipe_Map_OilCracker sCrackingRecipes = (GT_Recipe_Map_OilCracker) //
+ new GT_Recipe_Map_OilCracker().setRecipeConfigFile("cracking", FIRST_FLUIDSTACK_INPUT)
+ .setProgressBar(
+ GT_UITextures.PROGRESSBAR_ARROW_MULTIPLE,
+ ProgressBar.Direction.RIGHT)
+ .setUsualFluidInputCount(2);
/**
* @deprecated Use sCrackingRecipes instead
*/
@@ -3782,6 +3802,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
ret.add(add(r));
}
if (!ret.isEmpty()) {
+ builder.clearInvalid();
for (IGT_RecipeMap downstream : downstreams) {
downstream.doAdd(builder);
}
diff --git a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java
index eeeb60de94..6835f4d0eb 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java
@@ -466,7 +466,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateNoInputFluid() {
- return GT_Utility.isArrayEmptyOrNull(fluidInputs) ? noItemInputs() : invalidate();
+ return GT_Utility.isArrayEmptyOrNull(fluidInputs) ? noFluidInputs() : invalidate();
}
/**
@@ -482,7 +482,7 @@ public class GT_RecipeBuilder {
* unset. Both bound inclusive. Only supposed to be called by IGT_RecipeMap and not client code.
*/
public GT_RecipeBuilder validateNoOutputFluid() {
- return GT_Utility.isArrayEmptyOrNull(fluidOutputs) ? noItemInputs() : invalidate();
+ return GT_Utility.isArrayEmptyOrNull(fluidOutputs) ? noFluidOutputs() : invalidate();
}
/**
diff --git a/src/main/java/gregtech/api/util/GT_RecipeConstants.java b/src/main/java/gregtech/api/util/GT_RecipeConstants.java
index 206cb38118..5c619d5fba 100644
--- a/src/main/java/gregtech/api/util/GT_RecipeConstants.java
+++ b/src/main/java/gregtech/api/util/GT_RecipeConstants.java
@@ -80,6 +80,10 @@ public class GT_RecipeConstants {
Object.class,
"oredict_input");
+ /**
+ * Add fusion recipes. Dispatcher between complex fusion (which accepts arbitrarily many input/outputs) and classic
+ * fusion (2 in 1 out).
+ */
public static final IGT_RecipeMap Fusion = IGT_RecipeMap.newRecipeMap(builder -> {
if (GT_Utility.isArrayEmptyOrNull(builder.getFluidInputs())
|| GT_Utility.isArrayEmptyOrNull(builder.getFluidOutputs()))
@@ -89,6 +93,10 @@ public class GT_RecipeConstants {
return GT_Recipe_Map.sFusionRecipes.doAdd(builder);
});
+ /**
+ * Add a arc furnace recipe. Adds to both normal arc furnace and plasma arc furnace.
+ * Will override the fluid input with oxygen/plasma for the respective recipe maps, so there is no point setting it.
+ */
public static final IGT_RecipeMap UniversalArcFurnace = IGT_RecipeMap.newRecipeMap(builder -> {
if (!GT_Utility.isArrayOfLength(builder.getItemInputsBasic(), 1)
|| GT_Utility.isArrayEmptyOrNull(builder.getItemOutputs()))
@@ -113,6 +121,9 @@ public class GT_RecipeConstants {
return ret;
});
+ /**
+ * Add a chemical reactor recipe to both LCR and singleblocks.
+ */
public static final IGT_RecipeMap UniversalChemical = IGT_RecipeMap.newRecipeMap(builder -> {
for (ItemStack input : builder.getItemInputsBasic()) {
if (GT_Utility.isAnyIntegratedCircuit(input) && input.getItemDamage() >= 10) return GT_Utility.concat(
@@ -125,6 +136,11 @@ public class GT_RecipeConstants {
return builder.addTo(GT_Recipe_Map.sChemicalRecipes);
});
+ /**
+ * The one and only :tm: assline recipe adder.
+ * Uses {@link #RESEARCH_ITEM} metadata as research item, and {@link #RESEARCH_TIME} metadata as research time, unit
+ * in ticks.
+ */
public static final IGT_RecipeMap AssemblyLine = IGT_RecipeMap.newRecipeMap(builder -> {
Optional<GT_Recipe.GT_Recipe_WithAlt> rr = builder.forceOreDictInput()
.validateInputCount(4, 16)
@@ -219,6 +235,10 @@ public class GT_RecipeConstants {
return ret;
});
+ /**
+ * Just like any normal assembler recipe, however it accepts one input item to be oredicted. Pass in the item to
+ * oredict via {@link #OREDICT_INPUT}. It will be used along all other item inputs as input of this recipe.
+ */
public static IGT_RecipeMap AssemblerOD = IGT_RecipeMap.newRecipeMap(builder -> {
Collection<GT_Recipe> ret = new ArrayList<>();
for (ItemStack input : GT_OreDictUnificator.getOresImmutable(builder.getMetadata(OREDICT_INPUT))) {
@@ -230,6 +250,12 @@ public class GT_RecipeConstants {
return ret;
});
+ /**
+ * A universal fuel adder. It's actually just a dispatcher towards all actual fuel recipe maps.
+ * Dispatch based on {@link #FUEL_TYPE}. Uses {@link #FUEL_VALUE} as fuel value.
+ * Can use {@link FuelType#ordinal()} as a human-readable form of what FUEL_TYPE should be.
+ * You can bypass this and add to relevant fuel maps directly if you wish.
+ */
public static IGT_RecipeMap Fuel = IGT_RecipeMap.newRecipeMap(builder -> {
builder.validateInputCount(1, 1)
.validateNoInputFluid()
diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java
index 1cf5de780e..5d4d624513 100644
--- a/src/main/java/gregtech/common/items/ItemComb.java
+++ b/src/main/java/gregtech/common/items/ItemComb.java
@@ -32,7 +32,6 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gregtech.common.render.items.GT_GeneratedMaterial_Renderer;
-import gregtech.loaders.materialprocessing.ProcessingModSupport;
import gregtech.loaders.misc.GT_Bees;
public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer {
@@ -852,45 +851,26 @@ public class ItemComb extends Item implements IGT_ItemWithMaterialRenderer {
Voltage.ULV,
NI,
30 * 100);
- if (ProcessingModSupport.aEnableGCMarsMats) {
- addCentrifugeToMaterial(
- CombType.IRON,
- new Materials[] { Materials.Iron, Materials.Magnetite, Materials.BrownLimonite,
- Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.MeteoricIron },
- new int[] { 100 * 100, 90 * 100, 85 * 100, 85 * 100, 80 * 100, 75 * 100 },
- new int[] {},
- Voltage.ULV,
- NI,
- 30 * 100);
- addCentrifugeToMaterial(
- CombType.LEAD,
- new Materials[] { Materials.Steel, Materials.Magnetite, Materials.VanadiumMagnetite,
- Materials.Molybdenite, Materials.Molybdenum, Materials.MeteoricIron },
- new int[] { 100 * 100, 90 * 100, 80 * 100, 65 * 100, 65 * 100, 75 * 100 },
- new int[] {},
- Voltage.ULV,
- NI,
- 30 * 100);
- } else {
- addCentrifugeToMaterial(
- CombType.IRON,
- new Materials[] { Materials.Iron, Materials.Magnetite, Materials.BrownLimonite,
- Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.BandedIron },
- new int[] { 100 * 100, 90 * 100, 85 * 100, 85 * 100, 80 * 100, 85 * 100 },
- new int[] {},
- Voltage.ULV,
- NI,
- 30 * 100);
- addCentrifugeToMaterial(
- CombType.STEEL,
- new Materials[] { Materials.Steel, Materials.Magnetite, Materials.VanadiumMagnetite,
- Materials.BandedIron, Materials.Molybdenite, Materials.Molybdenum },
- new int[] { 100 * 100, 90 * 100, 80 * 100, 85 * 100, 65 * 100, 65 * 100 },
- new int[] {},
- Voltage.ULV,
- NI,
- 30 * 100);
- }
+
+ addCentrifugeToMaterial(
+ CombType.IRON,
+ new Materials[] { Materials.Iron, Materials.Magnetite, Materials.BrownLimonite,
+ Materials.YellowLimonite, Materials.VanadiumMagnetite, Materials.MeteoricIron },
+ new int[] { 100 * 100, 90 * 100, 85 * 100, 85 * 100, 80 * 100, 75 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+ addCentrifugeToMaterial(
+ CombType.LEAD,
+ new Materials[] { Materials.Steel, Materials.Magnetite, Materials.VanadiumMagnetite,
+ Materials.Molybdenite, Materials.Molybdenum, Materials.MeteoricIron },
+ new int[] { 100 * 100, 90 * 100, 80 * 100, 65 * 100, 65 * 100, 75 * 100 },
+ new int[] {},
+ Voltage.ULV,
+ NI,
+ 30 * 100);
+
addCentrifugeToMaterial(
CombType.NICKEL,
new Materials[] { Materials.Nickel, Materials.Garnierite, Materials.Pentlandite,
diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java
index e876252137..2ed494d0c0 100644
--- a/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java
+++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingModSupport.java
@@ -7,17 +7,7 @@ import gregtech.api.enums.OrePrefixes;
public class ProcessingModSupport implements gregtech.api.interfaces.IMaterialHandler {
- public static boolean aTGregSupport = TinkersGregworks.isModLoaded() || NewHorizonsCoreMod.isModLoaded();
- public static boolean aEnableUBCMats = UndergroundBiomes.isModLoaded() || aTGregSupport;
- public static boolean aEnableThaumcraftMats = Thaumcraft.isModLoaded() || aTGregSupport;
- public static boolean aEnableRotaryCraftMats = RotaryCraft.isModLoaded() || aTGregSupport;
- public static boolean aEnableThermalFoundationMats = ThermalFondation.isModLoaded() || aTGregSupport;
- public static boolean aEnableEnderIOMats = EnderIO.isModLoaded() || aTGregSupport;
- public static boolean aEnableRailcraftMats = Railcraft.isModLoaded() || aTGregSupport;
- public static boolean aEnableGCMarsMats = GalacticraftMars.isModLoaded() || aTGregSupport;
- public static boolean aEnableTwilightMats = TwilightForest.isModLoaded() || aTGregSupport;
- public static boolean aEnableMetallurgyMats = Metallurgy.isModLoaded() || aTGregSupport;
- public static boolean aEnableProjectRedMats = ProjectRedCore.isModLoaded() || aTGregSupport;
+ public static boolean aEnableThaumcraftMats = true;
public ProcessingModSupport() {
Materials.add(this);
@@ -26,35 +16,7 @@ public class ProcessingModSupport implements gregtech.api.interfaces.IMaterialHa
@Override
public void onMaterialsInit() {
// Disable Materials if Parent Mod is not loaded
- if (!aTGregSupport) {
- Materials.Dysprosium.mHasParentMod = false;
- Materials.Erbium.mHasParentMod = false;
- Materials.Gadolinium.mHasParentMod = false;
- Materials.Holmium.mHasParentMod = false;
- Materials.Indium.mHasParentMod = false;
- Materials.Lanthanum.mHasParentMod = false;
- Materials.Praseodymium.mHasParentMod = false;
- Materials.Promethium.mHasParentMod = false;
- Materials.Rubidium.mHasParentMod = false;
- Materials.Samarium.mHasParentMod = false;
- Materials.SamariumMagnetic.mHasParentMod = false;
- Materials.Scandium.mHasParentMod = false;
- Materials.Strontium.mHasParentMod = false;
- Materials.Tellurium.mHasParentMod = false;
- Materials.Terbium.mHasParentMod = false;
- Materials.Thulium.mHasParentMod = false;
- Materials.Ytterbium.mHasParentMod = false;
- Materials.HeeEndium.mHasParentMod = false;
- Materials.DarkIron.mHasParentMod = false;
- Materials.ElectrumFlux.mHasParentMod = false;
- Materials.Force.mHasParentMod = false;
- // Materials.Nikolite.mHasParentMod = false;
- Materials.Sunnarium.mHasParentMod = false;
- Materials.BlueAlloy.mHasParentMod = false;
- Materials.Vinteum.mHasParentMod = false;
- Materials.ChromiumDioxide.mHasParentMod = false;
- }
- if (!aEnableMetallurgyMats) {
+ if (!Metallurgy.isModLoaded()) {
Materials.Angmallen.mHasParentMod = false;
Materials.Atlarus.mHasParentMod = false;
Materials.Carmot.mHasParentMod = false;
@@ -83,20 +45,8 @@ public class ProcessingModSupport implements gregtech.api.interfaces.IMaterialHa
Materials.AstralSilver.mHasParentMod = false;
Materials.Trinium.mHasParentMod = false;
}
- if (!aEnableThaumcraftMats) {
- Materials.Amber.mHasParentMod = false;
- Materials.Thaumium.mHasParentMod = false;
- Materials.InfusedGold.mHasParentMod = false;
- Materials.InfusedAir.mHasParentMod = false;
- Materials.InfusedFire.mHasParentMod = false;
- Materials.InfusedEarth.mHasParentMod = false;
- Materials.InfusedWater.mHasParentMod = false;
- Materials.InfusedEntropy.mHasParentMod = false;
- Materials.InfusedOrder.mHasParentMod = false;
- Materials.InfusedVis.mHasParentMod = false;
- Materials.InfusedDull.mHasParentMod = false;
- }
- if (!aEnableUBCMats) {
+
+ if (!UndergroundBiomes.isModLoaded()) {
Materials.Blueschist.mHasParentMod = false;
Materials.Chert.mHasParentMod = false;
Materials.Dacite.mHasParentMod = false;
@@ -108,50 +58,23 @@ public class ProcessingModSupport implements gregtech.api.interfaces.IMaterialHa
Materials.Komatiite.mHasParentMod = false;
Materials.Rhyolite.mHasParentMod = false;
}
- if (!aEnableTwilightMats) {
- Materials.FierySteel.mHasParentMod = false;
- Materials.LiveRoot.mHasParentMod = false;
- Materials.IronWood.mHasParentMod = false;
- Materials.Steeleaf.mHasParentMod = false;
- Materials.Knightmetal.mHasParentMod = false;
- }
- if (!aEnableGCMarsMats) {
- Materials.Desh.mHasParentMod = false;
- Materials.MeteoricIron.mHasParentMod = false;
- Materials.MeteoricSteel.mHasParentMod = false;
- }
- if (!aEnableThermalFoundationMats) {
- Materials.Blizz.mHasParentMod = false;
- Materials.Enderium.mHasParentMod = false;
- }
- if (!aEnableRotaryCraftMats) {
+ if (!RotaryCraft.isModLoaded()) {
Materials.HSLA.mHasParentMod = false;
}
- if (!aEnableEnderIOMats) {
- Materials.DarkSteel.mHasParentMod = false;
- }
- if (!aEnableRailcraftMats) {
- Materials.Firestone.mHasParentMod = false;
- }
- if (!aEnableProjectRedMats) {
- Materials.Electrotine.mHasParentMod = false;
- }
- // Enable Materials if correct mod is Loaded
- Materials.ChromiumDioxide.mHasParentMod = Computronics.isModLoaded();
}
@Override
public void onComponentInit() {
- if (Computronics.isModLoaded()) {
- OrePrefixes.ring.enableComponent(Materials.RedAlloy);
- OrePrefixes.ring.enableComponent(Materials.NiobiumTitanium);
- OrePrefixes.foil.enableComponent(Materials.StainlessSteel);
- OrePrefixes.foil.enableComponent(Materials.ChromiumDioxide);
- OrePrefixes.foil.enableComponent(Materials.Iron);
- OrePrefixes.plate.enableComponent(Materials.ChromiumDioxide);
- OrePrefixes.screw.enableComponent(Materials.Copper);
- }
+
+ OrePrefixes.ring.enableComponent(Materials.RedAlloy);
+ OrePrefixes.ring.enableComponent(Materials.NiobiumTitanium);
+ OrePrefixes.foil.enableComponent(Materials.StainlessSteel);
+ OrePrefixes.foil.enableComponent(Materials.ChromiumDioxide);
+ OrePrefixes.foil.enableComponent(Materials.Iron);
+ OrePrefixes.plate.enableComponent(Materials.ChromiumDioxide);
+ OrePrefixes.screw.enableComponent(Materials.Copper);
+
}
@Override
diff --git a/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java
index bb2b0a89e9..779bd00d32 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/ArcFurnaceRecipes.java
@@ -2,9 +2,9 @@ package gregtech.loaders.postload.recipes;
import static gregtech.api.enums.ModIDs.Railcraft;
import static gregtech.api.util.GT_ModHandler.getModItem;
-import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sArcFurnaceRecipes;
import static gregtech.api.util.GT_RecipeBuilder.SECONDS;
import static gregtech.api.util.GT_RecipeBuilder.TICKS;
+import static gregtech.api.util.GT_RecipeConstants.UniversalArcFurnace;
import gregtech.api.enums.*;
import gregtech.api.util.GT_OreDictUnificator;
@@ -23,7 +23,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(8 * SECONDS)
.eut(96)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Long_Distance_Pipeline_Fluid.get(1L))
@@ -32,7 +32,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(9 * SECONDS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Long_Distance_Pipeline_Item.get(1L))
@@ -43,7 +43,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(9 * SECONDS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Long_Distance_Pipeline_Fluid_Pipe.get(1L))
@@ -52,7 +52,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(10 * TICKS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Long_Distance_Pipeline_Item_Pipe.get(1L))
@@ -63,7 +63,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(10 * TICKS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_Cupronickel.get(1L))
@@ -75,7 +75,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_Kanthal.get(1L))
@@ -87,7 +87,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_Nichrome.get(1L))
@@ -99,7 +99,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_TungstenSteel.get(1L))
@@ -111,7 +111,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_HSSG.get(1L))
@@ -123,7 +123,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_HSSS.get(1L))
@@ -135,7 +135,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_Naquadah.get(1L))
@@ -147,7 +147,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_NaquadahAlloy.get(1L))
@@ -159,7 +159,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_Trinium.get(1L))
@@ -171,7 +171,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_ElectrumFlux.get(1L))
@@ -183,7 +183,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(ItemList.Casing_Coil_AwakenedDraconium.get(1L))
@@ -195,7 +195,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.beta", 1L, 0))
@@ -204,7 +204,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(7 * SECONDS + 10 * TICKS)
.eut(90)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.beta", 1L, 1))
@@ -215,7 +215,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(7 * SECONDS + 10 * TICKS)
.eut(90)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.beta", 1L, 2))
@@ -226,7 +226,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(7 * SECONDS + 10 * TICKS)
.eut(90)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.beta", 1L, 13))
@@ -235,7 +235,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(9 * SECONDS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.beta", 1L, 14))
@@ -246,7 +246,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(9 * SECONDS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.beta", 1L, 15))
@@ -257,7 +257,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(9 * SECONDS)
.eut((int) TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 0))
@@ -266,7 +266,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(10 * SECONDS + 10 * TICKS)
.eut(150)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 1))
@@ -275,7 +275,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(10 * SECONDS + 10 * TICKS)
.eut(150)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 2))
@@ -286,7 +286,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(10 * SECONDS + 10 * TICKS)
.eut(150)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 3))
@@ -295,7 +295,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(12 * SECONDS)
.eut(TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 4))
@@ -306,7 +306,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(12 * SECONDS)
.eut(TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 5))
@@ -317,7 +317,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(12 * SECONDS)
.eut(TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 6))
@@ -326,7 +326,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(13 * SECONDS + 10 * TICKS)
.eut(210)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 7))
@@ -337,7 +337,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(13 * SECONDS + 10 * TICKS)
.eut(210)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 8))
@@ -348,7 +348,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(13 * SECONDS + 10 * TICKS)
.eut(210)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 9))
@@ -357,7 +357,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 10))
@@ -368,7 +368,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 11))
@@ -379,7 +379,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(15 * SECONDS)
.eut(TierEU.RECIPE_MV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 12))
@@ -388,7 +388,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(16 * SECONDS + 10 * TICKS)
.eut(270)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 13))
@@ -399,7 +399,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(16 * SECONDS + 10 * TICKS)
.eut(270)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.zeta", 1L, 14))
@@ -410,7 +410,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(16 * SECONDS + 10 * TICKS)
.eut(270)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 0))
@@ -419,7 +419,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 1))
@@ -430,7 +430,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 2))
@@ -441,7 +441,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 3))
@@ -450,7 +450,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(330)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 4))
@@ -461,7 +461,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(330)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 5))
@@ -472,7 +472,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(330)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 6))
@@ -481,7 +481,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 7))
@@ -492,7 +492,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(getModItem(Railcraft.modID, "machine.eta", 1L, 8))
@@ -503,7 +503,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(18 * SECONDS)
.eut(TierEU.RECIPE_HV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
GT_Values.RA.stdBuilder()
.itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Silicon, 1L))
@@ -512,7 +512,7 @@ public class ArcFurnaceRecipes implements Runnable {
.noFluidOutputs()
.duration(60 * SECONDS)
.eut((int) TierEU.RECIPE_LV)
- .addTo(sArcFurnaceRecipes);
+ .addTo(UniversalArcFurnace);
}
}
diff --git a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java
index df7f1e6f93..a34015e5e1 100644
--- a/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java
+++ b/src/main/java/gregtech/loaders/postload/recipes/BlastFurnaceRecipes.java
@@ -5,20 +5,15 @@ import static gregtech.api.util.GT_ModHandler.getModItem;
import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBlastRecipes;
import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPrimitiveBlastRecipes;
import static gregtech.api.util.GT_RecipeBuilder.*;
+import static gregtech.api.util.GT_RecipeConstants.ADDITIVE_AMOUNT;
import static gregtech.api.util.GT_RecipeConstants.COIL_HEAT;
-import mods.railcraft.common.blocks.aesthetics.cube.EnumCube;
-import mods.railcraft.common.items.RailcraftToolItems;
-
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
-import org.apache.commons.lang3.ArrayUtils;
-
import gregtech.GT_Mod;
import gregtech.api.enums.*;
-import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
@@ -675,155 +670,46 @@ public class BlastFurnaceRecipes implements Runnable {
}
}
- public void addPrimitiveBlastFurnaceRecipes(ItemStack[] inputs, int coalAmount, ItemStack[] outputs, int duration) {
- // compute if it can make fuel block version of the recipes
- boolean blockVersion = true;
- for (ItemStack inputStack : inputs) {
- if (inputStack.stackSize <= 6) {
- blockVersion = false;
- break;
- }
- }
-
- // skipping if it has been already set to false
- if (blockVersion) {
- for (ItemStack outputStack : outputs) {
- if (outputStack.stackSize <= 6) {
- blockVersion = false;
- break;
- }
- }
- }
-
- ItemStack[] inputsBlocks = new ItemStack[inputs.length];
- ItemStack[] outputsBlocks = new ItemStack[outputs.length];
-
- // allocating the two arrays only if block version is possible
- if (blockVersion) {
- for (int i = 0; i < inputs.length; i++) {
- ItemStack itemStack = inputs[i].copy();
- itemStack.stackSize *= 10;
- inputsBlocks[i] = itemStack;
- }
-
- for (int i = 0; i < outputs.length; i++) {
- ItemStack itemStack = outputs[i].copy();
- itemStack.stackSize *= 10;
- outputsBlocks[i] = itemStack;
- }
- }
-
- for (Materials coal : new Materials[] { Materials.Coal, Materials.Charcoal }) {
- // coal as gems
- GT_Values.RA.stdBuilder()
- .itemInputs(ArrayUtils.add(inputs, coal.getGems(coalAmount)))
- .itemOutputs(ArrayUtils.add(outputs, Materials.DarkAsh.getDustTiny(coalAmount)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
-
- // coal as dust
- GT_Values.RA.stdBuilder()
- .itemInputs(ArrayUtils.add(inputs, coal.getDust(coalAmount)))
- .itemOutputs(ArrayUtils.add(outputs, Materials.DarkAsh.getDustTiny(coalAmount)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
-
- if (!blockVersion) {
- continue;
- }
-
- // coal as block
- GT_Values.RA.stdBuilder()
- .itemInputs(ArrayUtils.add(inputs, coal.getBlocks(coalAmount)))
- .itemOutputs(ArrayUtils.add(outputs, Materials.DarkAsh.getDust(coalAmount)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration * 10)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
- }
-
- if (Railcraft.isModLoaded()) {
- // coal coke
- GT_Values.RA.stdBuilder()
- .itemInputs(ArrayUtils.add(inputs, RailcraftToolItems.getCoalCoke(coalAmount / 2)))
- .itemOutputs(ArrayUtils.add(outputs, Materials.Ash.getDustTiny(coalAmount / 2)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration * 2 / 3)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
-
- // coal coke block
- GT_Values.RA.stdBuilder()
- .itemInputs(ArrayUtils.add(inputs, EnumCube.COKE_BLOCK.getItem(coalAmount / 2)))
- .itemOutputs(ArrayUtils.add(outputs, Materials.Ash.getDust(coalAmount / 2)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration * 10 * 2 / 3)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
- }
+ public void registerPrimitiveBlastFurnaceRecipes() {
+ GT_Values.RA.stdBuilder()
- if (GTPlusPlus.isModLoaded()) {
- // cactus coke
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ArrayUtils.add(
- inputs,
- GT_ModHandler.getModItem(GTPlusPlus.modID, "itemCactusCoke", coalAmount * 2)))
- .itemOutputs(ArrayUtils.add(outputs, Materials.Ash.getDustTiny(coalAmount * 2)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration * 2 / 3)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
+ .itemInputs(Materials.Iron.getIngots(1))
+ .itemOutputs(Materials.Steel.getIngots(1))
+ .noFluidInputs()
+ .noFluidOutputs()
+ .duration(6 * MINUTES)
+ .eut(0)
+ .metadata(ADDITIVE_AMOUNT, 4)
+ .addTo(sPrimitiveBlastRecipes);
- // sugar coke
- GT_Values.RA.stdBuilder()
- .itemInputs(
- ArrayUtils.add(
- inputs,
- GT_ModHandler.getModItem(GTPlusPlus.modID, "itemSugarCoke", (coalAmount * 2))))
- .itemOutputs(ArrayUtils.add(outputs, Materials.Ash.getDustTiny(coalAmount * 2)))
- .noFluidInputs()
- .noFluidOutputs()
- .duration(duration * 2 / 3)
- .eut(0)
- .addTo(sPrimitiveBlastRecipes);
- }
+ GT_Values.RA.stdBuilder()
+ .itemInputs(Materials.Iron.getDust(1))
+ .itemOutputs(Materials.Steel.getIngots(1))
+ .noFluidInputs()
+ .noFluidOutputs()
+ .duration(6 * MINUTES)
+ .eut(0)
+ .metadata(ADDITIVE_AMOUNT, 4)
+ .addTo(sPrimitiveBlastRecipes);
- }
+ GT_Values.RA.stdBuilder()
+ .itemInputs(Materials.Iron.getBlocks(1))
+ .itemOutputs(Materials.Steel.getIngots(9))
+ .noFluidInputs()
+ .noFluidOutputs()
+ .duration(54 * MINUTES)
+ .eut(0)
+ .metadata(ADDITIVE_AMOUNT, 36)
+ .addTo(sPrimitiveBlastRecipes);
- public void registerPrimitiveBlastFurnaceRecipes() {
- addPrimitiveBlastFurnaceRecipes(
- new ItemStack[] { Materials.Iron.getIngots(1) },
- 4,
- new ItemStack[] { Materials.Steel.getIngots(1) },
- 6 * MINUTES);
-
- addPrimitiveBlastFurnaceRecipes(
- new ItemStack[] { Materials.Iron.getDust(1) },
- 4,
- new ItemStack[] { Materials.Steel.getIngots(1) },
- 6 * MINUTES);
-
- addPrimitiveBlastFurnaceRecipes(
- new ItemStack[] { Materials.Iron.getBlocks(1) },
- 36,
- new ItemStack[] { Materials.Steel.getIngots(9) },
- 54 * MINUTES);
-
- addPrimitiveBlastFurnaceRecipes(
- new ItemStack[] { Materials.Steel.getDust(1) },
- 2,
- new ItemStack[] { Materials.Steel.getIngots(1) },
- 6 * MINUTES);
+ GT_Values.RA.stdBuilder()
+ .itemInputs(Materials.Steel.getDust(1))
+ .itemOutputs(Materials.Steel.getIngots(1))
+ .noFluidInputs()
+ .noFluidOutputs()
+ .duration(6 * MINUTES)
+ .eut(0)
+ .metadata(ADDITIVE_AMOUNT, 2)
+ .addTo(sPrimitiveBlastRecipes);
}
}