diff --git a/src/main/java/com/zorbatron/zbgt/recipe/CoverRecipes.java b/src/main/java/com/zorbatron/zbgt/recipe/CoverRecipes.java index 5c73e651..6d8cf536 100644 --- a/src/main/java/com/zorbatron/zbgt/recipe/CoverRecipes.java +++ b/src/main/java/com/zorbatron/zbgt/recipe/CoverRecipes.java @@ -6,6 +6,8 @@ import static gregtech.api.recipes.RecipeMaps.ASSEMBLY_LINE_RECIPES; import static gregtech.common.items.MetaItems.*; +import com.zorbatron.zbgt.recipe.helpers.RecipeAssists; + import gregtech.api.unification.material.MarkerMaterials; import gregtech.api.unification.material.Materials; import gregtech.api.unification.ore.OrePrefix; @@ -18,55 +20,17 @@ protected static void init() { } private static void dualCovers() { - ASSEMBLER_RECIPES.recipeBuilder() - .input(CONVEYOR_MODULE_LV) - .input(ELECTRIC_PUMP_LV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.LV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(DUAL_COVER_LV) - .EUt(VA[LV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(CONVEYOR_MODULE_MV) - .input(ELECTRIC_PUMP_MV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.MV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(DUAL_COVER_MV) - .EUt(VA[MV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(CONVEYOR_MODULE_HV) - .input(ELECTRIC_PUMP_HV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.HV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(DUAL_COVER_HV) - .EUt(VA[HV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(CONVEYOR_MODULE_EV) - .input(ELECTRIC_PUMP_EV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.EV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(DUAL_COVER_EV) - .EUt(VA[EV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(CONVEYOR_MODULE_IV) - .input(ELECTRIC_PUMP_IV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.IV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(DUAL_COVER_IV) - .EUt(VA[IV]).duration(20) - .buildAndRegister(); + for (int tier = LV; tier < LuV; tier++) { + ASSEMBLER_RECIPES.recipeBuilder() + .input(RecipeAssists.getConveyorByTier(tier)) + .input(RecipeAssists.getPumpByTier(tier)) + .input(OrePrefix.circuit, RecipeAssists.getMarkerMaterialByTier(tier)) + .circuitMeta(2) + .fluidInputs(Materials.SolderingAlloy.getFluid(L / 2)) + .output(RecipeAssists.getDualCoverByTier(tier)) + .EUt(VA[tier]).duration(20) + .buildAndRegister(); + } ASSEMBLY_LINE_RECIPES.recipeBuilder() .input(CONVEYOR_MODULE_LuV) @@ -113,60 +77,17 @@ private static void dualCovers() { } private static void preciseDualCovers() { - ASSEMBLER_RECIPES.recipeBuilder() - .input(ROBOT_ARM_LV) - .input(FLUID_REGULATOR_LV) - .input(SENSOR_LV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.LV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(PRECISE_DUAL_COVER_LV) - .EUt(VA[LV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(ROBOT_ARM_MV) - .input(FLUID_REGULATOR_MV) - .input(SENSOR_MV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.MV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(PRECISE_DUAL_COVER_MV) - .EUt(VA[MV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(ROBOT_ARM_HV) - .input(FLUID_REGULATOR_HV) - .input(SENSOR_HV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.HV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(PRECISE_DUAL_COVER_HV) - .EUt(VA[HV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(ROBOT_ARM_EV) - .input(FLUID_REGULATOR_EV) - .input(SENSOR_EV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.EV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(PRECISE_DUAL_COVER_EV) - .EUt(VA[EV]).duration(20) - .buildAndRegister(); - - ASSEMBLER_RECIPES.recipeBuilder() - .input(ROBOT_ARM_IV) - .input(FLUID_REGULATOR_IV) - .input(SENSOR_IV) - .input(OrePrefix.circuit, MarkerMaterials.Tier.IV) - .circuitMeta(2) - .fluidInputs(Materials.Tin.getFluid(L)) - .output(PRECISE_DUAL_COVER_IV) - .EUt(VA[IV]).duration(20) - .buildAndRegister(); + for (int tier = LV; tier < LuV; tier++) { + ASSEMBLER_RECIPES.recipeBuilder() + .input(RecipeAssists.getRobotArmByTier(tier)) + .input(RecipeAssists.getFluidRegulatorByTier(tier)) + .input(OrePrefix.circuit, RecipeAssists.getMarkerMaterialByTier(tier)) + .circuitMeta(2) + .fluidInputs(Materials.SolderingAlloy.getFluid(L / 2)) + .output(RecipeAssists.getPreciseDualCoverByTier(tier)) + .EUt(VA[tier]).duration(20) + .buildAndRegister(); + } ASSEMBLY_LINE_RECIPES.recipeBuilder() .input(ROBOT_ARM_LuV) diff --git a/src/main/java/com/zorbatron/zbgt/recipe/helpers/RecipeAssists.java b/src/main/java/com/zorbatron/zbgt/recipe/helpers/RecipeAssists.java index d960e10b..9043f8e6 100644 --- a/src/main/java/com/zorbatron/zbgt/recipe/helpers/RecipeAssists.java +++ b/src/main/java/com/zorbatron/zbgt/recipe/helpers/RecipeAssists.java @@ -16,6 +16,7 @@ import gregtech.common.blocks.BlockMachineCasing; import gregtech.common.blocks.MetaBlocks; +@SuppressWarnings("unused") public class RecipeAssists { public static int getCWUt(int tier) { @@ -195,6 +196,19 @@ public static MetaItem.MetaValueItem getConveyorByTier(int tier) { }; } + public static MetaItem.MetaValueItem getFluidRegulatorByTier(int tier) { + return switch (tier) { + case (MV) -> FLUID_REGULATOR_MV; + case (HV) -> FLUID_REGULATOR_HV; + case (EV) -> FLUID_REGULATOR_EV; + case (IV) -> FLUID_REGULATOR_IV; + case (LuV) -> FLUID_REGULATOR_LUV; + case (ZPM) -> FLUID_REGULATOR_ZPM; + case (UV) -> FLUID_REGULATOR_UV; + default -> FLUID_REGULATOR_LV; + }; + } + public static MetaItem.MetaValueItem getEmitterByTier(int tier) { return switch (tier) { case (MV) -> EMITTER_MV; @@ -385,4 +399,40 @@ public static PreciseCasing.CasingType getPreciseCasingTypeByTier(int tier) { default -> PreciseCasing.CasingType.PRECISE_CASING_0; }; } + + public static MetaItem.MetaValueItem getDualCoverByTier(int tier) { + return switch (tier) { + case (MV) -> DUAL_COVER_MV; + case (HV) -> DUAL_COVER_HV; + case (EV) -> DUAL_COVER_EV; + case (IV) -> DUAL_COVER_IV; + case (LuV) -> DUAL_COVER_LuV; + case (ZPM) -> DUAL_COVER_ZPM; + case (UV) -> DUAL_COVER_UV; + case (UHV) -> DUAL_COVER_UHV; + case (UEV) -> DUAL_COVER_UEV; + case (UIV) -> DUAL_COVER_UIV; + case (UXV) -> DUAL_COVER_UXV; + case (OpV) -> DUAL_COVER_OpV; + default -> DUAL_COVER_LV; + }; + } + + public static MetaItem.MetaValueItem getPreciseDualCoverByTier(int tier) { + return switch (tier) { + case (MV) -> PRECISE_DUAL_COVER_MV; + case (HV) -> PRECISE_DUAL_COVER_HV; + case (EV) -> PRECISE_DUAL_COVER_EV; + case (IV) -> PRECISE_DUAL_COVER_IV; + case (LuV) -> PRECISE_DUAL_COVER_LuV; + case (ZPM) -> PRECISE_DUAL_COVER_ZPM; + case (UV) -> PRECISE_DUAL_COVER_UV; + case (UHV) -> PRECISE_DUAL_COVER_UHV; + case (UEV) -> PRECISE_DUAL_COVER_UEV; + case (UIV) -> PRECISE_DUAL_COVER_UIV; + case (UXV) -> PRECISE_DUAL_COVER_UXV; + case (OpV) -> PRECISE_DUAL_COVER_OpV; + default -> PRECISE_DUAL_COVER_LV; + }; + } }