aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/util')
-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
3 files changed, 76 insertions, 29 deletions
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()