diff options
Diffstat (limited to 'src/main/java/gregtech/loaders/oreprocessing')
8 files changed, 523 insertions, 208 deletions
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java index 7d5d9a79c0..881b2ae4f1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java @@ -3,6 +3,7 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSlicerRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; @@ -40,8 +41,14 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr } private void registerSlicerRecipes(ItemStack stack) { - GT_Values.RA - .addSlicerRecipe(stack, ItemList.Shape_Slicer_Flat.get(0L), ItemList.Food_Sliced_Cheese.get(4L), 64, 4); + GT_Values.RA.stdBuilder() + .itemInputs(stack, ItemList.Shape_Slicer_Flat.get(0L)) + .itemOutputs(ItemList.Food_Sliced_Cheese.get(4L)) + .noFluidInputs() + .noFluidOutputs() + .duration(3 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(sSlicerRecipes); } private void registerBenderRecipes(ItemStack stack) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java index 03ab6b05de..cfb97560f1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java @@ -5,6 +5,7 @@ import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sImplosionRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; @@ -12,11 +13,18 @@ import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; +import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; import gregtech.api.GregTech_API; -import gregtech.api.enums.*; +import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.enums.TierEU; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -202,11 +210,52 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { // Implosion compressor recipes { - GT_Values.RA.addImplosionRecipe( - GT_Utility.copyAmount(3L, aStack), - 8, - GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)); + if (GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + } } // Crafting recipes @@ -310,11 +359,52 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { // Implosion compressor recipes { - GT_Values.RA.addImplosionRecipe( - GT_Utility.copyAmount(3L, aStack), - 8, - GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)); + if (GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + } } // Crafting recipes @@ -408,11 +498,52 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { // Implosion compressor recipes { - GT_Values.RA.addImplosionRecipe( - GT_Utility.copyAmount(3L, aStack), - 8, - GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)); + if (GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + } } // Crafting recipes @@ -486,11 +617,52 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { // Implosion compressor recipes { - GT_Values.RA.addImplosionRecipe( - GT_Utility.copyAmount(3L, aStack), - 8, - GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)); + if (GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), ItemList.Block_Powderbarrel.get(16)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("dynamite", 4, null)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), new ItemStack(Blocks.tnt, 8)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(3L, aStack), + GT_ModHandler.getIC2Item("industrialTnt", 2)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.DarkAsh, 2)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sImplosionRecipes); + } } // Crafting recipes diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java index f962c98e4f..afa18afa41 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java @@ -15,6 +15,7 @@ import gregtech.api.enums.TierEU; import gregtech.api.interfaces.ITexture; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -61,24 +62,32 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr } default -> { if (GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L) != null) { - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) - .itemOutputs( + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)); + if (GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L) == null) { + recipeBuilder.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)); + } else { + recipeBuilder.itemOutputs( GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)) - .noFluidInputs() + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L)); + } + recipeBuilder.noFluidInputs() .noFluidOutputs() .duration(1 * MINUTES) .eut(TierEU.RECIPE_MV) .addTo(sLatheRecipes); } if (GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L) != null) { - GT_Values.RA.stdBuilder() - .itemInputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)) - .itemOutputs( + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)); + if (GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) == null) { + recipeBuilder.itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)); + } else { + recipeBuilder.itemOutputs( GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L)) - .noFluidInputs() + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L)); + } + recipeBuilder.noFluidInputs() .noFluidOutputs() .duration(2 * MINUTES) .eut(TierEU.RECIPE_LV) diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java index 45c549351c..10570c698b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRecycling.java @@ -10,6 +10,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.SubTag; import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_RecipeBuilder; import gregtech.api.util.GT_Utility; public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRegistrator { @@ -26,12 +27,17 @@ public class ProcessingRecycling implements gregtech.api.interfaces.IOreRecipeRe if ((aMaterial != Materials.Empty) && (GT_Utility.getFluidForFilledItem(aStack, true) == null) && !aMaterial.contains(SubTag.SMELTING_TO_FLUID) && (GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L) != null)) { - GT_Values.RA.stdBuilder() - .itemInputs(aStack) - .itemOutputs( + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + recipeBuilder.itemInputs(aStack); + if (GT_Utility.getContainerItem(aStack, true) == null) { + recipeBuilder.itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L)); + } else { + recipeBuilder.itemOutputs( GT_Utility.getContainerItem(aStack, true), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L)) - .noFluidInputs() + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, aPrefix.mMaterialAmount / 3628800L)); + } + recipeBuilder.noFluidInputs() .noFluidOutputs() .duration(((int) Math.max(aMaterial.getMass() / 2L, 1L)) * TICKS) .eut(2) diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java index 0f28727558..0e8fe612f0 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingRound.java @@ -1,5 +1,8 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + import net.minecraft.item.ItemStack; import appeng.core.Api; @@ -23,12 +26,17 @@ public class ProcessingRound implements gregtech.api.interfaces.IOreRecipeRegist public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if (!aMaterial.contains(SubTag.NO_WORKING)) { - GT_Values.RA.addLatheRecipe( - GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L), - GT_Utility.copyAmount(1L, aStack), - null, - (int) Math.max(aMaterial.getMass() / 4L, 1L), - 8); + if (GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial, 1L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(((int) Math.max(aMaterial.getMass() / 4L, 1L)) * TICKS) + .eut(8) + .addTo(sLatheRecipes); + } + if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) { GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 1L), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java index b98768b69a..a17cfe0d27 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java @@ -1,7 +1,10 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; import net.minecraft.item.ItemStack; @@ -21,12 +24,14 @@ public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeReg @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addPulveriserRecipe( - GT_Utility.copyAmount(1L, aStack), - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L) }, - new int[] { 10000 }, - 100, - 2); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Wood, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(20 * SECONDS) + .eut(2) + .addTo(sMaceratorRecipes); GT_Values.RA.stdBuilder() .itemInputs(GT_Utility.copyAmount(8L, aStack)) @@ -37,11 +42,15 @@ public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeReg .eut(2) .addTo(sCompressorRecipes); - GT_Values.RA.addLatheRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L), - 16, - 8); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, Materials.Wood, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(16 * TICKS) + .eut(8) + .addTo(sLatheRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java index 4da8591a2b..9282e3850e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingScrew.java @@ -1,5 +1,7 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLatheRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -20,12 +22,16 @@ public class ProcessingScrew implements gregtech.api.interfaces.IOreRecipeRegist public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if (!aMaterial.contains(SubTag.NO_WORKING)) { - GT_Values.RA.addLatheRecipe( - GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), - GT_Utility.copyAmount(1L, aStack), - null, - (int) Math.max(aMaterial.getMass() / 8L, 1L), - calculateRecipeEU(aMaterial, 4)); + if (GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(((int) Math.max(aMaterial.getMass() / 8L, 1L)) * TICKS) + .eut(calculateRecipeEU(aMaterial, 4)) + .addTo(sLatheRecipes); + } if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { GT_ModHandler.addCraftingRecipe( diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java index dd16de83b7..7dbd6f23e1 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java @@ -1,9 +1,12 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sAssemblerRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sExtruderRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sFluidSolidficationRecipes; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes; import static gregtech.api.util.GT_RecipeBuilder.MINUTES; import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -50,12 +53,14 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg case toolHeadArrow -> { if (aMaterial.mStandardMoltenFluid != null) if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { - GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_Arrow.get(0L), - aMaterial.getMolten(36L), - GT_Utility.copyAmount(1L, aStack), - 16, - 4); + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_Arrow.get(0L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .fluidInputs(aMaterial.getMolten(36L)) + .noFluidOutputs() + .duration(16 * TICKS) + .eut(8) + .addTo(sFluidSolidficationRecipes); } if (aSpecialRecipeReq2) { GT_ModHandler.addCraftingRecipe( @@ -74,15 +79,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_MetaGenerated_Tool_01.INSTANCE .getToolWithStats(GT_MetaGenerated_Tool_01.AXE, 1, aMaterial, aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(2) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE - .getToolWithStats(GT_MetaGenerated_Tool_01.AXE, 1, aMaterial, aMaterial.mHandleMaterial, null), - 200, - 120); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(2)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.AXE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sAssemblerRecipes); + } if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), GT_Proxy.tBits, @@ -505,21 +520,27 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_Proxy.tBits, new Object[] { "XSX", "XSX", "ShS", 'X', OrePrefixes.plate.get(aMaterial), 'S', OrePrefixes.plate.get(Materials.Steel) }); - if (aMaterial.getMolten(1) != null) { - GT_Values.RA.addFluidSolidifierRecipe( - ItemList.Shape_Mold_ToolHeadDrill.get(0), - aMaterial.getMolten(144 * 4), - GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), - 5 * 20, - calculateRecipeEU(aMaterial, (int) GT_Values.VP[2])); + if (aMaterial.mStandardMoltenFluid != null) { + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Shape_Mold_ToolHeadDrill.get(0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L)) + .fluidInputs(aMaterial.getMolten(144 * 4)) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sFluidSolidficationRecipes); } - if (aMaterial.getIngots(1) != null) { - GT_Values.RA.addExtruderRecipe( - aMaterial.getIngots(4), - ItemList.Shape_Extruder_ToolHeadDrill.get(0), - GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), - 5 * 20, - calculateRecipeEU(aMaterial, (int) GT_Values.VP[2])); + if (GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 4L), + ItemList.Shape_Extruder_ToolHeadDrill.get(0)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sExtruderRecipes); } } } @@ -550,15 +571,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg } } } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(15) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE - .getToolWithStats(GT_MetaGenerated_Tool_01.FILE, 1, aMaterial, aMaterial.mHandleMaterial, null), - 200, - calculateRecipeEU(aMaterial, 120)); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadFile, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(15)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.FILE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } } case toolHeadHoe -> { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { @@ -571,15 +602,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(16) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE - .getToolWithStats(GT_MetaGenerated_Tool_01.HOE, 1, aMaterial, aMaterial.mHandleMaterial, null), - 200, - calculateRecipeEU(aMaterial, 120)); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(16)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.HOE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), GT_Proxy.tBits, @@ -613,19 +654,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_Proxy.tBits, new Object[] { "GGG", "f ", 'G', OrePrefixes.gem.get(aMaterial) }); } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(5) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( - GT_MetaGenerated_Tool_01.PICKAXE, - 1, - aMaterial, - aMaterial.mHandleMaterial, - null), - 200, - 120); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(5)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.PICKAXE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } } case toolHeadPlow -> { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { @@ -649,15 +696,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_Proxy.tBits, new Object[] { "GG", "GG", " f", 'G', OrePrefixes.gem.get(aMaterial) }); } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(6) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE - .getToolWithStats(GT_MetaGenerated_Tool_01.PLOW, 1, aMaterial, aMaterial.mHandleMaterial, null), - 200, - calculateRecipeEU(aMaterial, 120)); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(6)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.PLOW, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } } case toolHeadSaw -> { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { @@ -682,15 +739,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_Proxy.tBits, new Object[] { "GGf", 'G', OrePrefixes.gem.get(aMaterial) }); } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(7) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE - .getToolWithStats(GT_MetaGenerated_Tool_01.SAW, 1, aMaterial, aMaterial.mHandleMaterial, null), - 200, - calculateRecipeEU(aMaterial, 120)); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(7)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SAW, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } } case toolHeadSense -> { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { @@ -715,19 +782,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_Proxy.tBits, new Object[] { "GGG", " f ", " ", 'G', OrePrefixes.gem.get(aMaterial) }); } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(8) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( - GT_MetaGenerated_Tool_01.SENSE, - 1, - aMaterial, - aMaterial.mHandleMaterial, - null), - 200, - calculateRecipeEU(aMaterial, 120)); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(8)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SENSE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } } case toolHeadShovel -> { GT_ModHandler.addShapelessCraftingRecipe( @@ -738,19 +811,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg aMaterial.mHandleMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial) }); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(9) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( - GT_MetaGenerated_Tool_01.SHOVEL, - 1, - aMaterial, - aMaterial.mHandleMaterial, - null), - 200, - 120); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(9)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SHOVEL, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } if (aSpecialRecipeReq1) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), GT_Proxy.tBits, @@ -784,19 +863,25 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg GT_Proxy.tBits, new Object[] { " G", "fG", 'G', OrePrefixes.gem.get(aMaterial) }); } - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(10) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( - GT_MetaGenerated_Tool_01.SWORD, - 1, - aMaterial, - aMaterial.mHandleMaterial, - null), - 200, - calculateRecipeEU(aMaterial, 120)); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(10)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.SWORD, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } } case toolHeadUniversalSpade -> { GT_ModHandler.addShapelessCraftingRecipe( @@ -804,20 +889,27 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg .getToolWithStats(GT_MetaGenerated_Tool_01.UNIVERSALSPADE, 1, aMaterial, aMaterial, null), new Object[] { aOreDictName, OrePrefixes.stick.get(aMaterial), OrePrefixes.screw.get(aMaterial), ToolDictNames.craftingToolScrewdriver }); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(11) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( - GT_MetaGenerated_Tool_01.UNIVERSALSPADE, - 1, - aMaterial, - aMaterial.mHandleMaterial, - null), - 200, - 120); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null + && GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(11)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + GT_MetaGenerated_Tool_01.UNIVERSALSPADE, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } if (aSpecialRecipeReq2) GT_ModHandler.addCraftingRecipe( GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), GT_Proxy.tBits, @@ -1071,21 +1163,27 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg OrePrefixes.screw.get(Materials.Steel) }); } case toolHeadHammer, toolHeadMallet -> { - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), - GT_Utility.getIntegratedCircuit(14) }, - GT_Values.NF, - GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( - (aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) - ? GT_MetaGenerated_Tool_01.SOFTMALLET - : GT_MetaGenerated_Tool_01.HARDHAMMER, - 1, - aMaterial, - aMaterial.mHandleMaterial, - null), - 200, - 120); + if (GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L) != null) { + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial.mHandleMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), + GT_Utility.getIntegratedCircuit(14)) + .itemOutputs( + GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( + (aMaterial.contains(SubTag.BOUNCY)) || (aMaterial.contains(SubTag.WOOD)) + ? GT_MetaGenerated_Tool_01.SOFTMALLET + : GT_MetaGenerated_Tool_01.HARDHAMMER, + 1, + aMaterial, + aMaterial.mHandleMaterial, + null)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, (int) TierEU.RECIPE_MV)) + .addTo(sAssemblerRecipes); + } if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { GT_ModHandler.addShapelessCraftingRecipe( GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats( |