diff options
Diffstat (limited to 'src/main/java/gregtech/loaders/oreprocessing')
29 files changed, 2294 insertions, 1563 deletions
diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java index 0e5a2ae241..44474c65da 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingArrows.java @@ -1,5 +1,8 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.item.ItemStack; @@ -26,15 +29,15 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis tOutput, Enchantment.smite, EnchantmentHelper.getEnchantmentLevel(Enchantment.smite.effectId, tOutput) + 3); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.HolyWater.getFluid(25L), - tOutput, - null, - null, - null, - 100, - 2); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.HolyWater.getFluid(25L)) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(2) + .addTo(sChemicalBathRecipes); tOutput = GT_Utility.copyAmount(1L, aStack); GT_Utility.updateItemStack(tOutput); @@ -42,15 +45,15 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis tOutput, Enchantment.fireAspect, EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 3); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.FierySteel.getFluid(25L), - tOutput, - null, - null, - null, - 100, - 2); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.FierySteel.getFluid(25L)) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(2) + .addTo(sChemicalBathRecipes); tOutput = GT_Utility.copyAmount(1L, aStack); GT_Utility.updateItemStack(tOutput); @@ -58,15 +61,15 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis tOutput, Enchantment.fireAspect, EnchantmentHelper.getEnchantmentLevel(Enchantment.fireAspect.effectId, tOutput) + 1); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Blaze.getMolten(18L), - tOutput, - null, - null, - null, - 100, - 2); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Blaze.getMolten(18L)) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(2) + .addTo(sChemicalBathRecipes); tOutput = GT_Utility.copyAmount(1L, aStack); GT_Utility.updateItemStack(tOutput); @@ -74,15 +77,15 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis tOutput, Enchantment.knockback, EnchantmentHelper.getEnchantmentLevel(Enchantment.knockback.effectId, tOutput) + 1); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Rubber.getMolten(18L), - tOutput, - null, - null, - null, - 100, - 2); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Rubber.getMolten(18L)) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(2) + .addTo(sChemicalBathRecipes); tOutput = GT_Utility.copyAmount(1L, aStack); GT_Utility.updateItemStack(tOutput); @@ -91,15 +94,15 @@ public class ProcessingArrows implements gregtech.api.interfaces.IOreRecipeRegis gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE, EnchantmentHelper .getEnchantmentLevel(gregtech.api.enchants.Enchantment_EnderDamage.INSTANCE.effectId, tOutput) + 1); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Mercury.getFluid(25L), - tOutput, - null, - null, - null, - 100, - 2); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(tOutput) + .fluidInputs(Materials.Mercury.getFluid(25L)) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(2) + .addTo(sChemicalBathRecipes); if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial) && !aMaterial.contains(SubTag.NO_WORKING)) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java index 5add59e42d..d385c9b0c2 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java @@ -1,5 +1,8 @@ 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.sHammerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -79,7 +82,15 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist if (tStack1 != null) tStack1.stackSize = 9; if (tStack2 != null) tStack2.stackSize = 9; if (tStack3 != null) tStack3.stackSize = 9; - GT_Values.RA.addForgeHammerRecipe(aStack, tStack2, 100, 24); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(tStack2) + .noFluidInputs() + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(24) + .addTo(sHammerRecipes); if (GregTech_API.sRecipeFile.get( ConfigCategories.Recipes.storageblockdecrafting, @@ -95,11 +106,15 @@ public class ProcessingBlock implements gregtech.api.interfaces.IOreRecipeRegist } if (!OrePrefixes.block.isIgnored(aMaterial)) { - GT_ModHandler.addCompressionRecipe( - GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 9L), - GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L), - 300, - calculateRecipeEU(aMaterial, 2)); + // 9 ingots -> 1 block + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 9L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 2)) + .addTo(sCompressorRecipes); } switch (aMaterial.mName) { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java index 9d3475bcc8..536d610d61 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCell.java @@ -1,5 +1,8 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sElectrolyzerRecipes; + import java.util.ArrayList; import net.minecraft.item.ItemStack; @@ -94,48 +97,71 @@ public class ProcessingCell implements IOreRecipeRegistrator { tItemAmount = GT_Utility.ceilDiv(tItemAmount * tDensityMultiplier, aMaterial.getDensity()); if (tList.size() > 0) { if ((aMaterial.mExtraData & 0x1) != 0) { - if (GT_Utility.getFluidForFilledItem(aStack, true) == null) { - // dust stuffed cell e.g. Phosphate, Phosphorous Pentoxide - GT_Values.RA.addElectrolyzerRecipe( - GT_Utility.copyAmount(tItemAmount, aStack), - tCapsuleCount <= 0L ? 0 : (int) tCapsuleCount, - tList.get(0), - tList.size() >= 2 ? tList.get(1) : null, - tList.size() >= 3 ? tList.get(2) : null, - tList.size() >= 4 ? tList.get(3) : null, - tList.size() >= 5 ? tList.get(4) : null, - tCapsuleCount >= 0L ? tList.size() >= 6 ? tList.get(5) : null - : ItemList.Cell_Empty.get(-tCapsuleCount), - (int) Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount)), - Math.min(4, tList.size()) * 30); - } else { - long tCellBalance = tCapsuleCount + tItemAmount - 1; - GT_Values.RA.addElectrolyzerRecipe( - aStack, - tCellBalance <= 0L ? 0 : (int) tCellBalance, + // Electrolyzer recipe + { + if (GT_Utility.getFluidForFilledItem(aStack, true) == null) { + int capsuleCount = tCapsuleCount <= 0L ? 0 : (int) tCapsuleCount; + ItemStack cells = capsuleCount <= 0 ? null + : ItemList.Cell_Empty.get(capsuleCount); + // dust stuffed cell e.g. Phosphate, Phosphorous Pentoxide + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(tItemAmount, aStack), cells) + .itemOutputs( + tList.get(0), + tList.size() >= 2 ? tList.get(1) : null, + tList.size() >= 3 ? tList.get(2) : null, + tList.size() >= 4 ? tList.get(3) : null, + tList.size() >= 5 ? tList.get(4) : null, + tCapsuleCount >= 0L ? tList.size() >= 6 ? tList.get(5) : null + : ItemList.Cell_Empty.get(-tCapsuleCount)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(sElectrolyzerRecipes); + } else { + long tCellBalance = tCapsuleCount + tItemAmount - 1; + int capsuleCount = tCellBalance <= 0L ? 0 : (int) tCellBalance; + ItemStack cells = capsuleCount <= 0 ? null + : ItemList.Cell_Empty.get(capsuleCount); + + GT_Values.RA.stdBuilder() + .itemInputs(aStack, cells) + .itemOutputs( + tList.get(0), + tList.size() >= 2 ? tList.get(1) : null, + tList.size() >= 3 ? tList.get(2) : null, + tList.size() >= 4 ? tList.get(3) : null, + tList.size() >= 5 ? tList.get(4) : null, + tCapsuleCount >= 0L ? tList.size() >= 6 ? tList.get(5) : null + : tCellBalance < 0 ? ItemList.Cell_Empty.get(-tCellBalance) : null) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(sElectrolyzerRecipes); + } + } + } + if ((aMaterial.mExtraData & 0x2) != 0) { + ItemStack emptyCells = tCapsuleCount > 0 ? ItemList.Cell_Empty.get(tCapsuleCount) + : null; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(tItemAmount, aStack), emptyCells) + .itemOutputs( tList.get(0), tList.size() >= 2 ? tList.get(1) : null, tList.size() >= 3 ? tList.get(2) : null, tList.size() >= 4 ? tList.get(3) : null, tList.size() >= 5 ? tList.get(4) : null, tCapsuleCount >= 0L ? tList.size() >= 6 ? tList.get(5) : null - : tCellBalance < 0 ? ItemList.Cell_Empty.get(-tCellBalance) : null, - (int) Math.max(1L, Math.abs(aMaterial.getProtons() * 8L * tItemAmount)), - Math.min(4, tList.size()) * 30); - } - } - if ((aMaterial.mExtraData & 0x2) != 0) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(tItemAmount, aStack), - tCapsuleCount <= 0L ? 0 : (int) tCapsuleCount, - tList.get(0), - tList.size() >= 2 ? tList.get(1) : null, - tList.size() >= 3 ? tList.get(2) : null, - tList.size() >= 4 ? tList.get(3) : null, - tList.size() >= 5 ? tList.get(4) : null, - tCapsuleCount >= 0L ? tList.size() >= 6 ? tList.get(5) : null - : ItemList.Cell_Empty.get(-tCapsuleCount), - (int) Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))); + : ItemList.Cell_Empty.get(-tCapsuleCount)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, Math.abs(aMaterial.getMass() * 2L * tItemAmount))) + .eut(5) + .addTo(sCentrifugeRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java index 97ee4e898f..7fb13aa6a3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrafting.java @@ -3,6 +3,10 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.AppliedEnergistics2; import static gregtech.api.enums.Mods.BuildCraftSilicon; import static gregtech.api.enums.Mods.NewHorizonsCoreMod; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sLaserEngraverRecipes; +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 net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; @@ -11,6 +15,7 @@ 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.TierEU; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -30,363 +35,533 @@ public class ProcessingCrafting implements gregtech.api.interfaces.IOreRecipeReg GT_Utility.copyAmount(1L, aStack), Materials.Concrete.getMolten(144L), new ItemStack(net.minecraft.init.Items.comparator, 1, 0), - 80, - 20); - case "craftingWireCopper", "craftingWireTin" -> GT_Values.RA.addAssemblerRecipe( - ItemList.Circuit_Basic.get(1L), - GT_Utility.copyAmount(1L, aStack), - GT_ModHandler.getIC2Item("frequencyTransmitter", 1L), - 80, - 20); - case "craftingLensBlue" -> { - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.IC2_LapotronCrystal.getWildcard(1L), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L), - 900, - 480, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Chip_CrystalCPU.get(1L), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Chip_CrystalSoC.get(1), - 600, - 40000, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_PIC.get(1), - 1200, - 480, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_PIC.get(4), + 800, + 1); + case "craftingWireCopper", "craftingWireTin" -> { + GT_Values.RA.addAssemblerRecipe( + ItemList.Circuit_Basic.get(1L), + GT_Utility.copyAmount(1L, aStack), + GT_ModHandler.getIC2Item("frequencyTransmitter", 1L), 800, - 1920, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer5.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_QPIC.get(1), - 2400, - 500000, - true); + 1); + } + case "craftingLensBlue" -> { + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 13)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.IC2_LapotronCrystal.getWildcard(1L), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Parts_Crystal_Chip_Master.get(3L)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Chip_CrystalCPU.get(1L), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Chip_CrystalSoC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(40000) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_PIC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_PIC.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_QPIC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(2 * MINUTES) + .eut(TierEU.RECIPE_UV) + .addTo(sLaserEngraverRecipes); + } case "craftingLensYellow" -> { - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_LPIC.get(1), - 800, - 120, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_LPIC.get(4), - 600, - 480, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_SoC.get(1), - 900, - 1920, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer4.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_SoC.get(4), - 600, - 7680, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer5.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_SoC.get(8), - 300, - 30720, - true); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 14)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_LPIC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .duration(40 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_LPIC.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC.get(8)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(sLaserEngraverRecipes); } case "craftingLensOrange" -> { - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Simple_SoC.get(1), - 300, - 64, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Simple_SoC.get(4), - 300, - 256, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Simple_SoC.get(16), - 300, - 1024, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer4.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Simple_SoC.get(64), - 300, - 4096, - false); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(64) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(4)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(256) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(16)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(1024) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Simple_SoC.get(64)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(4096) + .addTo(sLaserEngraverRecipes); + } case "craftingLensCyan" -> { - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Ram.get(1), - 1200, - 120, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Ram.get(4), - 900, - 480, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Ram.get(8), - 600, - 1920, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer4.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Ram.get(16), - 300, - 7680, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer5.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_Ram.get(32), - 150, - 30720, - true); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 15)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(1)) + .noFluidInputs() + .noFluidOutputs() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(8)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(16)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_Ram.get(32)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LuV) + .addTo(sLaserEngraverRecipes); + } case "craftingLensRed" -> { - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Redstone, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0), - 50, - 120); - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.foil, Materials.RedAlloy, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EtchedLowVoltageWiring", 1L, 0), - 200, - 16); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_ILC.get(1), - 1200, - 120, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_ILC.get(4), - 900, - 480, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_ILC.get(8), - 600, - 1920, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer4.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_NPIC.get(1), - 1800, - 30720, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer5.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_NPIC.get(4), - 1500, - 122880, - true); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plate, Materials.Redstone, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(BuildCraftSilicon.ID, "redstoneChipset", 1L, 0)) + .noFluidInputs() + .noFluidOutputs() + .duration(2 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.RedAlloy, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(NewHorizonsCoreMod.ID, "item.EtchedLowVoltageWiring", 1L, 0)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(16) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ILC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ILC.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ILC.get(8)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_NPIC.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_NPIC.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_ZPM) + .addTo(sLaserEngraverRecipes); + } case "craftingLensGreen" -> { - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Chip_CrystalCPU.get(1), - 600, - 10000, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Chip_CrystalSoC.get(1L), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Chip_CrystalSoC2.get(1), - 1200, - 80000, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_ULPIC.get(2), - 600, - 30, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_ULPIC.get(8), - 600, - 120, - false); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_SoC2.get(1), - 1800, - 1920, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer4.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_SoC2.get(2), - 1500, - 7680, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer5.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_SoC2.get(4), - 1200, - 30720, - true); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Parts_Crystal_Chip_Elite.get(1L), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Chip_CrystalCPU.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(10000) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Chip_CrystalSoC.get(1L), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Chip_CrystalSoC2.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(80000) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ULPIC.get(2)) + .noFluidInputs() + .noFluidOutputs() + .duration(30 * SECONDS) + .eut(30) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_ULPIC.get(8)) + .noFluidInputs() + .noFluidOutputs() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC2.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(1 * MINUTES + 30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC2.get(2)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(1 * MINUTES + 15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_SoC2.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_LuV) + .addTo(sLaserEngraverRecipes); } case "craftingLensWhite" -> { - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19), - 2000, - 1920); - GT_Values.RA.addLaserEngraverRecipe( - new ItemStack(Blocks.sandstone, 1, 2), - GT_Utility.copyAmount(0L, aStack), - new ItemStack(Blocks.sandstone, 1, 1), - 50, - 16); - GT_Values.RA.addLaserEngraverRecipe( - new ItemStack(Blocks.stone, 1, 0), - GT_Utility.copyAmount(0L, aStack), - new ItemStack(Blocks.stonebrick, 1, 3), - 50, - 16); - GT_Values.RA.addLaserEngraverRecipe( - new ItemStack(Blocks.quartz_block, 1, 0), - GT_Utility.copyAmount(0L, aStack), - new ItemStack(Blocks.quartz_block, 1, 1), - 50, - 16); - GT_Values.RA.addLaserEngraverRecipe( - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1L), - GT_Utility.copyAmount(0L, aStack), - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartzChiseled", 1L), - 50, - 16); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_CPU.get(1), - 1200, - 120, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer2.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_CPU.get(4), - 900, - 480, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer3.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_CPU.get(8), - 600, - 1920, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer4.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_CPU.get(16), - 300, - 7680, - true); - GT_Values.RA.addLaserEngraverRecipe( - ItemList.Circuit_Silicon_Wafer5.get(1), - GT_Utility.copyAmount(0L, aStack), - ItemList.Circuit_Wafer_CPU.get(32), - 150, - 30720, - true); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.Iron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.block, Materials.WroughtIron, 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 19)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * MINUTES + 40 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.sandstone, 1, 2), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(new ItemStack(Blocks.sandstone, 1, 1)) + .noFluidInputs() + .noFluidOutputs() + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.stone, 1, 0), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(new ItemStack(Blocks.stonebrick, 1, 3)) + .noFluidInputs() + .noFluidOutputs() + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(new ItemStack(Blocks.quartz_block, 1, 0), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(new ItemStack(Blocks.quartz_block, 1, 1)) + .noFluidInputs() + .noFluidOutputs() + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartz", 1L), + GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(AppliedEnergistics2.ID, "tile.BlockQuartzChiseled", 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(2 * SECONDS + 10 * TICKS) + .eut(16) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(1)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer2.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(4)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(45 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer3.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(8)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_EV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer4.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(16)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(15 * SECONDS) + .eut(TierEU.RECIPE_IV) + .addTo(sLaserEngraverRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(ItemList.Circuit_Silicon_Wafer5.get(1), GT_Utility.copyAmount(0L, aStack)) + .itemOutputs(ItemList.Circuit_Wafer_CPU.get(32)) + .noFluidInputs() + .noFluidOutputs() + .requiresCleanRoom() + .duration(7 * SECONDS + 10 * TICKS) + .eut(TierEU.RECIPE_LuV) + .addTo(sLaserEngraverRecipes); + } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java index 9fdcb14055..2ab11042e3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrop.java @@ -1,5 +1,8 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import net.minecraftforge.fluids.FluidRegistry; import gregtech.api.enums.GT_Values; @@ -18,9 +21,18 @@ public class ProcessingCrop implements gregtech.api.interfaces.IOreRecipeRegistr @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) { - GT_ModHandler.addCompressionRecipe( - gregtech.api.util.GT_Utility.copyAmount(8L, aStack), - ItemList.IC2_PlantballCompressed.get(1L)); + // Compressor recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(gregtech.api.util.GT_Utility.copyAmount(8L, aStack)) + .itemOutputs(ItemList.IC2_PlantballCompressed.get(1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(2) + .addTo(sCompressorRecipes); + } + switch (aOreDictName) { case "cropTea" -> { GT_Values.RA.addBrewingRecipe(aStack, FluidRegistry.WATER, FluidRegistry.getFluid("potion.tea"), false); diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java index a0c9b56b53..bc3895d60e 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrushedOre.java @@ -1,5 +1,11 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sSifterRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; @@ -21,11 +27,15 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR ItemStack aStack) { switch (aPrefix) { case crushedCentrifuged -> { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), - 10, - 16); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * TICKS) + .eut(16) + .addTo(sHammerRecipes); + GT_ModHandler.addPulverisationRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), @@ -37,44 +47,62 @@ public class ProcessingCrushedOre implements gregtech.api.interfaces.IOreRecipeR false); } case crushedPurified -> { - GT_ModHandler.addThermalCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - new int[] { 10000, 1111 }, - (int) Math.min(5000L, Math.abs(aMaterial.getMass() * 20L)), - GT_OreDictUnificator.get( - OrePrefixes.crushedCentrifuged, - aMaterial.mMacerateInto, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), - 1L), - GT_OreDictUnificator.get( - OrePrefixes.dust, - GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), - 1L)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs( + GT_OreDictUnificator.get( + OrePrefixes.crushedCentrifuged, + aMaterial.mMacerateInto, + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), + 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), + 1L)) + .outputChances(10000, 1111) + .noFluidInputs() + .noFluidOutputs() + .duration(25 * SECONDS) + .eut(48) + .addTo(sThermalCentrifugeRecipes); + ItemStack tGem = GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L); if (tGem != null) { switch (aMaterial.mName) { - case "Tanzanite", "Sapphire", "Olivine", "GreenSapphire", "Opal", "Amethyst", "Emerald", "Ruby", "Amber", "Diamond", "FoolsRuby", "BlueTopaz", "GarnetRed", "Topaz", "Jasper", "GarnetYellow" -> GT_Values.RA - .addSifterRecipe( - GT_Utility.copyAmount(1L, aStack), - new ItemStack[] { + case "Tanzanite", "Sapphire", "Olivine", "GreenSapphire", "Opal", "Amethyst", "Emerald", "Ruby", "Amber", "Diamond", "FoolsRuby", "BlueTopaz", "GarnetRed", "Topaz", "Jasper", "GarnetYellow" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), + tGem, + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L)) + .outputChances(300, 1200, 4500, 1400, 2800, 3500) + .noFluidInputs() + .noFluidOutputs() + .duration(40 * SECONDS) + .eut(16) + .addTo(sSifterRecipes); + } + default -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs( GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), - GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), tGem, + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), + tGem, GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L) }, - new int[] { 300, 1200, 4500, 1400, 2800, 3500 }, - 800, - 16); - default -> GT_Values.RA.addSifterRecipe( - GT_Utility.copyAmount(1L, aStack), - new ItemStack[] { GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, tGem, 1L), - GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, tGem, 1L), tGem, - GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, tGem, 1L), - GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, tGem, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L) }, - new int[] { 100, 400, 1500, 2000, 4000, 5000 }, - 800, - 16); + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, tGem, 1L)) + .outputChances(100, 400, 1500, 2000, 4000, 5000) + .noFluidInputs() + .noFluidOutputs() + .duration(40 * SECONDS) + .eut(16) + .addTo(sSifterRecipes); + } } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java index 3e64f05773..0f4451df53 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingCrystallized.java @@ -1,5 +1,8 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; @@ -19,11 +22,16 @@ public class ProcessingCrystallized implements gregtech.api.interfaces.IOreRecip @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), - 10, - 16); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * TICKS) + .eut(16) + .addTo(sHammerRecipes); + GT_ModHandler.addPulverisationRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java index 571b3d1a7f..e7cbc80241 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDirty.java @@ -1,6 +1,12 @@ package gregtech.loaders.oreprocessing; -import gregtech.GT_Mod; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + +import net.minecraft.item.ItemStack; + import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; @@ -21,11 +27,15 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, net.minecraft.item.ItemStack aStack) { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L), - 10, - 16); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustImpure, aMaterial.mMacerateInto, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(10) + .eut(16) + .addTo(sHammerRecipes); + GT_ModHandler.addPulverisationRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get( @@ -52,91 +62,77 @@ public class ProcessingDirty implements gregtech.api.interfaces.IOreRecipeRegist GT_Utility.selectItemInList(0, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)); - GT_ModHandler.addThermalCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - new int[] { 10000, 1111, 10000 }, - (int) Math.min(5000L, Math.abs(aMaterial.getMass() * 20L)), - GT_OreDictUnificator - .get(aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedCentrifuged : OrePrefixes.dust, aMaterial, 1L), - GT_OreDictUnificator.get( - OrePrefixes.dust, - GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), - 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)); - if (aMaterial.contains(SubTag.WASHING_MERCURY)) GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Mercury.getFluid(1000L), - GT_OreDictUnificator.get( - aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, - aMaterial, - 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), - new int[] { 10000, 7000, 4000 }, - 800, - 8); - if (aMaterial.contains(SubTag.WASHING_MERCURY_99_PERCENT)) GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Mercury.getFluid(1000L), - GT_OreDictUnificator.get( - aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, - aMaterial, - 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), - new int[] { 10000, 9900, 4000 }, - 800, - 8); - if (aMaterial.contains(SubTag.WASHING_SODIUMPERSULFATE)) GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.SodiumPersulfate.getFluid(GT_Mod.gregtechproxy.mDisableOldChemicalRecipes ? 1000L : 100L), - GT_OreDictUnificator.get( - aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, - aMaterial, - 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), - new int[] { 10000, 7000, 4000 }, - 800, - 8); - for (Materials tMaterial : aMaterial.mOreByProducts) { - if (tMaterial.contains(SubTag.WASHING_MERCURY)) GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Mercury.getFluid(1000L), - GT_OreDictUnificator.get( - aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, - aMaterial, - 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), - new int[] { 10000, 7000, 4000 }, - 800, - 8); - if (tMaterial.contains(SubTag.WASHING_MERCURY_99_PERCENT)) GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Mercury.getFluid(1000L), - GT_OreDictUnificator.get( - aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, - aMaterial, - 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), - new int[] { 10000, 9900, 4000 }, - 800, - 8); - if (tMaterial.contains(SubTag.WASHING_SODIUMPERSULFATE)) GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.SodiumPersulfate.getFluid(GT_Mod.gregtechproxy.mDisableOldChemicalRecipes ? 1000L : 100L), + OrePrefixes prefix = aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedCentrifuged : OrePrefixes.dust; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(prefix, aMaterial, 1L), GT_OreDictUnificator.get( - aPrefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified : OrePrefixes.dustPure, - aMaterial, + OrePrefixes.dust, + GT_Utility.selectItemInList(1, aMaterial.mMacerateInto, aMaterial.mOreByProducts), 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, tMaterial.mMacerateInto, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L), - new int[] { 10000, 7000, 4000 }, - 800, - 8); + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 1111, 10000) + .noFluidInputs() + .noFluidOutputs() + .duration(25 * SECONDS) + .eut(48) + .addTo(sThermalCentrifugeRecipes); + + addChemicalBathRecipes(aMaterial, aStack, aPrefix); + + for (Materials tMaterial : aMaterial.mOreByProducts) { + addChemicalBathRecipes(tMaterial, aStack, aPrefix); + } + } + + private void addChemicalBathRecipes(Materials material, ItemStack stack, OrePrefixes prefix) { + OrePrefixes chemicalBathPrefix = prefix == OrePrefixes.crushed ? OrePrefixes.crushedPurified + : OrePrefixes.dustPure; + + if (material.contains(SubTag.WASHING_MERCURY)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack)) + .itemOutputs( + GT_OreDictUnificator.get(chemicalBathPrefix, material, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, material.mMacerateInto, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 7000, 4000) + .fluidInputs(Materials.Mercury.getFluid(1000L)) + .noFluidOutputs() + .duration(40 * SECONDS) + .eut(8) + .addTo(sChemicalBathRecipes); + } + if (material.contains(SubTag.WASHING_MERCURY_99_PERCENT)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack)) + .itemOutputs( + GT_OreDictUnificator.get(chemicalBathPrefix, material, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, material.mMacerateInto, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 9900, 4000) + .fluidInputs(Materials.Mercury.getFluid(1000L)) + .noFluidOutputs() + .duration(40 * SECONDS) + .eut(8) + .addTo(sChemicalBathRecipes); + } + if (material.contains(SubTag.WASHING_SODIUMPERSULFATE)) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack)) + .itemOutputs( + GT_OreDictUnificator.get(chemicalBathPrefix, material, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, material.mMacerateInto, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Stone, 1L)) + .outputChances(10000, 7000, 4000) + .fluidInputs(Materials.SodiumPersulfate.getFluid(100L)) + .noFluidOutputs() + .duration(40 * SECONDS) + .eut(8) + .addTo(sChemicalBathRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java index e7f2f52de0..758ffcd3b9 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java @@ -1,5 +1,10 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; +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_RecipeBuilder.SECONDS; + import java.util.ArrayList; import net.minecraft.item.ItemStack; @@ -9,7 +14,6 @@ import gregtech.api.enums.*; import gregtech.api.objects.MaterialStack; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; -import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_RecipeRegistrator; import gregtech.api.util.GT_Utility; @@ -78,9 +82,15 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr } else if (!aMaterial.contains(SubTag.NO_WORKING)) { if ((!OrePrefixes.block.isIgnored(aMaterial)) && (null == GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L))) { - GT_ModHandler.addCompressionRecipe( - GT_Utility.copyAmount(9L, aStack), - GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(2) + .addTo(sCompressorRecipes); } // This is so disgustingly bad. if (((OrePrefixes.block.isIgnored(aMaterial)) @@ -95,9 +105,17 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr && (aMaterial != Materials.Paper) && (aMaterial != MaterialsUEVplus.TranscendentMetal) && (aMaterial != Materials.Clay)) { - GT_ModHandler.addCompressionRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)); + // compressor recipe + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(2) + .addTo(sCompressorRecipes); + } } } if ((aMaterial.mMaterialList.size() > 0) && ((aMaterial.mExtraData & 0x3) != 0)) { @@ -152,35 +170,41 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr break; } } - if ((aMaterial.mExtraData & 0x1) != 0) GT_Values.RA.addElectrolyzerRecipe( - GT_Utility.copyAmount(tItemAmount, aStack), - tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount) : null, - null, - tFluid, - tList.size() < 1 ? null : tList.get(0), - tList.size() < 2 ? null : tList.get(1), - tList.size() < 3 ? null : tList.get(2), - tList.size() < 4 ? null : tList.get(3), - tList.size() < 5 ? null : tList.get(4), - tList.size() < 6 ? null : tList.get(5), - null, - (int) Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount)), - Math.min(4, tList.size()) * 30); + if ((aMaterial.mExtraData & 0x1) != 0) { + ItemStack cells = tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount) : null; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(tItemAmount, aStack), cells) + .itemOutputs( + tList.size() < 1 ? null : tList.get(0), + tList.size() < 2 ? null : tList.get(1), + tList.size() < 3 ? null : tList.get(2), + tList.size() < 4 ? null : tList.get(3), + tList.size() < 5 ? null : tList.get(4), + tList.size() < 6 ? null : tList.get(5)) + .noFluidInputs() + .fluidOutputs(tFluid) + .duration(Math.max(1L, Math.abs(aMaterial.getProtons() * 2L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 30) + .addTo(sElectrolyzerRecipes); + } if ((aMaterial.mExtraData & 0x2) != 0) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(tItemAmount, aStack), - tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount) : null, - null, - tFluid, - tList.size() < 1 ? null : tList.get(0), - tList.size() < 2 ? null : tList.get(1), - tList.size() < 3 ? null : tList.get(2), - tList.size() < 4 ? null : tList.get(3), - tList.size() < 5 ? null : tList.get(4), - tList.size() < 6 ? null : tList.get(5), - null, - (int) Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount)), - Math.min(4, tList.size()) * 5); + GT_Values.RA.stdBuilder() + .itemInputs( + GT_Utility.copyAmount(tItemAmount, aStack), + tCapsuleCount > 0L ? ItemList.Cell_Empty.get(tCapsuleCount) : null) + .itemOutputs( + tList.size() < 1 ? null : tList.get(0), + tList.size() < 2 ? null : tList.get(1), + tList.size() < 3 ? null : tList.get(2), + tList.size() < 4 ? null : tList.get(3), + tList.size() < 5 ? null : tList.get(4), + tList.size() < 6 ? null : tList.get(5)) + .noFluidInputs() + .fluidOutputs(tFluid) + .duration(Math.max(1L, Math.abs(aMaterial.getMass() * 4L * tItemAmount))) + .eut(Math.min(4, tList.size()) * 5) + .addTo(sCentrifugeRecipes); } } } @@ -237,7 +261,7 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr case "Mercury": break; case "Oilsands": - GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes.addRecipe( + sCentrifugeRecipes.addRecipe( true, new ItemStack[] { GT_Utility.copyAmount(1L, aStack) }, null, @@ -374,90 +398,75 @@ public class ProcessingDust implements gregtech.api.interfaces.IOreRecipeRegistr if (tImpureStack == null) { tImpureStack = GT_OreDictUnificator.get(OrePrefixes.cell, tByProduct, 1L); if (tImpureStack == null) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - 0, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), - null, - null, - null, - null, - null, - (int) Math.max(1L, aMaterial.getMass())); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, aMaterial.getMass())) + .eut(5) + .addTo(sCentrifugeRecipes); } else { FluidStack tFluid = GT_Utility.getFluidForFilledItem(tImpureStack, true); if (tFluid == null) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(9L, aStack), - 1, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), - tImpureStack, - null, - null, - null, - null, - (int) Math.max(1L, aMaterial.getMass() * 72L)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9L, aStack), ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), + tImpureStack) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, aMaterial.getMass() * 72L)) + .eut(5) + .addTo(sCentrifugeRecipes); } else { tFluid.amount /= 10; - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - null, - null, - tFluid, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), - null, - null, - null, - null, - null, - null, - (int) Math.max(1L, aMaterial.getMass() * 8L), - 5); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L)) + .noFluidInputs() + .fluidOutputs(tFluid) + .duration(Math.max(1L, aMaterial.getMass() * 8L)) + .eut(5) + .addTo(sCentrifugeRecipes); } } } else { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(9L, aStack), - 0, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), - tImpureStack, - null, - null, - null, - null, - (int) Math.max(1L, aMaterial.getMass() * 72L)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 9L), tImpureStack) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, aMaterial.getMass() * 72L)) + .eut(5) + .addTo(sCentrifugeRecipes); } } else { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(2L, aStack), - 0, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), - tImpureStack, - null, - null, - null, - null, - (int) Math.max(1L, aMaterial.getMass() * 16L)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tImpureStack) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(1L, aMaterial.getMass() * 16L)) + .eut(5) + .addTo(sCentrifugeRecipes); } } else { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - null, - null, - null, - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), - GT_OreDictUnificator.get( - OrePrefixes.dust, - tByProduct, - GT_OreDictUnificator.get(OrePrefixes.nugget, tByProduct, 1L), - 1L), - null, - null, - null, - null, - new int[] { 10000, 1111 }, - (int) Math.max(1L, aMaterial.getMass() * 8L), - 5); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_OreDictUnificator.get( + OrePrefixes.dust, + tByProduct, + GT_OreDictUnificator.get(OrePrefixes.nugget, tByProduct, 1L), + 1L)) + .outputChances(10000, 1111) + .noFluidInputs() + .fluidOutputs() + .duration(Math.max(1L, aMaterial.getMass() * 8L)) + .eut(5) + .addTo(sCentrifugeRecipes); } } case dustSmall -> { diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java index 452a8e31fb..40594357dc 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingDye.java @@ -1,5 +1,10 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMixerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.UniversalChemical; + import java.util.Locale; import net.minecraft.init.Blocks; @@ -22,61 +27,68 @@ public class ProcessingDye implements IOreRecipeRegistrator { } @Override - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, - ItemStack aStack) { - Dyes aDye = Dyes.get(aOreDictName); - if ((aDye.mIndex >= 0) && (aDye.mIndex < 16) && (GT_Utility.getContainerItem(aStack, true) == null)) { - GT_ModHandler.addAlloySmelterRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 8L), - GT_Utility.copyAmount(1L, aStack), - new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), - 200, - 8, - false); - GT_ModHandler.addAlloySmelterRecipe( - new ItemStack(Blocks.glass, 8, 32767), - GT_Utility.copyAmount(1L, aStack), - new ItemStack(Blocks.stained_glass, 8, 15 - aDye.mIndex), - 200, - 8, - false); - GT_Values.RA.addMixerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Utility.getIntegratedCircuit(1), - null, - null, - Materials.Water.getFluid(216L), - FluidRegistry.getFluidStack( - "dye.watermixed." + aDye.name() - .toLowerCase(Locale.ENGLISH), - 192), - null, - 16, - 4); - GT_Values.RA.addMixerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Utility.getIntegratedCircuit(1), - null, - null, - GT_ModHandler.getDistilledWater(288L), - FluidRegistry.getFluidStack( - "dye.watermixed." + aDye.name() - .toLowerCase(Locale.ENGLISH), - 216), - null, - 16, - 4); - GT_Values.RA.addChemicalRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 2), - Materials.SulfuricAcid.getFluid(432), - FluidRegistry.getFluidStack( - "dye.chemical." + aDye.name() - .toLowerCase(Locale.ENGLISH), - 288), - GT_Values.NI, - 600, - 48); + public void registerOre(OrePrefixes prefix, Materials material, String oreDictName, String modName, + ItemStack stack) { + Dyes aDye = Dyes.get(oreDictName); + if ((aDye.mIndex >= 0) && (aDye.mIndex < 16) && (GT_Utility.getContainerItem(stack, true) == null)) { + registerAlloySmelter(stack, aDye); + registerMixer(stack, aDye); + registerChemicalReactor(stack, aDye); } } + + public void registerMixer(ItemStack stack, Dyes dye) { + String fluidName = "dye.watermixed." + dye.name() + .toLowerCase(Locale.ENGLISH); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack), GT_Utility.getIntegratedCircuit(1)) + .noItemOutputs() + .fluidInputs(Materials.Water.getFluid(216L)) + .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 192)) + .duration(16 * TICKS) + .eut(4) + .addTo(sMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack), GT_Utility.getIntegratedCircuit(1)) + .noItemOutputs() + .fluidInputs(GT_ModHandler.getDistilledWater(288L)) + .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 216)) + .duration(16 * TICKS) + .eut(4) + .addTo(sMixerRecipes); + } + + public void registerAlloySmelter(ItemStack stack, Dyes dye) { + GT_ModHandler.addAlloySmelterRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Glass, 8L), + GT_Utility.copyAmount(1L, stack), + new ItemStack(Blocks.stained_glass, 8, 15 - dye.mIndex), + 200, + 8, + false); + + GT_ModHandler.addAlloySmelterRecipe( + new ItemStack(Blocks.glass, 8, 32767), + GT_Utility.copyAmount(1L, stack), + new ItemStack(Blocks.stained_glass, 8, 15 - dye.mIndex), + 200, + 8, + false); + } + + public void registerChemicalReactor(ItemStack stack, Dyes dye) { + String fluidName = "dye.chemical." + dye.name() + .toLowerCase(Locale.ENGLISH); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Salt, 2)) + .noItemOutputs() + .fluidInputs(Materials.SulfuricAcid.getFluid(432)) + .fluidOutputs(FluidRegistry.getFluidStack(fluidName, 288)) + .duration(30 * SECONDS) + .eut(48) + .addTo(UniversalChemical); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java index 22eb302aae..abaf8a78bb 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFoil.java @@ -1,5 +1,6 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -20,14 +21,25 @@ public class ProcessingFoil implements IOreRecipeRegistrator { } @Override - public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, - ItemStack aStack) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L)), - GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L), - (int) Math.max(aMaterial.getMass(), 1L), - calculateRecipeEU(aMaterial, 24)); + public void registerOre(OrePrefixes prefix, Materials material, String oreDictName, String modName, + ItemStack stack) { + registerBenderRecipe(material); + registerCover(stack, material); + } + + private void registerBenderRecipe(Materials material) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, GT_OreDictUnificator.get(OrePrefixes.plate, material, 4L))) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.foil, material, 4L)) + .noFluidInputs() + .noFluidOutputs() + .duration((int) Math.max(material.getMass(), 1L)) + .eut(calculateRecipeEU(material, 24)) + .addTo(sBenderRecipes); + } + + private void registerCover(ItemStack stack, Materials material) { GregTech_API - .registerCover(aStack, TextureFactory.of(aMaterial.mIconSet.mTextures[70], aMaterial.mRGBa, false), null); + .registerCover(stack, TextureFactory.of(material.mIconSet.mTextures[70], material.mRGBa, false), null); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java index 097a637f0e..1340ca18a9 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingFood.java @@ -1,5 +1,11 @@ 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_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; @@ -21,67 +27,90 @@ public class ProcessingFood implements gregtech.api.interfaces.IOreRecipeRegistr ItemStack aStack) { switch (aOreDictName) { case "foodCheese" -> { - GT_Values.RA.addSlicerRecipe( - aStack, - ItemList.Shape_Slicer_Flat.get(0L), - ItemList.Food_Sliced_Cheese.get(4L), - 64, - 4); + registerSlicerRecipes(aStack); GT_OreDictUnificator.addItemData(aStack, new gregtech.api.objects.ItemData(Materials.Cheese, 3628800L)); } case "foodDough" -> { GT_ModHandler.removeFurnaceSmelting(aStack); - GT_Values.RA - .addBenderRecipe(GT_Utility.copyAmount(1L, aStack), ItemList.Food_Flat_Dough.get(1L), 16, 4); - GT_Values.RA.addMixerRecipe( - aStack, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L), - null, - null, - null, - null, - ItemList.Food_Dough_Sugar.get(2L), - 32, - 8); - GT_Values.RA.addMixerRecipe( - aStack, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L), - null, - null, - null, - null, - ItemList.Food_Dough_Chocolate.get(2L), - 32, - 8); - GT_Values.RA.addMixerRecipe( - aStack, - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chocolate, 1L), - null, - null, - null, - null, - ItemList.Food_Dough_Chocolate.get(2L), - 32, - 8); - GT_Values.RA.addFormingPressRecipe( - GT_Utility.copyAmount(1L, aStack), - ItemList.Shape_Mold_Bun.get(0L), - ItemList.Food_Raw_Bun.get(1L), - 128, - 4); - GT_Values.RA.addFormingPressRecipe( - GT_Utility.copyAmount(2L, aStack), - ItemList.Shape_Mold_Bread.get(0L), - ItemList.Food_Raw_Bread.get(1L), - 256, - 4); - GT_Values.RA.addFormingPressRecipe( - GT_Utility.copyAmount(3L, aStack), - ItemList.Shape_Mold_Baguette.get(0L), - ItemList.Food_Raw_Baguette.get(1L), - 384, - 4); + registerBenderRecipes(aStack); + registerMixerRecipes(aStack); + registerFormingPressRecipes(aStack); } } } + + private void registerSlicerRecipes(ItemStack stack) { + GT_Values.RA + .addSlicerRecipe(stack, ItemList.Shape_Slicer_Flat.get(0L), ItemList.Food_Sliced_Cheese.get(4L), 64, 4); + } + + private void registerBenderRecipes(ItemStack stack) { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack)) + .itemOutputs(ItemList.Food_Flat_Dough.get(1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(16 * TICKS) + .eut(4) + .addTo(sBenderRecipes); + } + + private void registerMixerRecipes(ItemStack stack) { + GT_Values.RA.stdBuilder() + .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sugar, 1L)) + .itemOutputs(ItemList.Food_Dough_Sugar.get(2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(sMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Cocoa, 1L)) + .itemOutputs(ItemList.Food_Dough_Chocolate.get(2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(sMixerRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(stack, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Chocolate, 1L)) + .itemOutputs(ItemList.Food_Dough_Chocolate.get(2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(1 * SECONDS + 12 * TICKS) + .eut(8) + .addTo(sMixerRecipes); + } + + private void registerFormingPressRecipes(ItemStack stack) { + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, stack), ItemList.Shape_Mold_Bun.get(0L)) + .itemOutputs(ItemList.Food_Raw_Bun.get(1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(6 * SECONDS + 8 * TICKS) + .eut(4) + .addTo(sPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, stack), ItemList.Shape_Mold_Bread.get(0L)) + .itemOutputs(ItemList.Food_Raw_Bread.get(1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(12 * SECONDS + 16 * TICKS) + .eut(4) + .addTo(sPressRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, stack), ItemList.Shape_Mold_Baguette.get(0L)) + .itemOutputs(ItemList.Food_Raw_Baguette.get(1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(19 * SECONDS + 4 * TICKS) + .eut(4) + .addTo(sPressRecipes); + } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java index 75912ddf85..e5e4822124 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingGem.java @@ -1,6 +1,14 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.AppliedEnergistics2; +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.sLaserEngraverRecipes; +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; @@ -37,6 +45,7 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra switch (aPrefix) { case gem -> { + // fuel recipes if (aFuelPower) { GT_Values.RA.addFuel( GT_Utility.copyAmount(1L, aStack), @@ -44,97 +53,167 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra aMaterial.mFuelPower * 2, aMaterial.mFuelType); } + if (!OrePrefixes.block.isIgnored(aMaterial)) { - GT_ModHandler.addCompressionRecipe( - GT_Utility.copyAmount(9L, aStack), - GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)); + // Compressor recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.block, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(2) + .addTo(sCompressorRecipes); + } } + + // Smelting recipe if (!aNoSmelting) { GT_ModHandler.addSmeltingRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial.mSmeltInto, 1L)); } + if (aNoSmashing) { - GT_Values.RA.addForgeHammerRecipe( - aStack, - GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), - 64, - 16); + // Forge hammer recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(sHammerRecipes); + } } else { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 16)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 24)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(3L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 3L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(4L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 4L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(5L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 5L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(9L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), - (int) Math.max(aMaterialMass * 9L, 1L), - calculateRecipeEU(aMaterial, 96)); + // Forge hammer recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(sHammerRecipes); + } + + // Bender recipes + { + // Plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration((int) Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(sBenderRecipes); + + // Double plates + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + // Triple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + // Quadruple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 4L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + // Quintuple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(5L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 5L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + // dense plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 9L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + } } if (aNoWorking) { if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_Values.RA.addLatheRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 16)); + // Lathe recipes + { + GT_Values.RA.addLatheRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), + (int) Math.max(aMaterialMass, 1L), + calculateRecipeEU(aMaterial, 16)); + } } } else { if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), - GT_Proxy.tBits, - new Object[] { "h", "X", 'X', OrePrefixes.gemFlawless.get(aMaterial) }); - 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 (aMaterial.contains(SubTag.SMELTING_TO_GEM)) GT_ModHandler.addCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Proxy.tBits, - new Object[] { "XXX", "XXX", "XXX", 'X', OrePrefixes.nugget.get(aMaterial) }); - if (aSpecialRecipeReq) GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "X", "m", 'X', OrePrefixes.gem.get(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)); + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gemFlawless.get(aMaterial) }); + + if (aMaterial.contains(SubTag.SMELTING_TO_GEM)) { + GT_ModHandler.addCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_Proxy.tBits, + new Object[] { "XXX", "XXX", "XXX", 'X', OrePrefixes.nugget.get(aMaterial) }); + } + + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gem.get(aMaterial) }); + } + } } } - // GT_RecipeRegistrator.registerUsagesForMaterials(OrePrefixes.plate.get(aMaterial).toString(), - // !aNoSmashing, GT_Utility.copyAmount(1L, aStack)); switch (aMaterial.mName) { case "NULL": break; - case "Coal": - case "Charcoal": + case "Coal", "Charcoal": if (GregTech_API.sRecipeFile .get(ConfigCategories.Recipes.disabledrecipes, "torchesFromCoal", false)) { GT_ModHandler.removeRecipeDelayed( @@ -145,166 +224,268 @@ public class ProcessingGem implements gregtech.api.interfaces.IOreRecipeRegistra } break; case "CertusQuartz": - GT_Values.RA.addElectrolyzerRecipe( - aStack, - 0, - GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1), - null, - null, - null, - null, - null, - 2000, - 30); + // Electrolyzer recipe + { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs( + GT_ModHandler.getModItem(AppliedEnergistics2.ID, "item.ItemMultiMaterial", 1L, 1)) + .noFluidInputs() + .noFluidOutputs() + .duration(100 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sElectrolyzerRecipes); + } } + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver - // Recipe - // adder - is.stackSize = 0; - GT_Values.RA.addLaserEngraverRecipe( - GT_Utility.copyAmount(3L, aStack), - is, - GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1L), - 1200, - 480); + // Laser engraver recipes + { + is.stackSize = 0; + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(60 * SECONDS) + .eut(TierEU.RECIPE_HV) + .addTo(sLaserEngraverRecipes); + + } } } case gemChipped -> { - if (aFuelPower) GT_Values.RA - .addFuel(GT_Utility.copyAmount(1L, aStack), null, aMaterial.mFuelPower / 2, aMaterial.mFuelType); - if (!aNoWorking) { - GT_Values.RA.addLatheRecipe( + // Fuel recipes + if (aFuelPower) { + GT_Values.RA.addFuel( GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - 8); + null, + aMaterial.mFuelPower / 2, + aMaterial.mFuelType); + } + + if (!aNoWorking) { + // Lathe recipes + { + GT_Values.RA.addLatheRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 1L), + GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 1L), + (int) Math.max(aMaterialMass, 1L), + 8); + } + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { - 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)); - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), - GT_Proxy.tBits, - new Object[] { "h", "X", 'X', OrePrefixes.gemFlawed.get(aMaterial) }); - if (aSpecialRecipeReq) GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "X", "m", 'X', OrePrefixes.gemChipped.get(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)); + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gemFlawed.get(aMaterial) }); + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemChipped.get(aMaterial) }); + } + } } } for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver - // Recipe - // adder is.stackSize = 0; - GT_Values.RA.addLaserEngraverRecipe( - GT_Utility.copyAmount(3L, aStack), - is, - GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1L), - 600, - 30); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(30 * SECONDS) + .eut(30) + .addTo(sLaserEngraverRecipes); + } } case gemExquisite -> { - if (aFuelPower) GT_Values.RA - .addFuel(GT_Utility.copyAmount(1L, aStack), null, aMaterial.mFuelPower * 8, aMaterial.mFuelType); + // Fuel recipes + if (aFuelPower) { + GT_Values.RA.addFuel( + GT_Utility.copyAmount(1L, aStack), + null, + aMaterial.mFuelPower * 8, + aMaterial.mFuelType); + } + if (!aNoWorking) { - if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) - if (aSpecialRecipeReq) GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 4L), - GT_Proxy.tBits, - new Object[] { "X", "m", 'X', OrePrefixes.gemExquisite.get(aMaterial) }); + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { + // Crafting recipes + { + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 4L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemExquisite.get(aMaterial) }); + } + } + } + } + + // Forge hammer recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(sHammerRecipes); } - GT_Values.RA.addForgeHammerRecipe( - aStack, - GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), - 64, - 16); } case gemFlawed -> { - if (aFuelPower) GT_Values.RA - .addFuel(GT_Utility.copyAmount(1L, aStack), null, aMaterial.mFuelPower, aMaterial.mFuelType); + // fuel recipes + if (aFuelPower) { + GT_Values.RA + .addFuel(GT_Utility.copyAmount(1L, aStack), null, aMaterial.mFuelPower, aMaterial.mFuelType); + } + if (!aNoWorking) { - GT_Values.RA.addLatheRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), - GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - 12); + // Lathe recipes + { + GT_Values.RA.addLatheRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), + (int) Math.max(aMaterialMass, 1L), + 12); + } + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { - 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)); - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), - GT_Proxy.tBits, - new Object[] { "h", "X", 'X', OrePrefixes.gem.get(aMaterial) }); - if (aSpecialRecipeReq) GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), - GT_Proxy.tBits, - new Object[] { "X", "m", 'X', OrePrefixes.gemFlawed.get(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)); + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gem.get(aMaterial) }); + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemFlawed.get(aMaterial) }); + } + } } } - GT_Values.RA.addForgeHammerRecipe( - aStack, - GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), - 64, - 16); + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(sHammerRecipes); + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver - // Recipe - // adder + is.stackSize = 0; - GT_Values.RA.addLaserEngraverRecipe( - GT_Utility.copyAmount(3L, aStack), - is, - GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), - 600, - 120); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(30 * SECONDS) + .eut(TierEU.RECIPE_MV) + .addTo(sLaserEngraverRecipes); + } } case gemFlawless -> { - if (aFuelPower) GT_Values.RA - .addFuel(GT_Utility.copyAmount(1L, aStack), null, aMaterial.mFuelPower * 4, aMaterial.mFuelType); - if (!aNoWorking) { - GT_Values.RA.addLatheRecipe( + + // Fuel recipes + if (aFuelPower) { + GT_Values.RA.addFuel( GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), - GT_OreDictUnificator - .getDust(aMaterial, aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount), - (int) Math.max(aMaterialMass * 5L, 1L), - 16); + null, + aMaterial.mFuelPower * 4, + aMaterial.mFuelType); + } + + if (!aNoWorking) { + // Lathe recipes + { + GT_Values.RA.addLatheRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), + GT_OreDictUnificator + .getDust(aMaterial, aPrefix.mMaterialAmount - OrePrefixes.stickLong.mMaterialAmount), + (int) Math.max(aMaterialMass * 5L, 1L), + 16); + } + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial)) { - 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)); - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), - GT_Proxy.tBits, - new Object[] { "h", "X", 'X', OrePrefixes.gemExquisite.get(aMaterial) }); - if (aSpecialRecipeReq) GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), - GT_Proxy.tBits, - new Object[] { "X", "m", 'X', OrePrefixes.gemFlawless.get(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)); + } + + // Crafting recipes + { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "h", "X", 'X', OrePrefixes.gemExquisite.get(aMaterial) }); + if (aSpecialRecipeReq) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), + GT_Proxy.tBits, + new Object[] { "X", "m", 'X', OrePrefixes.gemFlawless.get(aMaterial) }); + } + } } } - GT_Values.RA - .addForgeHammerRecipe(aStack, GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), 64, 16); + GT_Values.RA.stdBuilder() + .itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(3 * SECONDS + 4 * TICKS) + .eut(16) + .addTo(sHammerRecipes); + for (ItemStack is : OreDictionary.getOres("craftingLens" + aMaterial.mColor.mName.replace(" ", ""))) { // Engraver - // Recipe - // adder + is.stackSize = 0; - GT_Values.RA.addLaserEngraverRecipe( - GT_Utility.copyAmount(3L, aStack), - is, - GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L), - 2400, - 2000); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack), is) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.gemExquisite, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(2 * MINUTES) + .eut(2000) + .addTo(sLaserEngraverRecipes); } } default -> {} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java index 0fd5d9e42e..324c21d3aa 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingIngot.java @@ -1,5 +1,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.sHammerRecipes; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -34,12 +36,15 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist switch (aPrefix) { case ingot: + // Fuel recipe if (aMaterial.mFuelPower > 0) { GT_Values.RA .addFuel(GT_Utility.copyAmount(1L, aStack), null, aMaterial.mFuelPower, aMaterial.mFuelType); } - if (aMaterial.mStandardMoltenFluid != null) { - if (!(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + if (aMaterial.mStandardMoltenFluid != null + && !(aMaterial == Materials.AnnealedCopper || aMaterial == Materials.WroughtIron)) { + // Fluid solidifier recipes + { GT_Values.RA.addFluidSolidifierRecipe( ItemList.Shape_Mold_Ingot.get(0L), aMaterial.getMolten(144L), @@ -47,7 +52,10 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist 32, calculateRecipeEU(aMaterial, 8)); } + } + // Reverse recipes + { GT_RecipeRegistrator.registerReverseFluidSmelting(aStack, aMaterial, aPrefix.mMaterialAmount, null); GT_RecipeRegistrator .registerReverseMacerating(aStack, aMaterial, aPrefix.mMaterialAmount, null, null, null, false); @@ -60,167 +68,241 @@ public class ProcessingIngot implements gregtech.api.interfaces.IOreRecipeRegist null, null); } - ItemStack tStack; - if ((null != (tStack = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L))) - && ((aMaterial.mBlastFurnaceRequired) || aNoSmelting)) { + } + + ItemStack tStack = GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L); + if ((tStack != null) && ((aMaterial.mBlastFurnaceRequired) || aNoSmelting)) { GT_ModHandler.removeFurnaceSmelting(tStack); } if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) - && !aMaterial.contains(SubTag.NO_WORKING)) { - if (!aMaterial.contains(SubTag.SMELTING_TO_GEM)) if ((aMaterial.contains(SubTag.MORTAR_GRINDABLE)) - && (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.mName, true))) - GT_ModHandler.addShapelessCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { ToolDictNames.craftingToolMortar, OrePrefixes.ingot.get(aMaterial) }); + && !aMaterial.contains(SubTag.NO_WORKING) + && !aMaterial.contains(SubTag.SMELTING_TO_GEM) + && aMaterial.contains(SubTag.MORTAR_GRINDABLE) + && GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.mName, true)) { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { ToolDictNames.craftingToolMortar, OrePrefixes.ingot.get(aMaterial) }); } if (!aNoSmashing) { + // Forge hammer recipes if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(3L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 16)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(sHammerRecipes); } - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 24)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(3L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 3L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(4L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 4L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(5L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 5L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(9L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), - (int) Math.max(aMaterialMass * 9L, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Utility.getIntegratedCircuit(10), - GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 24)); - } + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(4L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 4L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(5L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 5L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(9L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 9L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(10)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, 4L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 24)) + .addTo(sBenderRecipes); + } + } break; + case ingotDouble: if (!aNoSmashing) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 96)); + // bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + } // Enable crafting with hammer if tier is < IV. - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - if (aSpecialRecipeReq && GregTech_API.sRecipeFile + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq + && GregTech_API.sRecipeFile .get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) { - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.ingotDouble, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "I", "I", "h", 'I', OrePrefixes.ingot.get(aMaterial) }); - } + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotDouble, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "I", "h", 'I', OrePrefixes.ingot.get(aMaterial) }); } } break; + case ingotTriple: if (!aNoSmashing) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 96)); - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(3L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), - (int) Math.max(aMaterialMass * 3L, 1L), - calculateRecipeEU(aMaterial, 96)); - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - if (aSpecialRecipeReq && GregTech_API.sRecipeFile + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateTriple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + } + + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq + && GregTech_API.sRecipeFile .get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) { - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.ingotTriple, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotDouble.get(aMaterial), 'B', - OrePrefixes.ingot.get(aMaterial) }); - } + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotTriple, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotDouble.get(aMaterial), 'B', + OrePrefixes.ingot.get(aMaterial) }); } } break; + case ingotQuadruple: if (!aNoSmashing) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 96)); + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + } // If tier < IV add manual crafting. - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - if (aSpecialRecipeReq && GregTech_API.sRecipeFile + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq + && GregTech_API.sRecipeFile .get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) { - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.ingotQuadruple, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotTriple.get(aMaterial), 'B', - OrePrefixes.ingot.get(aMaterial) }); - } + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotQuadruple, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotTriple.get(aMaterial), 'B', + OrePrefixes.ingot.get(aMaterial) }); } } break; + case ingotQuintuple: if (!aNoSmashing) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L), - (int) Math.max(aMaterialMass, 1L), - calculateRecipeEU(aMaterial, 96)); + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuintuple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); + } - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - if (aSpecialRecipeReq && GregTech_API.sRecipeFile + // Crafting recipes + if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV && aSpecialRecipeReq + && GregTech_API.sRecipeFile .get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) { - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.ingotQuintuple, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotQuadruple.get(aMaterial), 'B', - OrePrefixes.ingot.get(aMaterial) }); - } + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.ingotQuintuple, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "I", "B", "h", 'I', OrePrefixes.ingotQuadruple.get(aMaterial), 'B', + OrePrefixes.ingot.get(aMaterial) }); } } break; + case ingotHot: if (aMaterial.mAutoGenerateVacuumFreezerRecipes) { - GT_Values.RA.addVacuumFreezerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), - (int) Math.max(aMaterialMass * 3L, 1L)); - break; + // Vacuum freezer recipes + { + GT_Values.RA.addVacuumFreezerRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), + (int) Math.max(aMaterialMass * 3L, 1L)); + } } + break; + default: break; } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java index 86b3caacbb..3d3b0547d9 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLens.java @@ -1,5 +1,8 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import net.minecraft.item.ItemStack; import gregtech.api.GregTech_API; @@ -7,6 +10,7 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; +import gregtech.api.enums.TierEU; import gregtech.api.interfaces.ITexture; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_OreDictUnificator; @@ -35,11 +39,16 @@ public class ProcessingLens implements gregtech.api.interfaces.IOreRecipeRegistr 2400, 16); } - case "ChromaticGlass" -> GT_Values.RA.addCompressorRecipe( - GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), - GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L), - 600 * 20, - 1966080); + case "ChromaticGlass" -> { + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.lens, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(600 * SECONDS) + .eut(TierEU.RECIPE_UHV) + .addTo(sCompressorRecipes); + } default -> { GT_Values.RA.addLatheRecipe( GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java index 0f592f6711..b971bc819f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingLog.java @@ -1,6 +1,10 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; +import static gregtech.api.util.GT_RecipeBuilder.TICKS; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; @@ -22,20 +26,20 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if (aOreDictName.equals("logRubber")) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Utility.getIntegratedCircuit(2), - null, - Materials.Methane.getGas(60L), - ItemList.IC2_Resin.get(1L), - GT_ModHandler.getIC2Item("plantBall", 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), - GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L), - GT_Values.NI, - GT_Values.NI, - new int[] { 5000, 3750, 2500, 2500 }, - 200, - 20); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(2)) + .itemOutputs( + ItemList.IC2_Resin.get(1L), + GT_ModHandler.getIC2Item("plantBall", 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Carbon, 1L), + GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 1L)) + .outputChances(5000, 3750, 2500, 2500) + .noFluidInputs() + .fluidOutputs(Materials.Methane.getGas(60L)) + .duration(10 * SECONDS) + .eut(20) + .addTo(sCentrifugeRecipes); + GT_ModHandler.addSawmillRecipe( GT_Utility.copyAmount(1L, aStack), ItemList.IC2_Resin.get(1L), @@ -50,20 +54,15 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra 33, false); } else { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Utility.getIntegratedCircuit(1), - null, - Materials.Methane.getGas(60L), - GT_Values.NI, - GT_Values.NI, - GT_Values.NI, - GT_Values.NI, - GT_Values.NI, - GT_Values.NI, - null, - 200, - 20); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack), GT_Utility.getIntegratedCircuit(1)) + .noItemOutputs() + .noFluidInputs() + .fluidOutputs(Materials.Methane.getGas(60L)) + .duration(10 * SECONDS) + .eut(20) + .addTo(sCentrifugeRecipes); + GT_ModHandler.addPulverisationRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Wood, 6L), @@ -97,15 +96,15 @@ public class ProcessingLog implements gregtech.api.interfaces.IOreRecipeRegistra ItemList.FR_Casing_Impregnated.get(1L), 64, 16); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.Creosote.getFluid(1000L), - GT_ModHandler.getModItem(Railcraft.ID, "cube", 1L, 8), - null, - null, - null, - 16, - 16); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_ModHandler.getModItem(Railcraft.ID, "cube", 1L, 8)) + .fluidInputs(Materials.Creosote.getFluid(1000L)) + .noFluidOutputs() + .duration(16 * TICKS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); short aMeta = (short) aStack.getItemDamage(); diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java index a74aa229a5..809ce8894f 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java @@ -1,5 +1,9 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import java.util.ArrayList; import net.minecraft.item.ItemStack; @@ -9,6 +13,7 @@ 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; @@ -35,20 +40,15 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra || (aPrefix == OrePrefixes.oreDense); if (aMaterial == Materials.Oilsands) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(1L, aStack), - null, - null, - Materials.OilHeavy.getFluid(tIsRich ? 4000L : 2000L), - new ItemStack(net.minecraft.init.Blocks.sand, 1, 0), - null, - null, - null, - null, - null, - new int[] { tIsRich ? 2000 : 4000 }, - tIsRich ? 600 : 300, - 30); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(new ItemStack(net.minecraft.init.Blocks.sand, 1, 0)) + .outputChances(tIsRich ? 2000 : 4000) + .noFluidInputs() + .fluidOutputs(Materials.OilHeavy.getFluid(tIsRich ? 4000L : 2000L)) + .duration(tIsRich ? 30 * SECONDS : 15 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sCentrifugeRecipes); } else { registerStandardOreRecipes( aPrefix, @@ -216,11 +216,15 @@ public class ProcessingOre implements gregtech.api.interfaces.IOreRecipeRegistra } if (tCrushed != null) { - GT_Values.RA.addForgeHammerRecipe( - aOreStack, - GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed), - 16, - 10); + GT_Values.RA.stdBuilder() + .itemInputs(aOreStack) + .itemOutputs(GT_Utility.copy(GT_Utility.copyAmount(tCrushed.stackSize, tGem), tCrushed)) + .noFluidInputs() + .noFluidOutputs() + .duration(10) + .eut(16) + .addTo(sHammerRecipes); + GT_ModHandler.addPulverisationRecipe( aOreStack, GT_Utility.mul(2L, tCrushed), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java index e3b0a34016..3c0e4cb29a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingOrePoor.java @@ -1,10 +1,13 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -38,11 +41,15 @@ public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegi break; } if (aMaterial != null) { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, aMultiplier), - 16, - 10); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, aMultiplier)) + .noFluidInputs() + .noFluidOutputs() + .duration(10) + .eut(16) + .addTo(sHammerRecipes); + GT_ModHandler.addPulverisationRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.dustTiny, aMaterial, 2 * aMultiplier), @@ -52,7 +59,7 @@ public class ProcessingOrePoor implements gregtech.api.interfaces.IOreRecipeRegi GT_OreDictUnificator.getDust(aPrefix.mSecondaryMaterial), 100, true); - if (aMaterial.contains(gregtech.api.enums.SubTag.NO_SMELTING)) GT_ModHandler.addSmeltingRecipe( + if (aMaterial.contains(SubTag.NO_SMELTING)) GT_ModHandler.addSmeltingRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.nugget, aMaterial.mDirectSmelting, aMultiplier)); } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java index f380b4ebdf..e3bb175d29 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java @@ -7,6 +7,7 @@ import static gregtech.api.enums.GT_Values.RA; import static gregtech.api.enums.GT_Values.W; import static gregtech.api.util.GT_ModHandler.RecipeBits.BUFFERED; import static gregtech.api.util.GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import static gregtech.common.GT_Proxy.tBits; @@ -162,12 +163,15 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist GT_ModHandler.removeRecipeByOutputDelayed(aStack); if (!aNoSmashing) { - - RA.addBenderRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 96)); + // 2 double -> 1 quadruple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateQuadruple, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); if (GregTech_API.sRecipeFile.get( gregtech.api.enums.ConfigCategories.Tools.hammerdoubleplate, @@ -184,21 +188,17 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist new Object[] { "I", "B", "h", // craftingToolHardHammer 'I', aPlateStack, 'B', aPlateStack }); } - - // Only added if IC2 Forge Hammer is enabled in Recipes.cfg: B:ic2forgehammer_true=false - // GT_ModHandler.addShapelessCraftingRecipe( - // GT_Utility.copyAmount(1L, aStack), DO_NOT_CHECK_FOR_COLLISIONS | BUFFERED, new - // Object[] { - // gregtech.api.enums.ToolDictNames.craftingToolForgeHammer, aPlateStack, - // aPlateStack - // }); } - RA.addBenderRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), - GT_Utility.copyAmount(1L, aStack), - (int) Math.max(aMaterialMass * 2L, 1L), - calculateRecipeEU(aMaterial, 96)); + // 2 plates -> 1 double plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 2L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); } else { @@ -221,11 +221,15 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist if (!aNoSmashing) { - RA.addBenderRecipe( - GT_Utility.copyAmount(3L, aStack), - GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L), - (int) Math.max(aMaterialMass * 3L, 1L), - calculateRecipeEU(aMaterial, 96)); + // 3 triple plates -> 1 dense plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.plateDense, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); if (GregTech_API.sRecipeFile.get( gregtech.api.enums.ConfigCategories.Tools.hammertripleplate, @@ -251,11 +255,14 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist } } - RA.addBenderRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 3L), - GT_Utility.copyAmount(1L, aStack), - (int) Math.max(aMaterialMass * 3L, 1L), - calculateRecipeEU(aMaterial, 96)); + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 3L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 3L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); } else { @@ -313,11 +320,15 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist } } - RA.addBenderRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), - GT_Utility.copyAmount(1L, aStack), - (int) Math.max(aMaterialMass * 4L, 1L), - calculateRecipeEU(aMaterial, 96)); + // Quadruple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 4L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); } else { @@ -363,11 +374,15 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist } } - RA.addBenderRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 5L), - GT_Utility.copyAmount(1L, aStack), - (int) Math.max(aMaterialMass * 5L, 1L), - calculateRecipeEU(aMaterial, 96)); + // quintuple plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 5L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 5L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); } else { @@ -389,12 +404,15 @@ public class ProcessingPlate implements gregtech.api.interfaces.IOreRecipeRegist GT_ModHandler.removeRecipeByOutputDelayed(aStack); if (!aNoSmashing) { - - RA.addBenderRecipe( - GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L), - GT_Utility.copyAmount(1L, aStack), - (int) Math.max(aMaterialMass * 9L, 1L), - calculateRecipeEU(aMaterial, 96)); + // Dense plate + GT_Values.RA.stdBuilder() + .itemInputs(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 9L)) + .itemOutputs(GT_Utility.copyAmount(1L, aStack)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterialMass * 9L, 1L)) + .eut(calculateRecipeEU(aMaterial, 96)) + .addTo(sBenderRecipes); } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java index 01addd678c..c59e810e2a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingPure.java @@ -1,5 +1,7 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sHammerRecipes; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; @@ -20,11 +22,15 @@ public class ProcessingPure implements gregtech.api.interfaces.IOreRecipeRegistr @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L), - 10, - 16); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.dustPure, aMaterial.mMacerateInto, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(10) + .eut(16) + .addTo(sHammerRecipes); + GT_ModHandler.addPulverisationRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get( diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java index b138ba6338..b6edaa995c 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSand.java @@ -1,9 +1,13 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCentrifugeRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; +import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; @@ -19,16 +23,16 @@ public class ProcessingSand implements gregtech.api.interfaces.IOreRecipeRegistr public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { if (aOreDictName.equals("sandOil")) { - GT_Values.RA.addCentrifugeRecipe( - GT_Utility.copyAmount(2L, aStack), - 1, - GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), - new ItemStack(Blocks.sand, 1, 0), - null, - null, - null, - null, - 1000); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack), ItemList.Cell_Empty.get(1)) + .itemOutputs( + GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Oil, 1L), + new ItemStack(Blocks.sand, 1, 0)) + .noFluidInputs() + .noFluidOutputs() + .duration(50 * SECONDS) + .eut(5) + .addTo(sCentrifugeRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java index dafde0e73d..b98768b69a 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSaplings.java @@ -1,12 +1,14 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sCompressorRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; -import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -25,7 +27,16 @@ public class ProcessingSaplings implements gregtech.api.interfaces.IOreRecipeReg new int[] { 10000 }, 100, 2); - GT_ModHandler.addCompressionRecipe(GT_Utility.copyAmount(8L, aStack), ItemList.IC2_Plantball.get(1L)); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(8L, aStack)) + .itemOutputs(ItemList.IC2_Plantball.get(1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(15 * SECONDS) + .eut(2) + .addTo(sCompressorRecipes); + GT_Values.RA.addLatheRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1L), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java index 6d4ed4cfe8..6ceaea4612 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingSlab.java @@ -1,6 +1,8 @@ package gregtech.loaders.oreprocessing; import static gregtech.api.enums.Mods.Railcraft; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import net.minecraft.item.ItemStack; @@ -21,15 +23,14 @@ public class ProcessingSlab implements gregtech.api.interfaces.IOreRecipeRegistr ItemStack aStack) { if (aOreDictName.startsWith("slabWood")) { if (Railcraft.isModLoaded()) { - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(3L, aStack), - Materials.Creosote.getFluid(300L), - ItemList.RC_Tie_Wood.get(3L), - null, - null, - null, - 200, - 4); + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(3L, aStack)) + .itemOutputs(ItemList.RC_Tie_Wood.get(3L)) + .fluidInputs(Materials.Creosote.getFluid(300L)) + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(4) + .addTo(sChemicalBathRecipes); } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java index a09e0ba0b2..80e7d16ff0 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStick.java @@ -1,5 +1,8 @@ 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.sHammerRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -53,16 +56,26 @@ public class ProcessingStick implements gregtech.api.interfaces.IOreRecipeRegist } } if (!aMaterial.contains(gregtech.api.enums.SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L), - 100, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addForgeHammerRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), - (int) Math.max(aMaterial.getMass(), 1L), - calculateRecipeEU(aMaterial, 16)); + // bender recipe + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(sBenderRecipes); + } + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(2L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(Math.max(aMaterial.getMass(), 1L)) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(sHammerRecipes); } GT_Values.RA.addAssemblerRecipe( GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Wood, 1), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java index 29a872cc04..8136d988c3 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java @@ -1,5 +1,7 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -46,11 +48,18 @@ public class ProcessingStickLong implements gregtech.api.interfaces.IOreRecipeRe } } if (!aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L), - 200, - calculateRecipeEU(aMaterial, 16)); + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.spring, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 16)) + .addTo(sBenderRecipes); + } + 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 c65b496649..cb05d1218d 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHead.java @@ -1,5 +1,7 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sPressRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import net.minecraft.item.ItemStack; @@ -1165,12 +1167,17 @@ public class ProcessingToolHead implements gregtech.api.interfaces.IOreRecipeReg 'R', OrePrefixes.ring.get(aMaterial), 'S', OrePrefixes.screw.get(aMaterial) }); } - GT_Values.RA.addFormingPressRecipe( - GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 3L), - GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 2L), - GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L), - 200, - calculateRecipeEU(aMaterial, 60)); + // Turbine blades + GT_Values.RA.stdBuilder() + .itemInputs( + GT_OreDictUnificator.get(OrePrefixes.plateDouble, aMaterial, 3L), + GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 2L)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 60)) + .addTo(sPressRecipes); } } default -> {} diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java index ddb0bd46c7..3ccccd4561 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingToolOther.java @@ -16,8 +16,13 @@ public class ProcessingToolOther implements gregtech.api.interfaces.IOreRecipeRe @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if ((aMaterial != Materials.Stone) && (aMaterial != Materials.Flint)) { - if (aMaterial != Materials.Rubber) { + if ((aMaterial == Materials.Stone) || (aMaterial == Materials.Flint)) { + return; + } + + if (aMaterial != Materials.Rubber) { + // Crafting recipes + { GT_ModHandler.addCraftingRecipe( GT_MetaGenerated_Tool_01.INSTANCE .getToolWithStats(GT_MetaGenerated_Tool_01.PLUNGER, 1, aMaterial, aMaterial, null), @@ -25,8 +30,12 @@ public class ProcessingToolOther implements gregtech.api.interfaces.IOreRecipeRe new Object[] { "xRR", " SR", "S f", 'S', OrePrefixes.stick.get(aMaterial), 'R', OrePrefixes.plate.get(Materials.AnyRubber) }); } - if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) - && (!aMaterial.contains(SubTag.NO_SMASHING))) { + } + + if ((!aMaterial.contains(SubTag.WOOD)) && (!aMaterial.contains(SubTag.BOUNCY)) + && (!aMaterial.contains(SubTag.NO_SMASHING))) { + // Crafting recipes + { GT_ModHandler.addCraftingRecipe( GT_MetaGenerated_Tool_01.INSTANCE .getToolWithStats(GT_MetaGenerated_Tool_01.WRENCH, 1, aMaterial, aMaterial, null), diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java index 4c7b10f7cb..c71069661b 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingTransforming.java @@ -1,10 +1,14 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sChemicalBathRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; + import net.minecraft.item.ItemStack; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.TierEU; import gregtech.api.interfaces.IOreRecipeRegistrator; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; @@ -20,103 +24,151 @@ public class ProcessingTransforming implements IOreRecipeRegistrator { @Override public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { - if (aPrefix == OrePrefixes.plank) aPrefix = OrePrefixes.plate; + + if (aPrefix == OrePrefixes.plank) { + aPrefix = OrePrefixes.plate; + } + switch (aMaterial.mName) { - case "Wood": - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.SeedOil - .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 120L, true)), - GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), - GT_Values.NI, - GT_Values.NI, - null, - 100, - 8); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.SeedOilLin - .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true)), - GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), - GT_Values.NI, - GT_Values.NI, - null, - 100, - 8); - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.SeedOilHemp - .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true)), - GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L), - GT_Values.NI, - GT_Values.NI, - null, - 100, - 8); - break; - case "Iron": - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.FierySteel - .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 250L, true)), - GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), - GT_Values.NI, - GT_Values.NI, - null, - 100, - 8); - GT_Values.RA.addPolarizerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), - (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), - 16); - break; - case "WroughtIron": - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.FierySteel - .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 225L, true)), - GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), - GT_Values.NI, - GT_Values.NI, - null, - 100, - 8); - GT_Values.RA.addPolarizerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), - (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), - 16); - break; - case "Steel": - GT_Values.RA.addChemicalBathRecipe( - GT_Utility.copyAmount(1L, aStack), - Materials.FierySteel - .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 200L, true)), - GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L), - GT_Values.NI, - GT_Values.NI, - null, - 100, - 8); - GT_Values.RA.addPolarizerRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L), - (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), - 16); - break; - case "Neodymium": + case "Wood" -> + // Chemical bath recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L)) + .fluidInputs( + Materials.SeedOil + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 120L, true))) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L)) + .fluidInputs( + Materials.SeedOilLin + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true))) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); + + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.WoodSealed, 1L)) + .fluidInputs( + Materials.SeedOilHemp + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 80L, true))) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); + + } + case "Iron" -> { + // Chemical bath recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L)) + .fluidInputs( + Materials.FierySteel + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 250L, true))) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); + } + + // Polarizer recipes + { + GT_Values.RA.addPolarizerRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), + (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M), + (int) TierEU.LV / 2); + } + } + case "WroughtIron" -> { + // Chemical bath recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L)) + .fluidInputs( + Materials.FierySteel + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 225L, true))) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); + } + + // Polarizer recipes + { + GT_Values.RA.addPolarizerRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(aPrefix, Materials.IronMagnetic, 1L), + (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M), + (int) TierEU.LV / 2); + } + } + case "Steel" -> { + // Chemical Bath recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(aPrefix, Materials.FierySteel, 1L)) + .fluidInputs( + Materials.FierySteel + .getFluid(GT_Utility.translateMaterialToAmount(aPrefix.mMaterialAmount, 200L, true))) + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(TierEU.ULV) + .addTo(sChemicalBathRecipes); + } + + // polarizer recipes + { + GT_Values.RA.addPolarizerRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(aPrefix, Materials.SteelMagnetic, 1L), + (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M), + (int) TierEU.LV / 2); + } + } + case "Neodymium" -> + // Polarizer recipes + { GT_Values.RA.addPolarizerRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(aPrefix, Materials.NeodymiumMagnetic, 1L), - (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), - 256); - case "Samarium": + (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M), + (int) TierEU.HV / 2); + } + case "Samarium" -> + // Polarizer recipes + { GT_Values.RA.addPolarizerRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(aPrefix, Materials.SamariumMagnetic, 1L), - (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / 3628800L), - 4096); + (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M), + (int) TierEU.IV / 2); + } + + case "TengamPurified" -> + // Polarizer recipes + { + GT_Values.RA.addPolarizerRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_OreDictUnificator.get(aPrefix, Materials.TengamAttuned, 1L), + (int) Math.max(16L, aPrefix.mMaterialAmount * 128L / GT_Values.M), + (int) TierEU.RECIPE_UHV); + } + + default -> { /* NO-OP */ } } } } diff --git a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java index 8c4ce4953c..e420017b79 100644 --- a/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java +++ b/src/main/java/gregtech/loaders/oreprocessing/ProcessingWire.java @@ -1,5 +1,7 @@ package gregtech.loaders.oreprocessing; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sBenderRecipes; +import static gregtech.api.util.GT_RecipeBuilder.SECONDS; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import java.util.ArrayList; @@ -18,9 +20,8 @@ import gregtech.common.GT_Proxy; public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistrator { - private Materials[] dielectrics = { Materials.PolyvinylChloride, Materials.Polydimethylsiloxane }; - private Materials[] rubbers = { Materials.Rubber, Materials.StyreneButadieneRubber, Materials.Silicone }; - private Materials[] syntheticRubbers = { Materials.StyreneButadieneRubber, Materials.Silicone }; + private final Materials[] dielectrics = { Materials.PolyvinylChloride, Materials.Polydimethylsiloxane }; + private final Materials[] syntheticRubbers = { Materials.StyreneButadieneRubber, Materials.Silicone }; private static Object tt; @@ -48,135 +49,167 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr int cableWidth; OrePrefixes correspondingCable; + switch (aPrefix) { case wireGt01 -> { cableWidth = 1; correspondingCable = OrePrefixes.cableGt01; if (!aMaterial.contains(SubTag.NO_SMASHING)) { - GT_Values.RA.addBenderRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L), - 100, + // Bender recipes + { + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1L, aStack)) + .itemOutputs(GT_OreDictUnificator.get(OrePrefixes.springSmall, aMaterial, 2L)) + .noFluidInputs() + .noFluidOutputs() + .duration(5 * SECONDS) + .eut(calculateRecipeEU(aMaterial, 8)) + .addTo(sBenderRecipes); + } + + // Wiremill Recipes + { + GT_Values.RA.addWiremillRecipe( + GT_Utility.copyAmount(1L, aStack), + GT_Utility.getIntegratedCircuit(1), + GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L), + 200, + calculateRecipeEU(aMaterial, 8)); + } + } + + // crafting recipe + if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) + && !aMaterial.contains(SubTag.NO_WORKING) + && (aMaterial.getProcessingMaterialTierEU() < TierEU.IV)) { + GT_ModHandler.addCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), + GT_Proxy.tBits, + new Object[] { "Xx", 'X', OrePrefixes.plate.get(aMaterial) }); + + } + + // Assembler recipes + { + GT_Values.RA.addAssemblerRecipe( + GT_Utility.copyAmount(2L, aStack), + GT_Utility.getIntegratedCircuit(2), + GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L), + 150, calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addWiremillRecipe( - GT_Utility.copyAmount(1L, aStack), - GT_Utility.getIntegratedCircuit(1), - GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 4L), + GT_Values.RA.addAssemblerRecipe( + GT_Utility.copyAmount(4L, aStack), + GT_Utility.getIntegratedCircuit(4), + GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L), 200, calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + GT_Utility.copyAmount(8L, aStack), + GT_Utility.getIntegratedCircuit(8), + GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L), + 300, + calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + GT_Utility.copyAmount(12L, aStack), + GT_Utility.getIntegratedCircuit(12), + GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L), + 400, + calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + GT_Utility.copyAmount(16L, aStack), + GT_Utility.getIntegratedCircuit(16), + GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L), + 500, + calculateRecipeEU(aMaterial, 8)); } - if (aMaterial.mUnificatable && (aMaterial.mMaterialInto == aMaterial) - && !aMaterial.contains(SubTag.NO_WORKING)) { - if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_ModHandler.addCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), - GT_Proxy.tBits, - new Object[] { "Xx", 'X', OrePrefixes.plate.get(aMaterial) }); - } - } - GT_Values.RA.addAssemblerRecipe( - GT_Utility.copyAmount(2L, aStack), - GT_Utility.getIntegratedCircuit(2), - GT_OreDictUnificator.get(OrePrefixes.wireGt02, aMaterial, 1L), - 150, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - GT_Utility.copyAmount(4L, aStack), - GT_Utility.getIntegratedCircuit(4), - GT_OreDictUnificator.get(OrePrefixes.wireGt04, aMaterial, 1L), - 200, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - GT_Utility.copyAmount(8L, aStack), - GT_Utility.getIntegratedCircuit(8), - GT_OreDictUnificator.get(OrePrefixes.wireGt08, aMaterial, 1L), - 300, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - GT_Utility.copyAmount(12L, aStack), - GT_Utility.getIntegratedCircuit(12), - GT_OreDictUnificator.get(OrePrefixes.wireGt12, aMaterial, 1L), - 400, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - GT_Utility.copyAmount(16L, aStack), - GT_Utility.getIntegratedCircuit(16), - GT_OreDictUnificator.get(OrePrefixes.wireGt16, aMaterial, 1L), - 500, - calculateRecipeEU(aMaterial, 8)); } case wireGt02 -> { cableWidth = 2; correspondingCable = OrePrefixes.cableGt02; if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_ModHandler.addShapelessCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), - new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 2L), + new Object[] { aOreDictName }); + + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + } } } case wireGt04 -> { cableWidth = 4; correspondingCable = OrePrefixes.cableGt04; if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_ModHandler.addShapelessCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 4L), - new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), - OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt02.get(aMaterial), OrePrefixes.wireGt02.get(aMaterial) }); + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 4L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt02.get(aMaterial), OrePrefixes.wireGt02.get(aMaterial) }); + } } } case wireGt08 -> { cableWidth = 8; correspondingCable = OrePrefixes.cableGt08; if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_ModHandler.addShapelessCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 8L), - new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), - OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), - OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), - OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt04.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 8L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial), + OrePrefixes.wireGt01.get(aMaterial), OrePrefixes.wireGt01.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt04.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + } } } case wireGt12 -> { cableWidth = 12; correspondingCable = OrePrefixes.cableGt12; if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - GT_ModHandler.addShapelessCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 12L), - new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 12L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + } } } case wireGt16 -> { cableWidth = 16; correspondingCable = OrePrefixes.cableGt16; if (aMaterial.getProcessingMaterialTierEU() < TierEU.IV) { - - GT_ModHandler.addShapelessCraftingRecipe( - GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 16L), - new Object[] { aOreDictName }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt08.get(aMaterial) }); - GT_ModHandler.addShapelessCraftingRecipe( - GT_Utility.copyAmount(1L, aStack), - new Object[] { OrePrefixes.wireGt12.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + // Shapeless crafting recipes + { + GT_ModHandler.addShapelessCraftingRecipe( + GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 16L), + new Object[] { aOreDictName }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt08.get(aMaterial), OrePrefixes.wireGt08.get(aMaterial) }); + GT_ModHandler.addShapelessCraftingRecipe( + GT_Utility.copyAmount(1L, aStack), + new Object[] { OrePrefixes.wireGt12.get(aMaterial), OrePrefixes.wireGt04.get(aMaterial) }); + } if (GT_Mod.gregtechproxy.mAE2Integration) { AE2addNewAttunement(aStack); @@ -193,26 +226,32 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr int costMultiplier = cableWidth / 4 + 1; switch (aMaterial.mName) { - case "RedAlloy": - case "Cobalt": - case "Lead": - case "Tin": - case "Zinc": - case "SolderingAlloy": + case "RedAlloy", "Cobalt", "Lead", "Tin", "Zinc", "SolderingAlloy": ArrayList<Object> craftingListRubber = new ArrayList<>(); craftingListRubber.add(aOreDictName); for (int i = 0; i < costMultiplier; i++) { craftingListRubber.add(OrePrefixes.plate.get(Materials.Rubber)); } + + // shapeless crafting + { GT_ModHandler.addShapelessCraftingRecipe( GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), craftingListRubber.toArray()); + } + + // Packer recipe + { GT_Values.RA.addBoxingRecipe( GT_Utility.copyAmount(1L, aStack), GT_OreDictUnificator.get(OrePrefixes.plate.get(Materials.Rubber), costMultiplier), GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), 100, 8); + } + + // alloy smelter recipes + { GT_Values.RA.addAlloySmelterRecipe( GT_OreDictUnificator.get(OrePrefixes.ingot, Materials.Rubber, 2L), GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), @@ -231,22 +270,10 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr GT_OreDictUnificator.get(OrePrefixes.cableGt04, aMaterial, 1L), 300, 30); - case "Iron": - case "Nickel": - case "Cupronickel": - case "Copper": - case "AnnealedCopper": - case "Kanthal": - case "Gold": - case "Electrum": - case "Silver": - case "Blue Alloy": - case "Nichrome": - case "Steel": - case "BlackSteel": - case "Titanium": - case "Aluminium": - case "BlueAlloy": + } + case "Iron", "Nickel", "Cupronickel", "Copper", "AnnealedCopper", "Kanthal", "Gold", "Electrum", "Silver", "Blue Alloy", "Nichrome", "Steel", "BlackSteel", "Titanium", "Aluminium", "BlueAlloy": + // Assembler recipes + { GT_Values.RA.addAssemblerRecipe( aStack, GT_Utility.getIntegratedCircuit(24), @@ -284,7 +311,11 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr 8); } } + } + case "RedstoneAlloy": + // Assembler recipes + { GT_Values.RA.addAssemblerRecipe( aStack, GT_Utility.getIntegratedCircuit(24), @@ -322,102 +353,64 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr 8); } } + } break; default: - if (GT_Mod.gregtechproxy.mEasierIVPlusCables) { - GT_Values.RA.addAssemblerRecipe( - aStack, - GT_Utility.getIntegratedCircuit(24), - Materials.Rubber.getMolten(144 * costMultiplier), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - aStack, - GT_Utility.getIntegratedCircuit(24), - Materials.StyreneButadieneRubber.getMolten(108 * costMultiplier), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - aStack, - GT_Utility.getIntegratedCircuit(24), - Materials.Silicone.getMolten(72 * costMultiplier), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - for (Materials dielectric : dielectrics) { - for (Materials syntheticRubber : syntheticRubbers) { - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.copyAmount(4, aStack), - dielectric.getDust(costMultiplier) }, - syntheticRubber.getMolten(costMultiplier * 144), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L), - 400, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { aStack, dielectric.getDustSmall(costMultiplier) }, - syntheticRubber.getMolten(costMultiplier * 36), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - } - } - } else { - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { aStack, GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier), - GT_Utility.getIntegratedCircuit(24) }, - Materials.Silicone.getMolten(costMultiplier * 72), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA - .addAssemblerRecipe( - new ItemStack[] { aStack, + // Assembler recipes + { + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { aStack, GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier), + GT_Utility.getIntegratedCircuit(24) }, + Materials.Silicone.getMolten(costMultiplier * 72), + GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), + 100, + calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { aStack, + GT_OreDictUnificator.get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier), + GT_Utility.getIntegratedCircuit(24) }, + Materials.Silicone.getMolten(costMultiplier * 72), + GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), + 100, + calculateRecipeEU(aMaterial, 8)); + for (Materials dielectric : dielectrics) { + for (Materials syntheticRubber : syntheticRubbers) { + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_Utility.copyAmount(4, aStack), dielectric.getDust(costMultiplier), + GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier * 4) }, + syntheticRubber.getMolten(costMultiplier * 144), + GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L), + 400, + calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { GT_Utility.copyAmount(4, aStack), dielectric.getDust(costMultiplier), GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier), - GT_Utility.getIntegratedCircuit(24) }, - Materials.Silicone.getMolten(costMultiplier * 72), + .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier * 4) }, + syntheticRubber.getMolten(costMultiplier * 144), + GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L), + 400, + calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { aStack, dielectric.getDustSmall(costMultiplier), + GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier) }, + syntheticRubber.getMolten(costMultiplier * 36), + GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), + 100, + calculateRecipeEU(aMaterial, 8)); + GT_Values.RA.addAssemblerRecipe( + new ItemStack[] { aStack, dielectric.getDustSmall(costMultiplier), + GT_OreDictUnificator + .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier) }, + syntheticRubber.getMolten(costMultiplier * 36), GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), 100, calculateRecipeEU(aMaterial, 8)); - for (Materials dielectric : dielectrics) { - for (Materials syntheticRubber : syntheticRubbers) { - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.copyAmount(4, aStack), dielectric.getDust(costMultiplier), - GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier * 4) }, - syntheticRubber.getMolten(costMultiplier * 144), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L), - 400, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { GT_Utility.copyAmount(4, aStack), dielectric.getDust(costMultiplier), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier * 4) }, - syntheticRubber.getMolten(costMultiplier * 144), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 4L), - 400, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { aStack, dielectric.getDustSmall(costMultiplier), - GT_OreDictUnificator.get(OrePrefixes.foil, aMaterial, costMultiplier) }, - syntheticRubber.getMolten(costMultiplier * 36), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - GT_Values.RA.addAssemblerRecipe( - new ItemStack[] { aStack, dielectric.getDustSmall(costMultiplier), - GT_OreDictUnificator - .get(OrePrefixes.foil, Materials.PolyphenyleneSulfide, costMultiplier) }, - syntheticRubber.getMolten(costMultiplier * 36), - GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), - 100, - calculateRecipeEU(aMaterial, 8)); - } } } + } break; } + // Honestly when can this machine be removed? ); GT_Values.RA.addUnboxingRecipe( GT_OreDictUnificator.get(correspondingCable, aMaterial, 1L), @@ -425,6 +418,7 @@ public class ProcessingWire implements gregtech.api.interfaces.IOreRecipeRegistr null, 100, calculateRecipeEU(aMaterial, 8)); + if (GT_Mod.gregtechproxy.mAE2Integration) { AE2AddNetAttunementCable(aStack, correspondingCable, aMaterial); } |