diff options
Diffstat (limited to 'src/main/java/gregtech/api/util')
-rw-r--r-- | src/main/java/gregtech/api/util/GT_Recipe.java | 75 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_RecipeBuilder.java | 4 | ||||
-rw-r--r-- | src/main/java/gregtech/api/util/GT_RecipeConstants.java | 26 |
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() |