From de864236f83dc31c53ca77a6939357a0959bca75 Mon Sep 17 00:00:00 2001 From: boubou19 Date: Fri, 21 Apr 2023 20:29:38 +0200 Subject: Recipes ra2 (#1872) * Recipes RA2 fixes * Use \uXXXX for non-ASCII characters * Misc cleanup (#1888) * migrate away from addThermalCentrifugeRecipe * split recipes of GT_Block_Stones_Abstract * migrate away from addForgeHammerRecipe * migrate away from addChemicalBathRecipe * remove "DisableOldChemicalRecipes" and its usage, as it's disabled by default in NH and it increases recipe complexity for nothing * Remove underground biomes ore classes, as it's not present in NH * migrate away from addFluidCannerRecipe * migrate away from addFluidExtractionRecipe * migrate away from addChemicalRecipe * migrate away from addMultiblockChemicalRecipe * deprecate addChemicalRecipeForBasicMachineOnly * migrate away from addCentrifugeRecipe * spotlessApply * fixing wrong merge conflict solving * Add Tengam materials (#1891) * Add Tengam materials * Change new recipes to consume 15/16 Amp * Remove now redundant `break` statements * fix comb chances? * fix centrifuge code not working --------- Co-authored-by: glowredman <35727266+glowredman@users.noreply.github.com> Co-authored-by: Martin Robertz --- .../java/gregtech/loaders/load/GT_FuelLoader.java | 25 +- .../materialprocessing/ProcessingConfig.java | 1 + .../loaders/oreprocessing/ProcessingArrows.java | 93 +-- .../loaders/oreprocessing/ProcessingBlock.java | 27 +- .../loaders/oreprocessing/ProcessingCell.java | 98 ++- .../loaders/oreprocessing/ProcessingCrafting.java | 863 +++++++++++++-------- .../loaders/oreprocessing/ProcessingCrop.java | 18 +- .../oreprocessing/ProcessingCrushedOre.java | 102 ++- .../oreprocessing/ProcessingCrystallized.java | 18 +- .../loaders/oreprocessing/ProcessingDirty.java | 172 ++-- .../loaders/oreprocessing/ProcessingDust.java | 225 +++--- .../loaders/oreprocessing/ProcessingDye.java | 122 +-- .../loaders/oreprocessing/ProcessingFoil.java | 28 +- .../loaders/oreprocessing/ProcessingFood.java | 141 ++-- .../loaders/oreprocessing/ProcessingGem.java | 575 +++++++++----- .../loaders/oreprocessing/ProcessingIngot.java | 322 +++++--- .../loaders/oreprocessing/ProcessingLens.java | 19 +- .../loaders/oreprocessing/ProcessingLog.java | 73 +- .../loaders/oreprocessing/ProcessingOre.java | 42 +- .../loaders/oreprocessing/ProcessingOrePoor.java | 19 +- .../loaders/oreprocessing/ProcessingPlate.java | 108 +-- .../loaders/oreprocessing/ProcessingPure.java | 16 +- .../loaders/oreprocessing/ProcessingSand.java | 24 +- .../loaders/oreprocessing/ProcessingSaplings.java | 15 +- .../loaders/oreprocessing/ProcessingSlab.java | 19 +- .../loaders/oreprocessing/ProcessingStick.java | 33 +- .../loaders/oreprocessing/ProcessingStickLong.java | 19 +- .../loaders/oreprocessing/ProcessingToolHead.java | 19 +- .../loaders/oreprocessing/ProcessingToolOther.java | 17 +- .../oreprocessing/ProcessingTransforming.java | 232 +++--- .../loaders/oreprocessing/ProcessingWire.java | 398 +++++----- .../gregtech/loaders/postload/GT_PostLoad.java | 4 +- .../postload/chains/GT_BauxiteRefineChain.java | 505 ++++++------ .../postload/recipes/AssemblyLineRecipes.java | 2 +- .../loaders/postload/recipes/BreweryRecipes.java | 111 +-- .../postload/recipes/CropProcessingRecipes.java | 14 +- .../recipes/ElectromagneticSeparatorRecipes.java | 15 +- .../postload/recipes/FluidExtractorRecipes.java | 47 +- .../loaders/postload/recipes/RecipeRemover.java | 18 +- .../recipes/TranscendentPlasmaMixerRecipes.java | 18 - .../preload/GT_Loader_Item_Block_And_Fluid.java | 253 +++--- .../loaders/preload/GT_Loader_OreDictionary.java | 2 +- .../java/gregtech/loaders/preload/GT_PreLoad.java | 13 +- 43 files changed, 2840 insertions(+), 2045 deletions(-) (limited to 'src/main/java/gregtech/loaders') diff --git a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java index 554fecb6f9..7240d9268e 100644 --- a/src/main/java/gregtech/loaders/load/GT_FuelLoader.java +++ b/src/main/java/gregtech/loaders/load/GT_FuelLoader.java @@ -8,11 +8,12 @@ import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -import gregtech.GT_Mod; +import gregtech.api.enums.FluidState; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.fluid.GT_FluidFactory; import gregtech.api.util.GT_Log; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -23,17 +24,17 @@ public class GT_FuelLoader implements Runnable { @Override public void run() { GT_Log.out.println("GT_Mod: Initializing various Fuels."); - ItemList.sBlueVitriol = GT_Mod.gregtechproxy - .addFluid("solution.bluevitriol", "Blue Vitriol water solution", null, 1, 295); - ItemList.sNickelSulfate = GT_Mod.gregtechproxy - .addFluid("solution.nickelsulfate", "Nickel sulfate water solution", null, 1, 295); - ItemList.sGreenVitriol = GT_Mod.gregtechproxy - .addFluid("solution.greenvitriol", "Green Vitriol water solution", null, 1, 295); - ItemList.sIndiumConcentrate = GT_Mod.gregtechproxy - .addFluid("indiumconcentrate", "Indium Concentrate", null, 1, 295); // TODO CHECK NEW x3 - ItemList.sLeadZincSolution = GT_Mod.gregtechproxy - .addFluid("leadzincsolution", "Lead-Zinc solution", null, 1, 295); - ItemList.sRocketFuel = GT_Mod.gregtechproxy.addFluid("rocket_fuel", "Rocket Fuel", null, 1, 295); + ItemList.sBlueVitriol = GT_FluidFactory + .of("solution.bluevitriol", "Blue Vitriol water solution", null, FluidState.LIQUID, 295); + ItemList.sNickelSulfate = GT_FluidFactory + .of("solution.nickelsulfate", "Nickel sulfate water solution", null, FluidState.LIQUID, 295); + ItemList.sGreenVitriol = GT_FluidFactory + .of("solution.greenvitriol", "Green Vitriol water solution", null, FluidState.LIQUID, 295); + ItemList.sIndiumConcentrate = GT_FluidFactory + .of("indiumconcentrate", "Indium Concentrate", null, FluidState.LIQUID, 295); // TODO CHECK NEW x3 + ItemList.sLeadZincSolution = GT_FluidFactory + .of("leadzincsolution", "Lead-Zinc solution", null, FluidState.LIQUID, 295); + ItemList.sRocketFuel = GT_FluidFactory.of("rocket_fuel", "Rocket Fuel", null, FluidState.LIQUID, 295); new GT_Recipe( new ItemStack(Items.lava_bucket), new ItemStack(Blocks.obsidian), diff --git a/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java b/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java index 15f1922aab..3ed4b30630 100644 --- a/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java +++ b/src/main/java/gregtech/loaders/materialprocessing/ProcessingConfig.java @@ -13,6 +13,7 @@ public class ProcessingConfig implements gregtech.api.interfaces.IMaterialHandle Materials.add(this); } + @SuppressWarnings("unused") @Override public void onMaterialsInit() { /** This is just left here as an example of how to add new materials. **/ 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(1