diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7f968cc5..4c810900 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -106,7 +106,7 @@ jobs: draconic-evolution(recommended) draconicadditions(recommended) project-red-illumination(recommended) - avaritia-1-1x-kedition(recommended) + avaritia-1-1x-unofficial(recommended) thaumcraft(recommended) forestry(recommended) gendustry(recommended) diff --git a/dependencies.gradle b/dependencies.gradle index fa2dabfb..de835a29 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -59,7 +59,6 @@ dependencies { } // Debug GTWoodProcessing - compileOnly rfg.deobf("curse.maven:gtwoodprocessing-1093753:5731776") // GTWoodProcessing 1.2.2 if (project.debug_all.toBoolean() || project.debug_gtwp.toBoolean()) { runtimeOnlyNonPublishable rfg.deobf("curse.maven:gtwoodprocessing-1093753:5731776") } @@ -70,7 +69,7 @@ dependencies { runtimeOnlyNonPublishable rfg.deobf("curse.maven:implosionnobomb-1094386:5731331") } - // Debug AE Additions + // Debug ExtraCells2 Additions if (project.debug_all.toBoolean() || project.debug_aea.toBoolean()) { runtimeOnlyNonPublishable rfg.deobf("curse.maven:ae-additions-extra-cells-2-fork-493962:3814371") // AEAdditions 1.3.8 } @@ -154,7 +153,7 @@ dependencies { // Debug Avaritia if (project.debug_all.toBoolean() || project.debug_avaritia.toBoolean()) { - runtimeOnlyNonPublishable rfg.deobf("curse.maven:avaritia-1-1x-kedition-913129:4777278") // Avaritia 1.1x Kedition 1.3 + runtimeOnlyNonPublishable rfg.deobf("curse.maven:avaritia-1-1x-unofficial-1165010:6029951") // Avaritia 1.1x UEL } // Debug Chisel diff --git a/src/main/java/gtexpert/GTExpertMod.java b/src/main/java/gtexpert/GTExpertMod.java index c301ff7c..82effca7 100644 --- a/src/main/java/gtexpert/GTExpertMod.java +++ b/src/main/java/gtexpert/GTExpertMod.java @@ -25,6 +25,7 @@ import gtexpert.api.GTEValues; import gtexpert.api.util.GTELog; import gtexpert.api.util.Mods; +import gtexpert.common.GTEConfigHolder; import gtexpert.common.items.behaviors.GTECoverBehaviors; import gtexpert.modules.GTEModuleManager; import gtexpert.modules.GTEModules; @@ -131,7 +132,14 @@ public void registerItems(RegistryEvent.Register event) { @SubscribeEvent public static void registerCovers(GregTechAPI.RegisterEvent event) { GTELog.logger.info("Registering Covers..."); - GTECoverBehaviors.init(); + + String componentsName = GTEConfigHolder.gteFlag.componentsName; + if (componentsName.equals("ulv") || componentsName.equals("primitive")) { + GTECoverBehaviors.init(); + } else { + GTELog.logger.error("Invalid componentsName setting: {}", + componentsName, new Throwable()); + } } @SubscribeEvent(priority = EventPriority.HIGHEST) diff --git a/src/main/java/gtexpert/common/GTEConfigHolder.java b/src/main/java/gtexpert/common/GTEConfigHolder.java index f1332fc8..285baf7a 100644 --- a/src/main/java/gtexpert/common/GTEConfigHolder.java +++ b/src/main/java/gtexpert/common/GTEConfigHolder.java @@ -28,9 +28,10 @@ public static class ModpackFlag { public boolean featureFlag = false; @Config.Comment({ "Item name to be CEu standard instead of Primitive", - "Options: true (ULV), false (Primitive)", - "Default: false" }) - public boolean componentsName = false; + "If you want to use Filostorm's ULV Covers, set it to none.", + "Options: ulv, primitive, none", + "Default: primitive" }) + public String componentsName = "primitive"; @Config.Comment({ "Recipe Type. Options: none (no generated recipes), easy (2x2 crafting), normal (3x3 crafting).", @@ -53,6 +54,14 @@ public static class ModpackFlag { "Nether Star Dust, Skeleton Skull, Wither Skeleton Skull, Zombie Head, Creeper Head, Enderman Head", "Default: false" }) public boolean peacefulFlag = false; + + @Config.Comment({ "Add to a creative machine recipe.", + "When enabled, Recipes will be added to the following machines: ", + "1. GTCEu: Data Hatch, Energy Unit, Quantum Tank, Quantum Chest", + "2. AE2UEL: Energy Cell", + "3. EIO: Capacitor Bank", + "Default: true" }) + public boolean addCreativeRecipe = true; } public static class GregtechOverride { diff --git a/src/main/java/gtexpert/common/items/GTEMetaItem1.java b/src/main/java/gtexpert/common/items/GTEMetaItem1.java index c724d532..68efc45e 100644 --- a/src/main/java/gtexpert/common/items/GTEMetaItem1.java +++ b/src/main/java/gtexpert/common/items/GTEMetaItem1.java @@ -11,6 +11,7 @@ import gregtech.api.unification.stack.MaterialStack; import gregtech.common.items.behaviors.TooltipBehavior; +import gtexpert.api.util.GTELog; import gtexpert.common.GTEConfigHolder; import gtexpert.integration.ae.AEConfigHolder; @@ -31,32 +32,37 @@ public void registerSubItems() { // Free range: ID 3-10 // Primitive parts: ID 11-20 - String componentsName = GTEConfigHolder.gteFlag.componentsName ? "ulv" : "primitive"; - GTE_ELECTRIC_MOTOR = addItem(11, "electric.motor." + componentsName); - GTE_ELECTRIC_PUMP = addItem(12, "electric.pump." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.electric.pump.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); - })); - GTE_CONVEYOR_MODULE = addItem(13, "conveyor.module." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.conveyor.module.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); - })); - GTE_ELECTRIC_PISTON = addItem(14, "electric.piston." + componentsName); - GTE_ROBOT_ARM = addItem(15, "robot.arm." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.robot.arm.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); - })); - GTE_FLUID_REGULATOR = addItem(16, "fluid.regulator." + componentsName) - .addComponents(new TooltipBehavior(lines -> { - lines.add(I18n.format("metaitem.fluid.regulator.tooltip")); - lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); - })); - GTE_FIELD_GENERATOR = addItem(17, "field.generator." + componentsName); - GTE_EMITTER = addItem(18, "emitter." + componentsName); - GTE_SENSOR = addItem(19, "sensor." + componentsName); + String componentsName = GTEConfigHolder.gteFlag.componentsName; + if (componentsName.equals("ulv") || componentsName.equals("primitive")) { + GTE_ELECTRIC_MOTOR = addItem(11, "electric.motor." + componentsName); + GTE_ELECTRIC_PUMP = addItem(12, "electric.pump." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.electric.pump.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); + })); + GTE_CONVEYOR_MODULE = addItem(13, "conveyor.module." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.conveyor.module.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); + })); + GTE_ELECTRIC_PISTON = addItem(14, "electric.piston." + componentsName); + GTE_ROBOT_ARM = addItem(15, "robot.arm." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.robot.arm.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.item_transfer_rate", 2)); + })); + GTE_FLUID_REGULATOR = addItem(16, "fluid.regulator." + componentsName) + .addComponents(new TooltipBehavior(lines -> { + lines.add(I18n.format("metaitem.fluid.regulator.tooltip")); + lines.add(I18n.format("gregtech.universal.tooltip.fluid_transfer_rate", (1280 / 4) / 20)); + })); + GTE_FIELD_GENERATOR = addItem(17, "field.generator." + componentsName); + GTE_EMITTER = addItem(18, "emitter." + componentsName); + GTE_SENSOR = addItem(19, "sensor." + componentsName); + } else { + GTELog.logger.error("Invalid componentsName setting: {}", + componentsName, new Throwable()); + } // Shapes: ID 101-110 if (AEConfigHolder.moveSteelShape) { diff --git a/src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java b/src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java index 3dcccf8e..8b8817ed 100644 --- a/src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java +++ b/src/main/java/gtexpert/common/items/behaviors/GTECoverBehaviors.java @@ -15,7 +15,7 @@ public class GTECoverBehaviors { public static void init() { - String componentsName = GTEConfigHolder.gteFlag.componentsName ? "ulv" : "primitive"; + String componentsName = GTEConfigHolder.gteFlag.componentsName; registerBehavior(gteId("conveyor." + componentsName), GTEMetaItems.GTE_CONVEYOR_MODULE, (def, tile, side) -> new CoverConveyor(def, tile, side, GTValues.ULV, 2)); registerBehavior(gteId("pump." + componentsName), GTEMetaItems.GTE_ELECTRIC_PUMP, diff --git a/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java b/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java index 84b714a9..2976c864 100644 --- a/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java +++ b/src/main/java/gtexpert/common/metatileentities/GTEMetaTileEntities.java @@ -52,7 +52,7 @@ public static void init() { } // Multi Machine - // + // Free: 12000~12001 LARGE_CRACKER = registerMetaTileEntity(12002, new MetaTileEntityLargeCrackingUnit(gteId("large_cracking_unit"))); VOIDOREMINER = registerMetaTileEntity(12003, diff --git a/src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java b/src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java index d2112366..a8289b2d 100644 --- a/src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java +++ b/src/main/java/gtexpert/integration/ae/recipes/AEBlocksRecipe.java @@ -21,6 +21,7 @@ import gtexpert.api.GTEValues; import gtexpert.api.unification.material.GTEMaterials; import gtexpert.api.util.Mods; +import gtexpert.common.GTEConfigHolder; import gtexpert.integration.ae.AEConfigHolder; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; @@ -29,19 +30,21 @@ public class AEBlocksRecipe { public static void init() { // Creative Energy Cell - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() - .input(MetaItems.ENERGY_CLUSTER, 4) - .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) - .input(MetaTileEntities.HULL[UV]) - .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) - .inputs(Mods.AppliedEnergistics2.getItem("dense_energy_cell", 8)) - .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) - .fluidInputs(GTEMaterials.Fluix.getFluid(18432)) - .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) - .fluidInputs(Materials.Neutronium.getFluid(9216)) - .outputs(Mods.AppliedEnergistics2.getItem("creative_energy_cell")) - .duration(1200).EUt(VA[UV]) - .buildAndRegister(); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) { + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .input(MetaItems.ENERGY_CLUSTER, 4) + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) + .input(MetaTileEntities.HULL[UV]) + .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) + .inputs(Mods.AppliedEnergistics2.getItem("dense_energy_cell", 8)) + .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) + .fluidInputs(GTEMaterials.Fluix.getFluid(18432)) + .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) + .fluidInputs(Materials.Neutronium.getFluid(9216)) + .outputs(Mods.AppliedEnergistics2.getItem("creative_energy_cell")) + .duration(1200).EUt(VA[UV]) + .buildAndRegister(); + } // ME Interface ModHandler.removeRecipeByName( diff --git a/src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java b/src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java index dd94b3e3..87391ca2 100644 --- a/src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java +++ b/src/main/java/gtexpert/integration/ae/recipes/AEItemsRecipe.java @@ -27,24 +27,26 @@ public class AEItemsRecipe { public static void init() { // GTE ME Storage Fake Component - AssemblyLineRecipeBuilder builderGTECore = RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() - .input(screw, Materials.Neutronium, 8) - .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) - .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) - .fluidInputs(Materials.Neutronium.getFluid(9216)) - .output(GTEMetaItems.GTE_ME_FAKE_COMPONENT, 1) - .duration(1200).EUt(VA[UV]); - if (AEConfigHolder.enableAE2UELExtended) { - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 65)); - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 70)); - } else if (Mods.AEAdditions.isModLoaded()) { - builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 3)); - builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 6)); - } else { - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 38)); - builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 57)); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) { + AssemblyLineRecipeBuilder builderGTECore = RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .input(screw, Materials.Neutronium, 8) + .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) + .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) + .fluidInputs(Materials.Neutronium.getFluid(9216)) + .output(GTEMetaItems.GTE_ME_FAKE_COMPONENT, 1) + .duration(1200).EUt(VA[UV]); + if (AEConfigHolder.enableAE2UELExtended) { + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 65)); + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 70)); + } else if (Mods.AEAdditions.isModLoaded()) { + builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 3)); + builderGTECore.inputs(Mods.AEAdditions.getItem("storage.component", 16, 6)); + } else { + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 38)); + builderGTECore.inputs(Mods.AppliedEnergistics2.getItem("material", 16, 57)); + } + builderGTECore.buildAndRegister(); } - builderGTECore.buildAndRegister(); // 1k Storage Cell ModHandler.removeRecipeByName( diff --git a/src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java b/src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java index b15f20b1..20a8e564 100644 --- a/src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java +++ b/src/main/java/gtexpert/integration/eio/recipes/EIOBlocksRecipe.java @@ -22,6 +22,7 @@ import gtexpert.api.unification.material.GTEMaterials; import gtexpert.api.util.GTEUtility; import gtexpert.api.util.Mods; +import gtexpert.common.GTEConfigHolder; import gtexpert.integration.eio.EnderIOConfigHolder; import gtexpert.integration.eio.metatileentities.EIOMetaTileEntities; @@ -34,23 +35,25 @@ public class EIOBlocksRecipe { public static void init() { // Creative Capacitor Bank - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() - .input(MetaItems.ENERGY_CLUSTER, 4) - .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) - .input(MetaTileEntities.HULL[UV]) - .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) - .inputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN(), 8, 3)) - .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) - .fluidInputs(GTEMaterials.VibrantAlloy.getFluid(18432)) - .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) - .fluidInputs(Materials.Neutronium.getFluid(9216)) - .outputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())) - .duration(1200).EUt(VA[UV]) - .buildAndRegister(); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) { + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .input(MetaItems.ENERGY_CLUSTER, 4) + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 8)) + .input(MetaTileEntities.HULL[UV]) + .input(MetaItems.CRYSTAL_MAINFRAME_UV, 4) + .inputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN(), 8, 3)) + .input(MetaItems.COVER_SOLAR_PANEL_UV, 1) + .fluidInputs(GTEMaterials.VibrantAlloy.getFluid(18432)) + .fluidInputs(Materials.SolderingAlloy.getFluid(18432)) + .fluidInputs(Materials.Neutronium.getFluid(9216)) + .outputs(new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())) + .duration(1200).EUt(VA[UV]) + .buildAndRegister(); - ModHandler.addShapelessNBTClearingRecipe("creative_capacitor_bank_nbt", - new ItemStack(PowerToolObject.block_cap_bank.getBlockNN()), - new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())); + ModHandler.addShapelessNBTClearingRecipe("creative_capacitor_bank_nbt", + new ItemStack(PowerToolObject.block_cap_bank.getBlockNN()), + new ItemStack(PowerToolObject.block_cap_bank.getBlockNN())); + } // Vial Extractor MetaTileEntityLoader.registerMachineRecipe(true, diff --git a/src/main/java/gtexpert/loaders/recipe/GTERecipe.java b/src/main/java/gtexpert/loaders/recipe/GTERecipe.java index ba684784..e09b5f49 100644 --- a/src/main/java/gtexpert/loaders/recipe/GTERecipe.java +++ b/src/main/java/gtexpert/loaders/recipe/GTERecipe.java @@ -58,7 +58,7 @@ public static void init() { items(); blocks(); tools(); - end_contents(); + if (GTEConfigHolder.gteFlag.addCreativeRecipe) end_contents(); } private static void materials() { @@ -260,208 +260,210 @@ private static void items() { .buildAndRegister(); // Primitive Parts - String componentsName = GTEConfigHolder.gteFlag.componentsName ? "ulv" : "primitive"; - switch (GTEConfigHolder.gteFlag.componentsRecipeType) { - case "none" -> { - return; - } - case "easy" -> { - ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "WR", "MW", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'M', new UnificationEntry(stick, Materials.IronMagnetic), - 'W', new UnificationEntry(wireGtSingle, Materials.Tin)); - - ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PR", "MG", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'G', new UnificationEntry(gearSmall, Materials.Bronze), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "PR", "MO", - 'R', new UnificationEntry(rotor, Materials.Bronze), - 'O', new UnificationEntry(ring, Materials.Rubber), - 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, - GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PC", "MP", - 'P', new UnificationEntry(plate, Materials.Rubber), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, - GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "PR", "MC", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - - ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, - GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), "PC", "Cd", - 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); - - ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, - GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CP", "UG", - 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - - ModHandler.addShapedRecipe(true, "emitter_" + componentsName, - GTEMetaItems.GTE_EMITTER.getStackForm(), "CS", "UG", - 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - - ModHandler.addShapedRecipe(true, "sensor_" + componentsName, - GTEMetaItems.GTE_SENSOR.getStackForm(), "PG", "US", - 'P', new UnificationEntry(plate, Materials.Bronze), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - } - case "normal" -> { - ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "CWR", "WMW", "RWC", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'M', new UnificationEntry(stick, Materials.IronMagnetic), - 'W', new UnificationEntry(wireGtSingle, Materials.Tin), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead, 2) - .input(stick, Materials.Bronze, 2) - .input(stick, Materials.IronMagnetic) - .input(wireGtSingle, Materials.Tin, 4) - .output(GTEMetaItems.GTE_ELECTRIC_MOTOR) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PPP", "CRR", "CMG", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'G', new UnificationEntry(gearSmall, Materials.Bronze), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(stick, Materials.Bronze, 2) - .input(cableGtSingle, Materials.Lead, 2) - .input(plate, Materials.Bronze, 3) - .input(gearSmall, Materials.Bronze) - .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) - .output(GTEMetaItems.GTE_ELECTRIC_PISTON) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, - GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "SRO", "dPw", "OMC", - 'R', new UnificationEntry(rotor, Materials.Bronze), - 'S', new UnificationEntry(screw, Materials.Bronze), - 'O', new UnificationEntry(ring, Materials.Rubber), - 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead) - .input(pipeNormalFluid, Materials.Copper) - .input(screw, Materials.Bronze) - .input(rotor, Materials.Bronze) - .input(ring, Materials.Rubber, 2) - .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) - .output(GTEMetaItems.GTE_ELECTRIC_PUMP) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, - GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PPP", "MCM", "PPP", - 'P', new UnificationEntry(plate, Materials.Rubber), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead) - .inputs(GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(2)) - .fluidInputs(Materials.Rubber.getFluid(L * 6)) - .circuitMeta(1) - .output(GTEMetaItems.GTE_CONVEYOR_MODULE) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, - GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "CCC", "MRM", "PUR", - 'R', new UnificationEntry(stick, Materials.Bronze), - 'C', new UnificationEntry(cableGtSingle, Materials.Lead), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), - 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(cableGtSingle, Materials.Lead, 3) - .input(stick, Materials.Bronze, 2) - .input(GTEMetaItems.GTE_ELECTRIC_MOTOR, 2) - .input(GTEMetaItems.GTE_ELECTRIC_PISTON) - .input(circuit, MarkerMaterials.Tier.ULV) - .output(GTEMetaItems.GTE_ROBOT_ARM) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, - GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), " U ", "dPw", " U ", - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(GTEMetaItems.GTE_ELECTRIC_PUMP) - .input(circuit, MarkerMaterials.Tier.ULV, 2) - .circuitMeta(1) - .output(GTEMetaItems.GTE_FLUID_REGULATOR) - .EUt(VA[ULV]) - .duration(400) - .withRecycling() - .buildAndRegister(); - - ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, - GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CPC", "UGU", "CPC", - 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), - 'P', new UnificationEntry(plate, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(gem, Materials.Lapis) - .input(plate, Materials.Bronze, 2) - .input(circuit, MarkerMaterials.Tier.ULV, 2) - .input(wireGtDouble, Materials.RedAlloy, 4) - .output(GTEMetaItems.GTE_FIELD_GENERATOR) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "emitter_" + componentsName, - GTEMetaItems.GTE_EMITTER.getStackForm(), "CSU", "SGS", "USC", - 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .circuitMeta(1) - .input(stick, Materials.Bronze, 4) - .input(cableGtSingle, Materials.RedAlloy, 2) - .input(circuit, MarkerMaterials.Tier.ULV, 2) - .input(gem, Materials.Lapis) - .output(GTEMetaItems.GTE_EMITTER) - .duration(100).EUt(VA[ULV]).buildAndRegister(); - - ModHandler.addShapedRecipe(true, "sensor_" + componentsName, - GTEMetaItems.GTE_SENSOR.getStackForm(), "P G", "PS ", "UPP", - 'P', new UnificationEntry(plate, Materials.Bronze), - 'S', new UnificationEntry(stick, Materials.Bronze), - 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), - 'G', new UnificationEntry(gem, Materials.Lapis)); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() - .input(stick, Materials.Bronze) - .input(plate, Materials.Bronze, 4) - .input(circuit, MarkerMaterials.Tier.ULV) - .input(gem, Materials.Lapis) - .output(GTEMetaItems.GTE_SENSOR) - .duration(100).EUt(VA[ULV]).buildAndRegister(); + String componentsName = GTEConfigHolder.gteFlag.componentsName; + if (componentsName.equals("ulv") || componentsName.equals("primitive")) { + switch (GTEConfigHolder.gteFlag.componentsRecipeType) { + case "none" -> { + return; + } + case "easy" -> { + ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "WR", "MW", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'M', new UnificationEntry(stick, Materials.IronMagnetic), + 'W', new UnificationEntry(wireGtSingle, Materials.Tin)); + + ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PR", "MG", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'G', new UnificationEntry(gearSmall, Materials.Bronze), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "PR", "MO", + 'R', new UnificationEntry(rotor, Materials.Bronze), + 'O', new UnificationEntry(ring, Materials.Rubber), + 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, + GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PC", "MP", + 'P', new UnificationEntry(plate, Materials.Rubber), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, + GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "PR", "MC", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + + ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, + GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), "PC", "Cd", + 'C', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); + + ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, + GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CP", "UG", + 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + + ModHandler.addShapedRecipe(true, "emitter_" + componentsName, + GTEMetaItems.GTE_EMITTER.getStackForm(), "CS", "UG", + 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + + ModHandler.addShapedRecipe(true, "sensor_" + componentsName, + GTEMetaItems.GTE_SENSOR.getStackForm(), "PG", "US", + 'P', new UnificationEntry(plate, Materials.Bronze), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + } + case "normal" -> { + ModHandler.addShapedRecipe(true, "electric_motor_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(), "CWR", "WMW", "RWC", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'M', new UnificationEntry(stick, Materials.IronMagnetic), + 'W', new UnificationEntry(wireGtSingle, Materials.Tin), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead, 2) + .input(stick, Materials.Bronze, 2) + .input(stick, Materials.IronMagnetic) + .input(wireGtSingle, Materials.Tin, 4) + .output(GTEMetaItems.GTE_ELECTRIC_MOTOR) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "electric_piston_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), "PPP", "CRR", "CMG", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'G', new UnificationEntry(gearSmall, Materials.Bronze), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(stick, Materials.Bronze, 2) + .input(cableGtSingle, Materials.Lead, 2) + .input(plate, Materials.Bronze, 3) + .input(gearSmall, Materials.Bronze) + .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) + .output(GTEMetaItems.GTE_ELECTRIC_PISTON) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "electric_pump_" + componentsName, + GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm(), "SRO", "dPw", "OMC", + 'R', new UnificationEntry(rotor, Materials.Bronze), + 'S', new UnificationEntry(screw, Materials.Bronze), + 'O', new UnificationEntry(ring, Materials.Rubber), + 'P', new UnificationEntry(pipeNormalFluid, Materials.Copper), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead) + .input(pipeNormalFluid, Materials.Copper) + .input(screw, Materials.Bronze) + .input(rotor, Materials.Bronze) + .input(ring, Materials.Rubber, 2) + .input(GTEMetaItems.GTE_ELECTRIC_MOTOR) + .output(GTEMetaItems.GTE_ELECTRIC_PUMP) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "conveyor_module_" + componentsName, + GTEMetaItems.GTE_CONVEYOR_MODULE.getStackForm(), "PPP", "MCM", "PPP", + 'P', new UnificationEntry(plate, Materials.Rubber), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead) + .inputs(GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm(2)) + .fluidInputs(Materials.Rubber.getFluid(L * 6)) + .circuitMeta(1) + .output(GTEMetaItems.GTE_CONVEYOR_MODULE) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "robot_arm_" + componentsName, + GTEMetaItems.GTE_ROBOT_ARM.getStackForm(), "CCC", "MRM", "PUR", + 'R', new UnificationEntry(stick, Materials.Bronze), + 'C', new UnificationEntry(cableGtSingle, Materials.Lead), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PISTON.getStackForm(), + 'M', GTEMetaItems.GTE_ELECTRIC_MOTOR.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(cableGtSingle, Materials.Lead, 3) + .input(stick, Materials.Bronze, 2) + .input(GTEMetaItems.GTE_ELECTRIC_MOTOR, 2) + .input(GTEMetaItems.GTE_ELECTRIC_PISTON) + .input(circuit, MarkerMaterials.Tier.ULV) + .output(GTEMetaItems.GTE_ROBOT_ARM) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "fluid_regulator_" + componentsName, + GTEMetaItems.GTE_FLUID_REGULATOR.getStackForm(), " U ", "dPw", " U ", + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'P', GTEMetaItems.GTE_ELECTRIC_PUMP.getStackForm()); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(GTEMetaItems.GTE_ELECTRIC_PUMP) + .input(circuit, MarkerMaterials.Tier.ULV, 2) + .circuitMeta(1) + .output(GTEMetaItems.GTE_FLUID_REGULATOR) + .EUt(VA[ULV]) + .duration(400) + .withRecycling() + .buildAndRegister(); + + ModHandler.addShapedRecipe(true, "field_generator_" + componentsName, + GTEMetaItems.GTE_FIELD_GENERATOR.getStackForm(), "CPC", "UGU", "CPC", + 'C', new UnificationEntry(wireGtDouble, Materials.RedAlloy), + 'P', new UnificationEntry(plate, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(gem, Materials.Lapis) + .input(plate, Materials.Bronze, 2) + .input(circuit, MarkerMaterials.Tier.ULV, 2) + .input(wireGtDouble, Materials.RedAlloy, 4) + .output(GTEMetaItems.GTE_FIELD_GENERATOR) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "emitter_" + componentsName, + GTEMetaItems.GTE_EMITTER.getStackForm(), "CSU", "SGS", "USC", + 'C', new UnificationEntry(cableGtSingle, Materials.RedAlloy), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .circuitMeta(1) + .input(stick, Materials.Bronze, 4) + .input(cableGtSingle, Materials.RedAlloy, 2) + .input(circuit, MarkerMaterials.Tier.ULV, 2) + .input(gem, Materials.Lapis) + .output(GTEMetaItems.GTE_EMITTER) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + + ModHandler.addShapedRecipe(true, "sensor_" + componentsName, + GTEMetaItems.GTE_SENSOR.getStackForm(), "P G", "PS ", "UPP", + 'P', new UnificationEntry(plate, Materials.Bronze), + 'S', new UnificationEntry(stick, Materials.Bronze), + 'U', new UnificationEntry(circuit, MarkerMaterials.Tier.ULV), + 'G', new UnificationEntry(gem, Materials.Lapis)); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder() + .input(stick, Materials.Bronze) + .input(plate, Materials.Bronze, 4) + .input(circuit, MarkerMaterials.Tier.ULV) + .input(gem, Materials.Lapis) + .output(GTEMetaItems.GTE_SENSOR) + .duration(100).EUt(VA[ULV]).buildAndRegister(); + } + default -> GTELog.logger.error("Invalid componentsRecipeType setting: {}", + GTEConfigHolder.gteFlag.componentsRecipeType); } - default -> GTELog.logger - .error("Invalid componentsRecipeType setting: " + GTEConfigHolder.gteFlag.componentsRecipeType); } // Solar Panels