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 --- src/main/java/gregtech/GT_Mod.java | 1 + .../java/gregtech/api/enums/MaterialBuilder.java | 1 - src/main/java/gregtech/api/enums/Materials.java | 40 +- src/main/java/gregtech/api/enums/Tier.java | 4 +- src/main/java/gregtech/api/enums/TierEU.java | 2 - .../GT_MetaTileEntity_BasicMachine_GT_Recipe.java | 578 ++++++-------- src/main/java/gregtech/api/util/GT_ModHandler.java | 13 + .../java/gregtech/api/util/GT_RecipeBuilder.java | 11 +- .../gregtech/api/util/GT_RecipeRegistrator.java | 70 +- src/main/java/gregtech/api/util/GT_Utility.java | 3 +- src/main/java/gregtech/common/GT_Proxy.java | 73 +- src/main/java/gregtech/common/GT_RecipeAdder.java | 43 + .../java/gregtech/common/GT_ThaumcraftCompat.java | 10 +- .../java/gregtech/common/bees/GT_AlleleHelper.java | 3 +- .../gregtech/common/blocks/GT_Block_Machines.java | 2 - .../common/blocks/GT_Block_Ores_Abstract.java | 1 - .../gregtech/common/blocks/GT_Block_Ores_UB1.java | 72 -- .../gregtech/common/blocks/GT_Block_Ores_UB2.java | 73 -- .../gregtech/common/blocks/GT_Block_Ores_UB3.java | 73 -- .../common/blocks/GT_Block_Reinforced.java | 1 + .../common/blocks/GT_Block_Stones_Abstract.java | 94 ++- .../gregtech/common/blocks/GT_Item_Casings5.java | 1 - .../gregtech/common/blocks/GT_Item_Machines.java | 1 - .../java/gregtech/common/covers/GT_Cover_Arm.java | 40 +- .../common/covers/GT_Cover_FluidRegulator.java | 6 - .../gregtech/common/covers/GT_Cover_ItemMeter.java | 4 +- .../gregtech/common/covers/GT_Cover_Shutter.java | 8 +- .../redstone/GT_Cover_WirelessItemDetector.java | 6 +- src/main/java/gregtech/common/fluid/GT_Fluid.java | 15 +- .../widget/CoverDataFollower_TextFieldWidget.java | 3 +- .../gregtech/common/items/GT_FluidDisplayItem.java | 10 +- .../common/items/GT_MetaGenerated_Item_01.java | 18 +- .../common/items/GT_MetaGenerated_Item_02.java | 141 +++- .../common/items/GT_MetaGenerated_Item_03.java | 395 +++++----- .../common/items/GT_MetaGenerated_Item_98.java | 7 +- src/main/java/gregtech/common/items/ItemComb.java | 183 ++--- src/main/java/gregtech/common/items/ItemDrop.java | 44 +- .../java/gregtech/common/items/ItemPropolis.java | 47 +- .../items/behaviors/Behaviour_Spray_Color.java | 1 + .../multi/GT_MetaTileEntity_AssemblyLine.java | 2 +- .../multi/GT_MetaTileEntity_Cleanroom.java | 20 +- .../multi/GT_MetaTileEntity_DieselEngine.java | 7 - .../multi/GT_MetaTileEntity_DistillationTower.java | 2 +- .../GT_MetaTileEntity_ImplosionCompressor.java | 2 +- .../GT_MetaTileEntity_IntegratedOreFactory.java | 2 +- .../GT_MetaTileEntity_LargeChemicalReactor.java | 6 +- .../GT_MetaTileEntity_LargeTurbine_Plasma.java | 14 +- .../multi/GT_MetaTileEntity_MultiFurnace.java | 14 +- .../multi/GT_MetaTileEntity_OilCracker.java | 2 +- .../multi/GT_MetaTileEntity_PyrolyseOven.java | 2 +- .../multi/GT_MetaTileEntity_VacuumFreezer.java | 2 +- .../GT_MetaTileEntity_DigitalChestBase.java | 60 +- .../storage/GT_MetaTileEntity_SuperTank.java | 2 +- .../gregtech/common/tools/GT_Tool_Chainsaw_LV.java | 4 +- .../gregtech/common/tools/GT_Tool_Drill_HV.java | 4 +- .../gregtech/common/tools/GT_Tool_JackHammer.java | 2 +- .../gregtech/common/tools/GT_Tool_Pickaxe.java | 2 +- .../gregtech/common/tools/GT_Tool_Plunger.java | 3 +- .../crossmod/GregtechWailaDataProvider.java | 1 - .../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 +- 102 files changed, 3951 insertions(+), 3185 deletions(-) delete mode 100644 src/main/java/gregtech/common/blocks/GT_Block_Ores_UB1.java delete mode 100644 src/main/java/gregtech/common/blocks/GT_Block_Ores_UB2.java delete mode 100644 src/main/java/gregtech/common/blocks/GT_Block_Ores_UB3.java (limited to 'src') diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index cda731540b..7b88920d8a 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -178,6 +178,7 @@ public class GT_Mod implements IGT_Mod { } } + @SuppressWarnings("deprecation") public GT_Mod() { GT_Values.GT = this; GT_Values.DW = new GT_DummyWorld(); diff --git a/src/main/java/gregtech/api/enums/MaterialBuilder.java b/src/main/java/gregtech/api/enums/MaterialBuilder.java index 92ae7c07c3..175081e0ce 100644 --- a/src/main/java/gregtech/api/enums/MaterialBuilder.java +++ b/src/main/java/gregtech/api/enums/MaterialBuilder.java @@ -35,7 +35,6 @@ public class MaterialBuilder { private boolean hasCorrespondingFluid = false; private boolean hasCorrespondingGas = false; private boolean canBeCracked = false; - private boolean canBeSteamCracked = false; private int liquidTemperature = 300; private int gasTemperature = 300; diff --git a/src/main/java/gregtech/api/enums/Materials.java b/src/main/java/gregtech/api/enums/Materials.java index 60bcb7a867..f2fcc9aebd 100644 --- a/src/main/java/gregtech/api/enums/Materials.java +++ b/src/main/java/gregtech/api/enums/Materials.java @@ -891,6 +891,10 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { public static Materials EnrichedHolmium = new Materials(582, TextureSet.SET_METALLIC, 1.0F, 0, 2, 18, 100, 1|2|4|16, 255, 255, "EnrichedHolmium", "Enriched Holmium", -1, -1, 0, 3000, true, false, 200, 1, 1, Dyes.dyePurple); + public static Materials TengamPurified = new MaterialBuilder(111, TextureSet.SET_METALLIC, "Purified Tengam").addDustItems().addGearItems().addMetalItems().addToolHeadItems().setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 2), new TC_AspectStack(TC_Aspects.ELECTRUM, 2))).setColor(Dyes.dyeLime).setName("TengamPurified").setRGB(186, 223, 112).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UEV); + public static Materials TengamAttuned = new MaterialBuilder(112, TextureSet.SET_MAGNETIC, "Attuned Tengam") .addDustItems().addGearItems().addMetalItems().addToolHeadItems().setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 4), new TC_AspectStack(TC_Aspects.ELECTRUM, 1))).setColor(Dyes.dyeLime).setName("TengamAttuned") .setRGB(213, 255, 128).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UEV); + public static Materials TengamRaw = new MaterialBuilder(110, TextureSet.SET_ROUGH, "Raw Tengam") .addOreItems() .setAspects(Arrays.asList(new TC_AspectStack(TC_Aspects.MAGNETO, 1), new TC_AspectStack(TC_Aspects.ELECTRUM, 4))).setColor(Dyes.dyeLime).setName("TengamRaw") .setRGB(160, 191, 96).constructMaterial().setProcessingMaterialTierEU(TierEU.RECIPE_UEV); + // spotless:on static { @@ -1372,6 +1376,9 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { Sand.setSmeltingInto(Glass); Ice.setSmeltingInto(Water); Snow.setSmeltingInto(Water); + TengamAttuned.setSmeltingInto(TengamPurified) + .setMaceratingInto(TengamPurified) + .setArcSmeltingInto(TengamPurified); } private static void setOthers() { @@ -1799,6 +1806,7 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { Cryolite.addOreByProducts(Aluminiumoxide, Sodium); Naquadria.addOreByProduct(Naquadria); RoastedNickel.addOreByProduct(Nickel); + TengamRaw.addOreByProducts(NeodymiumMagnetic, SamariumMagnetic); } private static void setColors() { @@ -1871,19 +1879,22 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { MaterialsUEVplus.Universium.mChemicalFormula = "A tear into the space beyond space"; Longasssuperconductornameforuvwire.mChemicalFormula = "Nq*\u2084(Ir\u2083Os)\u2083EuSm"; Longasssuperconductornameforuhvwire.mChemicalFormula = "D\u2086(SpNt)\u2087Tn\u2085Am\u2086"; - SuperconductorUEVBase.mChemicalFormula = "D*\u2085If*\u2085(✦◆✦)(⚷⚙⚷ Ni4Ti6)"; - SuperconductorUIVBase.mChemicalFormula = "(C\u2081\u2084Os\u2081\u2081O\u2087Ag\u2083SpH\u2082O)\u2084?\u2081\u2080(Fs⚶)\u2086(⌘☯☯⌘)\u2085"; - SuperconductorUMVBase.mChemicalFormula = "?\u2086Or\u2083(Hy⚶)\u2081\u2081(((CW)\u2087Ti\u2083)\u2083???)\u2085۞\u2082"; + SuperconductorUEVBase.mChemicalFormula = "D*\u2085If*\u2085(\u2726\u25C6\u2726)(\u26B7\u2699\u26B7 Ni4Ti6)"; + SuperconductorUIVBase.mChemicalFormula = "(C\u2081\u2084Os\u2081\u2081O\u2087Ag\u2083SpH\u2082O)\u2084?\u2081\u2080(Fs\u26B6)\u2086(\u2318\u262F\u262F\u2318)\u2085"; + SuperconductorUMVBase.mChemicalFormula = "?\u2086Or\u2083(Hy\u26B6)\u2081\u2081(((CW)\u2087Ti\u2083)\u2083???)\u2085\u06DE\u2082"; Diatomite.mChemicalFormula = "(SiO\u2082)\u2088Fe\u2082O\u2083(Al\u2082O\u2083)"; EnrichedHolmium.mChemicalFormula = "Nq+\u2088Ho\u2082"; - Grade1PurifiedWater.mChemicalFormula = "H₂O"; - Grade2PurifiedWater.mChemicalFormula = "H₂O"; - Grade3PurifiedWater.mChemicalFormula = "H₂O"; - Grade4PurifiedWater.mChemicalFormula = "H₂O"; - Grade5PurifiedWater.mChemicalFormula = "H₂O"; - Grade6PurifiedWater.mChemicalFormula = "H₂O"; - Grade7PurifiedWater.mChemicalFormula = "H₂O"; - Grade8PurifiedWater.mChemicalFormula = "H₂O"; + Grade1PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade2PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade3PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade4PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade5PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade6PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade7PurifiedWater.mChemicalFormula = "H\u2082O"; + Grade8PurifiedWater.mChemicalFormula = "H\u2082O"; + TengamRaw.mChemicalFormula = ""; + TengamPurified.mChemicalFormula = "M"; + TengamAttuned.mChemicalFormula = "M"; } private static void initSubTags() { @@ -2142,7 +2153,9 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { Quantium, RedstoneAlloy, Bedrockium, - EnrichedHolmium); + EnrichedHolmium, + TengamPurified, + TengamAttuned); SubTag.FOOD.addTo( MeatRaw, @@ -2333,7 +2346,8 @@ public class Materials implements IColorModulationContainer, ISubTagContainer { Elite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); Master.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); Ultimate.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); - Superconductor.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); + Superconductor.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); // Todo: remove this once it will be fully + // deprecated Infinite.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); Bio.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); SuperconductorMV.add(SubTag.NO_SMASHING, SubTag.NO_SMELTING); diff --git a/src/main/java/gregtech/api/enums/Tier.java b/src/main/java/gregtech/api/enums/Tier.java index 870e8dafbb..84e8344334 100644 --- a/src/main/java/gregtech/api/enums/Tier.java +++ b/src/main/java/gregtech/api/enums/Tier.java @@ -111,7 +111,7 @@ public class Tier { OrePrefixes.cableGt01.get(Materials.Naquadah), OrePrefixes.cableGt04.get(Materials.Naquadah), OrePrefixes.circuit.get(Materials.Ultimate), - OrePrefixes.circuit.get(Materials.Superconductor)), + OrePrefixes.circuit.get(Materials.SuperconductorUHV)), new Tier( SubTag.ENERGY_ELECTRICITY, 8, @@ -123,7 +123,7 @@ public class Tier { ItemList.Hull_UV, OrePrefixes.cableGt04.get(Materials.NaquadahAlloy), OrePrefixes.wireGt01.get(Materials.SuperconductorUHV), - OrePrefixes.circuit.get(Materials.Superconductor), + OrePrefixes.circuit.get(Materials.SuperconductorUHV), OrePrefixes.circuit.get(Materials.Infinite)), new Tier( SubTag.ENERGY_ELECTRICITY, diff --git a/src/main/java/gregtech/api/enums/TierEU.java b/src/main/java/gregtech/api/enums/TierEU.java index 419580f92d..7325d2a789 100644 --- a/src/main/java/gregtech/api/enums/TierEU.java +++ b/src/main/java/gregtech/api/enums/TierEU.java @@ -4,8 +4,6 @@ import static gregtech.api.enums.GT_Values.V; public class TierEU { - private static final double RECIPE_DISCOUNT = 0.95; - // Do NOT use these for crafting recipes as they are exactly 1A! Use RECIPE_ULV etc. public static final long ULV = V[0]; public static final long LV = V[1]; diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java index 0dc019ae5c..a80e235a65 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine_GT_Recipe.java @@ -161,341 +161,249 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_ // TODO: CHECK if (aRecipe != null) { for (int i = 3; i < aRecipe.length; i++) { - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CIRCUIT) { - aRecipe[i] = Tier.ELECTRIC[this.mTier].mManagingObject; - continue; - } - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.BETTER_CIRCUIT) { - aRecipe[i] = Tier.ELECTRIC[this.mTier].mBetterManagingObject; - continue; - } - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.HULL) { - aRecipe[i] = Tier.ELECTRIC[this.mTier].mHullObject; - continue; - } - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE) { - aRecipe[i] = Tier.ELECTRIC[this.mTier].mConductingObject; - continue; - } - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.WIRE4) { - aRecipe[i] = Tier.ELECTRIC[this.mTier].mLargerConductingObject; - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.GLASS) { - switch (this.mTier) { - case 0: - case 1: - case 2: - case 3: - aRecipe[i] = new ItemStack(Blocks.glass, 1, W); - break; - case 4: - case 5: - case 6: - case 7: - case 8: - if (BartWorks.isModLoaded()) { // todo remove via provider pattern on all enums? - aRecipe[i] = "blockGlass" + VN[aTier]; - break; - } - default: - if (BartWorks.isModLoaded()) { // todo remove via provider pattern on all enums? - aRecipe[i] = "blockGlass" + VN[8]; - } else { - aRecipe[i] = Ic2Items.reinforcedGlass; - } - break; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PLATE) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.plate.get(Materials.Steel); - case 2 -> aRecipe[i] = OrePrefixes.plate.get(Materials.Aluminium); - case 3 -> aRecipe[i] = OrePrefixes.plate.get(Materials.StainlessSteel); - case 4 -> aRecipe[i] = OrePrefixes.plate.get(Materials.Titanium); - case 5 -> aRecipe[i] = OrePrefixes.plate.get(Materials.TungstenSteel); - case 6 -> aRecipe[i] = OrePrefixes.plate.get(Materials.HSSG); - case 7 -> aRecipe[i] = OrePrefixes.plate.get(Materials.HSSE); - default -> aRecipe[i] = OrePrefixes.plate.get(Materials.Neutronium); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PIPE) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Bronze); - case 2 -> aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Steel); - case 3 -> aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.StainlessSteel); - case 4 -> aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Titanium); - case 5 -> aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.TungstenSteel); - case 6 -> aRecipe[i] = OrePrefixes.pipeSmall.get(Materials.Ultimate); - case 7 -> aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Ultimate); - case 8 -> aRecipe[i] = OrePrefixes.pipeLarge.get(Materials.Ultimate); - default -> aRecipe[i] = OrePrefixes.pipeHuge.get(Materials.Ultimate); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.AnyCopper); - case 2 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Cupronickel); - case 3 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Kanthal); - case 4 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Nichrome); - case 5 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.TPV); - case 6 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.HSSG); - case 7 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Naquadah); - case 8 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.NaquadahAlloy); - case 9 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.NaquadahAlloy); - default -> aRecipe[i] = OrePrefixes.wireGt08.get(Materials.NaquadahAlloy); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_HEATING_DOUBLE) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.AnyCopper); - case 2 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Cupronickel); - case 3 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Kanthal); - case 4 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Nichrome); - case 5 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.TPV); - case 6 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.HSSG); - case 7 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.Naquadah); - case 8 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.NaquadahAlloy); - case 9 -> aRecipe[i] = OrePrefixes.wireGt08.get(Materials.NaquadahAlloy); - default -> aRecipe[i] = OrePrefixes.wireGt16.get(Materials.NaquadahAlloy); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_DISTILLATION) { - aRecipe[i] = OrePrefixes.stick.get(Materials.Blaze); - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_MAGNETIC) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.stick.get(Materials.IronMagnetic); - case 2, 3 -> aRecipe[i] = OrePrefixes.stick.get(Materials.SteelMagnetic); - case 4, 5 -> aRecipe[i] = OrePrefixes.stick.get(Materials.NeodymiumMagnetic); - case 6, 7 -> aRecipe[i] = OrePrefixes.stick.get(Materials.SamariumMagnetic); - default -> aRecipe[i] = OrePrefixes.stickLong.get(Materials.SamariumMagnetic); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.STICK_ELECTROMAGNETIC) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.stick.get(Materials.AnyIron); - case 2, 3 -> aRecipe[i] = OrePrefixes.stick.get(Materials.Steel); - case 4 -> aRecipe[i] = OrePrefixes.stick.get(Materials.Neodymium); - default -> aRecipe[i] = OrePrefixes.stick.get(Materials.VanadiumGallium); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.COIL_ELECTRIC) { - switch (this.mTier) { - case 0 -> aRecipe[i] = OrePrefixes.wireGt01.get(Materials.Lead); - case 1 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.Tin); - case 2 -> aRecipe[i] = OrePrefixes.wireGt02.get(Materials.AnyCopper); - case 3 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.AnyCopper); - case 4 -> aRecipe[i] = OrePrefixes.wireGt08.get(Materials.AnnealedCopper); - case 5 -> aRecipe[i] = OrePrefixes.wireGt16.get(Materials.AnnealedCopper); - case 6 -> aRecipe[i] = OrePrefixes.wireGt04.get(Materials.YttriumBariumCuprate); - case 7 -> aRecipe[i] = OrePrefixes.wireGt08.get(Materials.Iridium); - default -> aRecipe[i] = OrePrefixes.wireGt16.get(Materials.Osmium); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROBOT_ARM) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Robot_Arm_LV; - case 2 -> aRecipe[i] = ItemList.Robot_Arm_MV; - case 3 -> aRecipe[i] = ItemList.Robot_Arm_HV; - case 4 -> aRecipe[i] = ItemList.Robot_Arm_EV; - case 5 -> aRecipe[i] = ItemList.Robot_Arm_IV; - case 6 -> aRecipe[i] = ItemList.Robot_Arm_LuV; - case 7 -> aRecipe[i] = ItemList.Robot_Arm_ZPM; - case 8 -> aRecipe[i] = ItemList.Robot_Arm_UV; - case 9 -> aRecipe[i] = ItemList.Robot_Arm_UHV; - case 10 -> aRecipe[i] = ItemList.Robot_Arm_UEV; - case 11 -> aRecipe[i] = ItemList.Robot_Arm_UIV; - case 12 -> aRecipe[i] = ItemList.Robot_Arm_UMV; - case 13 -> aRecipe[i] = ItemList.Robot_Arm_UXV; - case 14 -> aRecipe[i] = ItemList.Robot_Arm_MAX; - default -> aRecipe[i] = ItemList.Robot_Arm_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PUMP) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Electric_Pump_LV; - case 2 -> aRecipe[i] = ItemList.Electric_Pump_MV; - case 3 -> aRecipe[i] = ItemList.Electric_Pump_HV; - case 4 -> aRecipe[i] = ItemList.Electric_Pump_EV; - case 5 -> aRecipe[i] = ItemList.Electric_Pump_IV; - case 6 -> aRecipe[i] = ItemList.Electric_Pump_LuV; - case 7 -> aRecipe[i] = ItemList.Electric_Pump_ZPM; - case 8 -> aRecipe[i] = ItemList.Electric_Pump_UV; - case 9 -> aRecipe[i] = ItemList.Electric_Pump_UHV; - case 10 -> aRecipe[i] = ItemList.Electric_Pump_UEV; - case 11 -> aRecipe[i] = ItemList.Electric_Pump_UIV; - case 12 -> aRecipe[i] = ItemList.Electric_Pump_UMV; - case 13 -> aRecipe[i] = ItemList.Electric_Pump_UXV; - case 14 -> aRecipe[i] = ItemList.Electric_Pump_MAX; - default -> aRecipe[i] = ItemList.Electric_Pump_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.ROTOR) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.Tin); - case 2 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.Bronze); - case 3 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.Steel); - case 4 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.StainlessSteel); - case 5 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.TungstenSteel); - case 6 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.Chrome); - case 7 -> aRecipe[i] = OrePrefixes.rotor.get(Materials.Iridium); - default -> aRecipe[i] = OrePrefixes.rotor.get(Materials.Osmium); - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.MOTOR) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Electric_Motor_LV; - case 2 -> aRecipe[i] = ItemList.Electric_Motor_MV; - case 3 -> aRecipe[i] = ItemList.Electric_Motor_HV; - case 4 -> aRecipe[i] = ItemList.Electric_Motor_EV; - case 5 -> aRecipe[i] = ItemList.Electric_Motor_IV; - case 6 -> aRecipe[i] = ItemList.Electric_Motor_LuV; - case 7 -> aRecipe[i] = ItemList.Electric_Motor_ZPM; - case 8 -> aRecipe[i] = ItemList.Electric_Motor_UV; - case 9 -> aRecipe[i] = ItemList.Electric_Motor_UHV; - case 10 -> aRecipe[i] = ItemList.Electric_Motor_UEV; - case 11 -> aRecipe[i] = ItemList.Electric_Motor_UIV; - case 12 -> aRecipe[i] = ItemList.Electric_Motor_UMV; - case 13 -> aRecipe[i] = ItemList.Electric_Motor_UXV; - case 14 -> aRecipe[i] = ItemList.Electric_Motor_MAX; - default -> aRecipe[i] = ItemList.Electric_Motor_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.PISTON) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Electric_Piston_LV; - case 2 -> aRecipe[i] = ItemList.Electric_Piston_MV; - case 3 -> aRecipe[i] = ItemList.Electric_Piston_HV; - case 4 -> aRecipe[i] = ItemList.Electric_Piston_EV; - case 5 -> aRecipe[i] = ItemList.Electric_Piston_IV; - case 6 -> aRecipe[i] = ItemList.Electric_Piston_LuV; - case 7 -> aRecipe[i] = ItemList.Electric_Piston_ZPM; - case 8 -> aRecipe[i] = ItemList.Electric_Piston_UV; - case 9 -> aRecipe[i] = ItemList.Electric_Piston_UHV; - case 10 -> aRecipe[i] = ItemList.Electric_Piston_UEV; - case 11 -> aRecipe[i] = ItemList.Electric_Piston_UIV; - case 12 -> aRecipe[i] = ItemList.Electric_Piston_UMV; - case 13 -> aRecipe[i] = ItemList.Electric_Piston_UXV; - case 14 -> aRecipe[i] = ItemList.Electric_Piston_MAX; - default -> aRecipe[i] = ItemList.Electric_Piston_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.CONVEYOR) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Conveyor_Module_LV; - case 2 -> aRecipe[i] = ItemList.Conveyor_Module_MV; - case 3 -> aRecipe[i] = ItemList.Conveyor_Module_HV; - case 4 -> aRecipe[i] = ItemList.Conveyor_Module_EV; - case 5 -> aRecipe[i] = ItemList.Conveyor_Module_IV; - case 6 -> aRecipe[i] = ItemList.Conveyor_Module_LuV; - case 7 -> aRecipe[i] = ItemList.Conveyor_Module_ZPM; - case 8 -> aRecipe[i] = ItemList.Conveyor_Module_UV; - case 9 -> aRecipe[i] = ItemList.Conveyor_Module_UHV; - case 10 -> aRecipe[i] = ItemList.Conveyor_Module_UEV; - case 11 -> aRecipe[i] = ItemList.Conveyor_Module_UIV; - case 12 -> aRecipe[i] = ItemList.Conveyor_Module_UMV; - case 13 -> aRecipe[i] = ItemList.Conveyor_Module_UXV; - case 14 -> aRecipe[i] = ItemList.Conveyor_Module_MAX; - default -> aRecipe[i] = ItemList.Conveyor_Module_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.EMITTER) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Emitter_LV; - case 2 -> aRecipe[i] = ItemList.Emitter_MV; - case 3 -> aRecipe[i] = ItemList.Emitter_HV; - case 4 -> aRecipe[i] = ItemList.Emitter_EV; - case 5 -> aRecipe[i] = ItemList.Emitter_IV; - case 6 -> aRecipe[i] = ItemList.Emitter_LuV; - case 7 -> aRecipe[i] = ItemList.Emitter_ZPM; - case 8 -> aRecipe[i] = ItemList.Emitter_UV; - case 9 -> aRecipe[i] = ItemList.Emitter_UHV; - case 10 -> aRecipe[i] = ItemList.Emitter_UEV; - case 11 -> aRecipe[i] = ItemList.Emitter_UIV; - case 12 -> aRecipe[i] = ItemList.Emitter_UMV; - case 13 -> aRecipe[i] = ItemList.Emitter_UXV; - case 14 -> aRecipe[i] = ItemList.Emitter_MAX; - default -> aRecipe[i] = ItemList.Emitter_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.SENSOR) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Sensor_LV; - case 2 -> aRecipe[i] = ItemList.Sensor_MV; - case 3 -> aRecipe[i] = ItemList.Sensor_HV; - case 4 -> aRecipe[i] = ItemList.Sensor_EV; - case 5 -> aRecipe[i] = ItemList.Sensor_IV; - case 6 -> aRecipe[i] = ItemList.Sensor_LuV; - case 7 -> aRecipe[i] = ItemList.Sensor_ZPM; - case 8 -> aRecipe[i] = ItemList.Sensor_UV; - case 9 -> aRecipe[i] = ItemList.Sensor_UHV; - case 10 -> aRecipe[i] = ItemList.Sensor_UEV; - case 11 -> aRecipe[i] = ItemList.Sensor_UIV; - case 12 -> aRecipe[i] = ItemList.Sensor_UMV; - case 13 -> aRecipe[i] = ItemList.Sensor_UXV; - case 14 -> aRecipe[i] = ItemList.Sensor_MAX; - default -> aRecipe[i] = ItemList.Sensor_MAX; - } - continue; - } - - if (aRecipe[i] == GT_MetaTileEntity_BasicMachine_GT_Recipe.X.FIELD_GENERATOR) { - switch (this.mTier) { - case 0, 1 -> aRecipe[i] = ItemList.Field_Generator_LV; - case 2 -> aRecipe[i] = ItemList.Field_Generator_MV; - case 3 -> aRecipe[i] = ItemList.Field_Generator_HV; - case 4 -> aRecipe[i] = ItemList.Field_Generator_EV; - case 5 -> aRecipe[i] = ItemList.Field_Generator_IV; - case 6 -> aRecipe[i] = ItemList.Field_Generator_LuV; - case 7 -> aRecipe[i] = ItemList.Field_Generator_ZPM; - case 8 -> aRecipe[i] = ItemList.Field_Generator_UV; - case 9 -> aRecipe[i] = ItemList.Field_Generator_UHV; - case 10 -> aRecipe[i] = ItemList.Field_Generator_UEV; - case 11 -> aRecipe[i] = ItemList.Field_Generator_UIV; - case 12 -> aRecipe[i] = ItemList.Field_Generator_UMV; - case 13 -> aRecipe[i] = ItemList.Field_Generator_UXV; - case 14 -> aRecipe[i] = ItemList.Field_Generator_MAX; - default -> aRecipe[i] = ItemList.Field_Generator_MAX; - } - continue; - } - - if (aRecipe[i] instanceof GT_MetaTileEntity_BasicMachine_GT_Recipe.X) - throw new IllegalArgumentException("MISSING TIER MAPPING FOR: " + aRecipe[i] + " AT TIER " + mTier); + if (!(aRecipe[i] instanceof X)) continue; + + // spotless:off + aRecipe[i] = switch ((X) aRecipe[i]) { + case CIRCUIT -> Tier.ELECTRIC[this.mTier].mManagingObject; + case BETTER_CIRCUIT -> Tier.ELECTRIC[this.mTier].mBetterManagingObject; + case HULL -> Tier.ELECTRIC[this.mTier].mHullObject; + case WIRE -> Tier.ELECTRIC[this.mTier].mConductingObject; + case WIRE4 -> Tier.ELECTRIC[this.mTier].mLargerConductingObject; + case STICK_DISTILLATION -> OrePrefixes.stick.get(Materials.Blaze); + + case GLASS -> switch (this.mTier) { + case 0, 1, 2, 3 -> new ItemStack(Blocks.glass, 1, W); + case 4, 5, 6, 7, 8 -> BartWorks.isModLoaded() ? "blockGlass" + VN[aTier] : Ic2Items.reinforcedGlass; + default -> BartWorks.isModLoaded() ? "blockGlass" + VN[8] : Ic2Items.reinforcedGlass; + }; + + case PLATE -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.plate.get(Materials.Steel); + case 2 -> OrePrefixes.plate.get(Materials.Aluminium); + case 3 -> OrePrefixes.plate.get(Materials.StainlessSteel); + case 4 -> OrePrefixes.plate.get(Materials.Titanium); + case 5 -> OrePrefixes.plate.get(Materials.TungstenSteel); + case 6 -> OrePrefixes.plate.get(Materials.HSSG); + case 7 -> OrePrefixes.plate.get(Materials.HSSE); + default -> OrePrefixes.plate.get(Materials.Neutronium); + }; + + case PIPE -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.pipeMedium.get(Materials.Bronze); + case 2 -> OrePrefixes.pipeMedium.get(Materials.Steel); + case 3 -> OrePrefixes.pipeMedium.get(Materials.StainlessSteel); + case 4 -> OrePrefixes.pipeMedium.get(Materials.Titanium); + case 5 -> OrePrefixes.pipeMedium.get(Materials.TungstenSteel); + case 6 -> OrePrefixes.pipeSmall.get(Materials.Ultimate); + case 7 -> OrePrefixes.pipeMedium.get(Materials.Ultimate); + case 8 -> OrePrefixes.pipeLarge.get(Materials.Ultimate); + default -> OrePrefixes.pipeHuge.get(Materials.Ultimate); + }; + + case COIL_HEATING -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.wireGt02.get(Materials.AnyCopper); + case 2 -> OrePrefixes.wireGt02.get(Materials.Cupronickel); + case 3 -> OrePrefixes.wireGt02.get(Materials.Kanthal); + case 4 -> OrePrefixes.wireGt02.get(Materials.Nichrome); + case 5 -> OrePrefixes.wireGt02.get(Materials.TPV); + case 6 -> OrePrefixes.wireGt02.get(Materials.HSSG); + case 7 -> OrePrefixes.wireGt02.get(Materials.Naquadah); + case 8 -> OrePrefixes.wireGt02.get(Materials.NaquadahAlloy); + case 9 -> OrePrefixes.wireGt04.get(Materials.NaquadahAlloy); + default -> OrePrefixes.wireGt08.get(Materials.NaquadahAlloy); + }; + + case COIL_HEATING_DOUBLE -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.wireGt04.get(Materials.AnyCopper); + case 2 -> OrePrefixes.wireGt04.get(Materials.Cupronickel); + case 3 -> OrePrefixes.wireGt04.get(Materials.Kanthal); + case 4 -> OrePrefixes.wireGt04.get(Materials.Nichrome); + case 5 -> OrePrefixes.wireGt04.get(Materials.TPV); + case 6 -> OrePrefixes.wireGt04.get(Materials.HSSG); + case 7 -> OrePrefixes.wireGt04.get(Materials.Naquadah); + case 8 -> OrePrefixes.wireGt04.get(Materials.NaquadahAlloy); + case 9 -> OrePrefixes.wireGt08.get(Materials.NaquadahAlloy); + default -> OrePrefixes.wireGt16.get(Materials.NaquadahAlloy); + }; + + case STICK_MAGNETIC -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.stick.get(Materials.IronMagnetic); + case 2, 3 -> OrePrefixes.stick.get(Materials.SteelMagnetic); + case 4, 5 -> OrePrefixes.stick.get(Materials.NeodymiumMagnetic); + case 6, 7, 8, 9 -> OrePrefixes.stick.get(Materials.SamariumMagnetic); + default -> OrePrefixes.stick.get(Materials.TengamAttuned); + }; + + case STICK_ELECTROMAGNETIC -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.stick.get(Materials.AnyIron); + case 2, 3 -> OrePrefixes.stick.get(Materials.Steel); + case 4 -> OrePrefixes.stick.get(Materials.Neodymium); + default -> OrePrefixes.stick.get(Materials.VanadiumGallium); + }; + + case COIL_ELECTRIC -> switch (this.mTier) { + case 0 -> OrePrefixes.wireGt01.get(Materials.Lead); + case 1 -> OrePrefixes.wireGt02.get(Materials.Tin); + case 2 -> OrePrefixes.wireGt02.get(Materials.AnyCopper); + case 3 -> OrePrefixes.wireGt04.get(Materials.AnyCopper); + case 4 -> OrePrefixes.wireGt08.get(Materials.AnnealedCopper); + case 5 -> OrePrefixes.wireGt16.get(Materials.AnnealedCopper); + case 6 -> OrePrefixes.wireGt04.get(Materials.YttriumBariumCuprate); + case 7 -> OrePrefixes.wireGt08.get(Materials.Iridium); + default -> OrePrefixes.wireGt16.get(Materials.Osmium); + }; + + case ROBOT_ARM -> switch (this.mTier) { + case 0, 1 -> ItemList.Robot_Arm_LV; + case 2 -> ItemList.Robot_Arm_MV; + case 3 -> ItemList.Robot_Arm_HV; + case 4 -> ItemList.Robot_Arm_EV; + case 5 -> ItemList.Robot_Arm_IV; + case 6 -> ItemList.Robot_Arm_LuV; + case 7 -> ItemList.Robot_Arm_ZPM; + case 8 -> ItemList.Robot_Arm_UV; + case 9 -> ItemList.Robot_Arm_UHV; + case 10 -> ItemList.Robot_Arm_UEV; + case 11 -> ItemList.Robot_Arm_UIV; + case 12 -> ItemList.Robot_Arm_UMV; + case 13 -> ItemList.Robot_Arm_UXV; + default -> ItemList.Robot_Arm_MAX; + }; + + case PUMP -> switch (this.mTier) { + case 0, 1 -> ItemList.Electric_Pump_LV; + case 2 -> ItemList.Electric_Pump_MV; + case 3 -> ItemList.Electric_Pump_HV; + case 4 -> ItemList.Electric_Pump_EV; + case 5 -> ItemList.Electric_Pump_IV; + case 6 -> ItemList.Electric_Pump_LuV; + case 7 -> ItemList.Electric_Pump_ZPM; + case 8 -> ItemList.Electric_Pump_UV; + case 9 -> ItemList.Electric_Pump_UHV; + case 10 -> ItemList.Electric_Pump_UEV; + case 11 -> ItemList.Electric_Pump_UIV; + case 12 -> ItemList.Electric_Pump_UMV; + case 13 -> ItemList.Electric_Pump_UXV; + default -> ItemList.Electric_Pump_MAX; + }; + + case MOTOR -> switch (this.mTier) { + case 0, 1 -> ItemList.Electric_Motor_LV; + case 2 -> ItemList.Electric_Motor_MV; + case 3 -> ItemList.Electric_Motor_HV; + case 4 -> ItemList.Electric_Motor_EV; + case 5 -> ItemList.Electric_Motor_IV; + case 6 -> ItemList.Electric_Motor_LuV; + case 7 -> ItemList.Electric_Motor_ZPM; + case 8 -> ItemList.Electric_Motor_UV; + case 9 -> ItemList.Electric_Motor_UHV; + case 10 -> ItemList.Electric_Motor_UEV; + case 11 -> ItemList.Electric_Motor_UIV; + case 12 -> ItemList.Electric_Motor_UMV; + case 13 -> ItemList.Electric_Motor_UXV; + default -> ItemList.Electric_Motor_MAX; + }; + + case PISTON -> switch (this.mTier) { + case 0, 1 -> ItemList.Electric_Piston_LV; + case 2 -> ItemList.Electric_Piston_MV; + case 3 -> ItemList.Electric_Piston_HV; + case 4 -> ItemList.Electric_Piston_EV; + case 5 -> ItemList.Electric_Piston_IV; + case 6 -> ItemList.Electric_Piston_LuV; + case 7 -> ItemList.Electric_Piston_ZPM; + case 8 -> ItemList.Electric_Piston_UV; + case 9 -> ItemList.Electric_Piston_UHV; + case 10 -> ItemList.Electric_Piston_UEV; + case 11 -> ItemList.Electric_Piston_UIV; + case 12 -> ItemList.Electric_Piston_UMV; + case 13 -> ItemList.Electric_Piston_UXV; + default -> ItemList.Electric_Piston_MAX; + }; + + case CONVEYOR -> switch (this.mTier) { + case 0, 1 -> ItemList.Conveyor_Module_LV; + case 2 -> ItemList.Conveyor_Module_MV; + case 3 -> ItemList.Conveyor_Module_HV; + case 4 -> ItemList.Conveyor_Module_EV; + case 5 -> ItemList.Conveyor_Module_IV; + case 6 -> ItemList.Conveyor_Module_LuV; + case 7 -> ItemList.Conveyor_Module_ZPM; + case 8 -> ItemList.Conveyor_Module_UV; + case 9 -> ItemList.Conveyor_Module_UHV; + case 10 -> ItemList.Conveyor_Module_UEV; + case 11 -> ItemList.Conveyor_Module_UIV; + case 12 -> ItemList.Conveyor_Module_UMV; + case 13 -> ItemList.Conveyor_Module_UXV; + default -> ItemList.Conveyor_Module_MAX; + }; + + case EMITTER -> switch (this.mTier) { + case 0, 1 -> ItemList.Emitter_LV; + case 2 -> ItemList.Emitter_MV; + case 3 -> ItemList.Emitter_HV; + case 4 -> ItemList.Emitter_EV; + case 5 -> ItemList.Emitter_IV; + case 6 -> ItemList.Emitter_LuV; + case 7 -> ItemList.Emitter_ZPM; + case 8 -> ItemList.Emitter_UV; + case 9 -> ItemList.Emitter_UHV; + case 10 -> ItemList.Emitter_UEV; + case 11 -> ItemList.Emitter_UIV; + case 12 -> ItemList.Emitter_UMV; + case 13 -> ItemList.Emitter_UXV; + default -> ItemList.Emitter_MAX; + }; + + case SENSOR -> switch (this.mTier) { + case 0, 1 -> ItemList.Sensor_LV; + case 2 -> ItemList.Sensor_MV; + case 3 -> ItemList.Sensor_HV; + case 4 -> ItemList.Sensor_EV; + case 5 -> ItemList.Sensor_IV; + case 6 -> ItemList.Sensor_LuV; + case 7 -> ItemList.Sensor_ZPM; + case 8 -> ItemList.Sensor_UV; + case 9 -> ItemList.Sensor_UHV; + case 10 -> ItemList.Sensor_UEV; + case 11 -> ItemList.Sensor_UIV; + case 12 -> ItemList.Sensor_UMV; + case 13 -> ItemList.Sensor_UXV; + default -> ItemList.Sensor_MAX; + }; + + case FIELD_GENERATOR -> switch (this.mTier) { + case 0, 1 -> ItemList.Field_Generator_LV; + case 2 -> ItemList.Field_Generator_MV; + case 3 -> ItemList.Field_Generator_HV; + case 4 -> ItemList.Field_Generator_EV; + case 5 -> ItemList.Field_Generator_IV; + case 6 -> ItemList.Field_Generator_LuV; + case 7 -> ItemList.Field_Generator_ZPM; + case 8 -> ItemList.Field_Generator_UV; + case 9 -> ItemList.Field_Generator_UHV; + case 10 -> ItemList.Field_Generator_UEV; + case 11 -> ItemList.Field_Generator_UIV; + case 12 -> ItemList.Field_Generator_UMV; + case 13 -> ItemList.Field_Generator_UXV; + default -> ItemList.Field_Generator_MAX; + }; + + case ROTOR -> switch (this.mTier) { + case 0, 1 -> OrePrefixes.rotor.get(Materials.Tin); + case 2 -> OrePrefixes.rotor.get(Materials.Bronze); + case 3 -> OrePrefixes.rotor.get(Materials.Steel); + case 4 -> OrePrefixes.rotor.get(Materials.StainlessSteel); + case 5 -> OrePrefixes.rotor.get(Materials.TungstenSteel); + case 6 -> OrePrefixes.rotor.get(Materials.Chrome); + case 7 -> OrePrefixes.rotor.get(Materials.Iridium); + default -> OrePrefixes.rotor.get(Materials.Osmium); + }; + + default -> throw new IllegalArgumentException("MISSING TIER MAPPING FOR: " + aRecipe[i] + " AT TIER " + this.mTier); + }; + // spotless:on } if (!GT_ModHandler.addCraftingRecipe( diff --git a/src/main/java/gregtech/api/util/GT_ModHandler.java b/src/main/java/gregtech/api/util/GT_ModHandler.java index 58cadd9d7d..8097f82dea 100644 --- a/src/main/java/gregtech/api/util/GT_ModHandler.java +++ b/src/main/java/gregtech/api/util/GT_ModHandler.java @@ -9,6 +9,7 @@ import static gregtech.api.enums.GT_Values.M; import static gregtech.api.enums.GT_Values.RA; import static gregtech.api.enums.GT_Values.V; import static gregtech.api.enums.GT_Values.W; +import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; import java.util.ArrayList; import java.util.Arrays; @@ -597,28 +598,34 @@ public class GT_ModHandler { return true; } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1) { return addPulverisationRecipe(aInput, aOutput1, null, 0, false); } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2) { return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, false); } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance) { return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, false); } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, boolean aOverwrite) { return addPulverisationRecipe(aInput, aOutput1, null, 0, aOverwrite); } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, boolean aOverwrite) { return addPulverisationRecipe(aInput, aOutput1, aOutput2, 100, aOverwrite); } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance, boolean aOverwrite) { return addPulverisationRecipe(aInput, aOutput1, aOutput2, aChance, null, 0, aOverwrite); @@ -627,6 +634,7 @@ public class GT_ModHandler { /** * Adds Several Pulverizer-Type Recipes. */ + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aChance2, ItemStack aOutput3, int aChance3, boolean aOverwrite) { aOutput1 = GT_OreDictUnificator.get(true, aOutput1); @@ -644,6 +652,7 @@ public class GT_ModHandler { return true; } + @Deprecated public static boolean addPulverisationRecipe(ItemStack aInputItem, ItemStack[] aOutputArray, int[] aChanceArray, int aEUt, int aRecipeDurationInTicks) { @@ -830,6 +839,7 @@ public class GT_ModHandler { /** * IC2-ThermalCentrifuge Recipe. Overloads old Recipes automatically */ + @Deprecated public static boolean addThermalCentrifugeRecipe(ItemStack aInput, int[] aChances, int aHeat, Object... aOutput) { if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, true)) return false; @@ -844,6 +854,7 @@ public class GT_ModHandler { return true; } + @Deprecated public static boolean addThermalCentrifugeRecipe(ItemStack aInput, int aHeat, Object... aOutput) { if (aInput == null || aOutput == null || aOutput.length <= 0 || aOutput[0] == null) return false; if (!GregTech_API.sRecipeFile.get(ConfigCategories.Machines.thermalcentrifuge, aInput, true)) return false; @@ -909,6 +920,7 @@ public class GT_ModHandler { /** * IC2-Compressor Recipe. Overloads old Recipes automatically */ + @Deprecated public static boolean addCompressionRecipe(ItemStack aInput, ItemStack aOutput) { return addCompressionRecipe(aInput, aOutput, 300, 2); } @@ -916,6 +928,7 @@ public class GT_ModHandler { /** * IC2-Compressor Recipe. Overloads old Recipes automatically */ + @Deprecated public static boolean addCompressionRecipe(ItemStack aInput, ItemStack aOutput, int duration, int EUPerTick) { aOutput = GT_OreDictUnificator.get(true, aOutput); if (aInput == null || aOutput == null || GT_Utility.areStacksEqual(aInput, aOutput, true)) return false; diff --git a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java index bb061eb2dc..bdd09f0a34 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeBuilder.java +++ b/src/main/java/gregtech/api/util/GT_RecipeBuilder.java @@ -36,15 +36,13 @@ public class GT_RecipeBuilder { public static final int BUCKETS = 1000; static { - boolean tmp; if (System.getProperties() .containsKey("gt.recipebuilder.debug")) { - tmp = Boolean.getBoolean("gt.recipebuilder.debug"); + DEBUG_MODE = Boolean.getBoolean("gt.recipebuilder.debug"); } else { // turn on debug by default in dev mode - tmp = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); + DEBUG_MODE = (Boolean) Launch.blackboard.get("fml.deobfuscatedEnvironment"); } - DEBUG_MODE = tmp; PANIC_MODE = DEBUG_MODE && Boolean.getBoolean("gt.recipebuilder.panic"); } @@ -273,6 +271,11 @@ public class GT_RecipeBuilder { return this; } + public GT_RecipeBuilder duration(long duration) { + this.duration = (int) duration; + return this; + } + public GT_RecipeBuilder eut(int eut) { this.eut = eut; return this; diff --git a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java index a9e8f5cc09..2a5a251503 100644 --- a/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java +++ b/src/main/java/gregtech/api/util/GT_RecipeRegistrator.java @@ -3,6 +3,10 @@ package gregtech.api.util; import static gregtech.api.enums.GT_Values.*; import static gregtech.api.enums.Materials.*; import static gregtech.api.enums.Materials.Void; +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_RecipeBuilder.TICKS; +import static gregtech.api.util.GT_RecipeConstants.UniversalArcFurnace; import static gregtech.api.util.GT_Utility.calculateRecipeEU; import java.lang.reflect.Field; @@ -302,17 +306,24 @@ public class GT_RecipeRegistrator { boolean tHide = !tIron && GT_Mod.gregtechproxy.mHideRecyclingRecipes; if (aData.mPrefix == OrePrefixes.toolHeadDrill) { - RA.addArcFurnaceRecipe( - aStack, - new ItemStack[] { GT_OreDictUnificator.getIngotOrDust(aData.mMaterial) }, - null, - 90, - (int) Math.max(16, tAmount / M), - tHide); + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + + recipeBuilder.itemInputs(aStack) + .itemOutputs(GT_OreDictUnificator.getIngotOrDust(aData.mMaterial)) + .fluidInputs(Materials.Oxygen.getGas(90)) + .noFluidOutputs() + .duration(4 * SECONDS + 10 * TICKS) + .eut(Math.max(16, tAmount / M)); + if (tHide) { + recipeBuilder.hidden(); + } + recipeBuilder.addTo(UniversalArcFurnace); } else { - RA.addArcFurnaceRecipe( - aStack, - new ItemStack[] { GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), + GT_RecipeBuilder recipeBuilder = GT_Values.RA.stdBuilder(); + + recipeBuilder.itemInputs(aStack) + .itemOutputs( + GT_OreDictUnificator.getIngotOrDust(aData.mMaterial), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(0)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(1)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(2)), @@ -320,11 +331,15 @@ public class GT_RecipeRegistrator { GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(5)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(6)), GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(7)), - GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(8)) }, - null, - (int) Math.max(16, tAmount / M), - 90, - tHide); + GT_OreDictUnificator.getIngotOrDust(aData.getByProduct(8))) + .fluidInputs(Materials.Oxygen.getGas(90)) + .noFluidOutputs() + .duration(8 * SECONDS + 10 * TICKS) + .eut((int) Math.max(16, tAmount / M)); + if (tHide) { + recipeBuilder.hidden(); + } + recipeBuilder.addTo(UniversalArcFurnace); } } @@ -378,15 +393,26 @@ public class GT_RecipeRegistrator { tHide); } - if (aAllowHammer) for (MaterialStack tMaterial : aData.getAllMaterialStacks()) + if (!aAllowHammer) { + return; + } + + for (MaterialStack tMaterial : aData.getAllMaterialStacks()) { if (tMaterial.mMaterial.contains(SubTag.CRYSTAL) && !tMaterial.mMaterial.contains(SubTag.METAL) && tMaterial.mMaterial != Materials.Glass) { - if (RA.addForgeHammerRecipe( - GT_Utility.copyAmount(1, aStack), - GT_OreDictUnificator.getDust(aData.mMaterial), - 200, - 30)) break; - } + GT_Values.RA.stdBuilder() + .itemInputs(GT_Utility.copyAmount(1, aStack)) + .itemOutputs(GT_OreDictUnificator.getDust(aData.mMaterial)) + .noFluidInputs() + .noFluidOutputs() + .duration(10 * SECONDS) + .eut(TierEU.RECIPE_LV) + .addTo(sHammerRecipes); + + break; + } + } + } /** diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 8d9d0814dc..91d5a90fe6 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -20,7 +20,6 @@ import java.math.RoundingMode; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.*;