diff --git a/CHANGELOG.md b/CHANGELOG.md index 0aaf6261..8697e5ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 2.7.6 +- Make MetaItem, MetaTileEntity, and Material IDs configurable via cfg + - Each category uses a configurable start ID; individual IDs are calculated as offsets + - Default values match the previous hardcoded values, so no impact on existing worlds + +* * * + # 2.7.5 - Re: Fix DEDA logic. diff --git a/src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java index b1365731..bc5a0041 100644 --- a/src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/GTEFirstDegreeMaterials.java @@ -11,14 +11,18 @@ import gregtech.api.unification.material.Material; import gregtech.api.unification.material.properties.BlastProperty.GasTier; +import com.github.gtexpert.core.common.GTEConfigHolder; + public class GTEFirstDegreeMaterials { /** - * 24001 - 24100 + * Default: 24001 - 24100 */ public static void init() { - // Artificial Bone 24001 - ArtificialBone = new Material.Builder(24001, gteId("artificial_bone")) + int startId = GTEConfigHolder.startIDs.coreMaterial; + + // Artificial Bone + ArtificialBone = new Material.Builder(startId, gteId("artificial_bone")) .dust(1) .color(0xFAFAFA) .flags(FORCE_GENERATE_BLOCK, MORTAR_GRINDABLE, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES) @@ -26,7 +30,7 @@ public static void init() { .build(); // NM_HEA_NPs - NM_HEA_NPs = new Material.Builder(24002, gteId("nm_hea_nps")) + NM_HEA_NPs = new Material.Builder(startId + 1, gteId("nm_hea_nps")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xa90000).iconSet(METALLIC) @@ -41,7 +45,7 @@ public static void init() { .build(); // Naquadah Rocket Fuel - NaquadahRocketFuel = new Material.Builder(24003, gteId("naquadah_rocket_fuel")) + NaquadahRocketFuel = new Material.Builder(startId + 2, gteId("naquadah_rocket_fuel")) .liquid(new FluidBuilder().temperature(1200)) .color(0x2E4C00) .flags(NO_WORKING) diff --git a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java index fa12155d..92451622 100644 --- a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AEFirstDegreeMaterials.java @@ -14,18 +14,21 @@ import gregtech.api.unification.ore.OrePrefix; import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.integration.ae.AEConfigHolder; public class AEFirstDegreeMaterials { /** - * 24151 - 24175 + * Default: 24151 - 24175 */ public static void init() { + int startId = AEConfigHolder.materialStartId; + // Certus Quartz OrePrefix.block.modifyMaterialAmount(CertusQuartz, 4); // Charged Certus Quartz - ChargedCertusQuartz = new Material.Builder(24151, gteId("charged_certus_quartz")) + ChargedCertusQuartz = new Material.Builder(startId, gteId("charged_certus_quartz")) .dust() .liquid(new FluidBuilder().temperature(1200)) .color(0xCFDAFF).iconSet(MaterialIconSet.CERTUS) @@ -35,7 +38,7 @@ public static void init() { OrePrefix.block.modifyMaterialAmount(ChargedCertusQuartz, 4); // Fluix - Fluix = new Material.Builder(24152, gteId("fluix")) + Fluix = new Material.Builder(startId + 1, gteId("fluix")) .dust() .liquid(new FluidBuilder().temperature(1200)) .color(0x846994).iconSet(MaterialIconSet.CERTUS) @@ -45,7 +48,7 @@ public static void init() { OrePrefix.block.modifyMaterialAmount(Fluix, 4); // Fluix Alloy - FluixAlloy = new Material.Builder(24153, gteId("fluix_alloy")) + FluixAlloy = new Material.Builder(startId + 2, gteId("fluix_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x4A3954).iconSet(MaterialIconSet.SHINY) diff --git a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java index 94faf3d7..a9aded80 100644 --- a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/AvaritiaFirstDegreeMaterials.java @@ -12,17 +12,19 @@ import gregtech.api.unification.material.properties.ToolProperty; import com.github.gtexpert.core.api.unification.material.info.GTEMaterialIconSet; +import com.github.gtexpert.core.common.GTEConfigHolder; public class AvaritiaFirstDegreeMaterials { public static void init() { + int startId = GTEConfigHolder.startIDs.avaritiaMaterial; // Neutronium // Neutronium.setMaterialRGB(0x000000); // Neutronium.setMaterialIconSet(GTEMaterialIconSet.NEUTRONIUM); Neutronium.addFlags(GENERATE_SMALL_GEAR, GENERATE_FOIL, GENERATE_RING, GENERATE_ROTOR, NO_SMELTING); // Infinity - Infinity = new Material.Builder(24186, gteId("infinity")) + Infinity = new Material.Builder(startId, gteId("infinity")) .dust(7).ingot(7) .liquid(new FluidBuilder().temperature(10800)) .iconSet(GTEMaterialIconSet.INFINITY) diff --git a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java index d6e4533b..907f12d7 100644 --- a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/DEFirstDegreeMaterials.java @@ -17,15 +17,18 @@ import com.github.gtexpert.core.api.GTEValues; import com.github.gtexpert.core.api.util.Mods; +import com.github.gtexpert.core.integration.deda.DEDAConfigHolder; public class DEFirstDegreeMaterials { /** - * 24176 - 24200 + * Default: 24176 - 24200 */ public static void init() { + int startId = DEDAConfigHolder.materialStartId; + // Cryotheum - Cryotheum = new Material.Builder(24176, gteId("cryotheum")) + Cryotheum = new Material.Builder(startId, gteId("cryotheum")) .liquid(new FluidBuilder().temperature(2)) .color(0x00B6FF).iconSet(MaterialIconSet.FLUID) .flags(NO_WORKING, DISABLE_DECOMPOSITION) @@ -33,7 +36,7 @@ public static void init() { .build(); // Pyrotheum - Pyrotheum = new Material.Builder(24177, gteId("pyrotheum")) + Pyrotheum = new Material.Builder(startId + 1, gteId("pyrotheum")) .fluid(GCYMFluidStorageKeys.MOLTEN, new FluidBuilder().temperature(10273)) .color(0xE42C13).iconSet(MaterialIconSet.BRIGHT) .flags(NO_WORKING, DISABLE_DECOMPOSITION) @@ -41,7 +44,7 @@ public static void init() { .build(); // Dragon Dust - Dragon = new Material.Builder(24178, gteId("dragon")) + Dragon = new Material.Builder(startId + 2, gteId("dragon")) .dust() .color(0x000000).iconSet(MaterialIconSet.ROUGH) .flags(NO_WORKING, DISABLE_DECOMPOSITION) @@ -51,7 +54,7 @@ public static void init() { .build(); // Draconium - Draconium = new Material.Builder(24180, gteId("draconium")) + Draconium = new Material.Builder(startId + 4, gteId("draconium")) .ore(2, 1, true) .ingot(5) .liquid(new FluidBuilder().temperature(1200)) @@ -72,7 +75,7 @@ public static void init() { .build(); // Awakened Draconium - AwakenedDraconium = new Material.Builder(24181, gteId("awakened_draconium")) + AwakenedDraconium = new Material.Builder(startId + 5, gteId("awakened_draconium")) .ingot(6) .liquid(new FluidBuilder().temperature(1200)) .color(0xFF6C00).iconSet(MaterialIconSet.METALLIC) @@ -90,7 +93,7 @@ public static void init() { .build(); // Chaos Dust - Chaos = new Material.Builder(24179, gteId("chaos")) + Chaos = new Material.Builder(startId + 3, gteId("chaos")) .dust() .color(0x000000).iconSet(MaterialIconSet.ROUGH) .flags(NO_WORKING, DISABLE_DECOMPOSITION) diff --git a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java index 68cefbc3..905f5c52 100644 --- a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/EIOFirstDegreeMaterials.java @@ -12,29 +12,32 @@ import gregtech.api.unification.material.properties.BlastProperty.GasTier; import com.github.gtexpert.core.api.GTEValues; +import com.github.gtexpert.core.integration.eio.EnderIOConfigHolder; public class EIOFirstDegreeMaterials { /** - * 24101 - 24150 + * Default: 24101 - 24150 */ public static void init() { + int startId = EnderIOConfigHolder.materialStartId; + // Soulsand Dust - SoulSand = new Material.Builder(24101, gteId("soul_sand")) + SoulSand = new Material.Builder(startId, gteId("soul_sand")) .dust() .color(0x846C4C).iconSet(MaterialIconSet.SAND) .flags(NO_WORKING) .build(); // Chorusfruit Dust - ChorusFruit = new Material.Builder(24102, gteId("chorus_fruit")) + ChorusFruit = new Material.Builder(startId + 1, gteId("chorus_fruit")) .dust() .color(0x8C648C).iconSet(MaterialIconSet.DULL) .flags(NO_WORKING) .build(); // Electrical Steel - ElectricalSteel = new Material.Builder(24103, gteId("electrical_steel")) + ElectricalSteel = new Material.Builder(startId + 2, gteId("electrical_steel")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x949494).iconSet(MaterialIconSet.METALLIC) @@ -47,7 +50,7 @@ public static void init() { .build(); // Energetic Alloy - EnergeticAlloy = new Material.Builder(24104, gteId("energetic_alloy")) + EnergeticAlloy = new Material.Builder(startId + 3, gteId("energetic_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xED8009).iconSet(MaterialIconSet.SHINY) @@ -61,7 +64,7 @@ public static void init() { EnergeticAlloy.setFormula("Au2(Si(FeS2)5(CrAl2O3)Hg3)2", true); // Vibrant Alloy - VibrantAlloy = new Material.Builder(24105, gteId("vibrant_alloy")) + VibrantAlloy = new Material.Builder(startId + 4, gteId("vibrant_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xBAC63F).iconSet(MaterialIconSet.SHINY) @@ -75,7 +78,7 @@ public static void init() { VibrantAlloy.setFormula("BeK4N5(Au2(Si(FeS2)5(CrAl2O3)Hg3)2)", true); // Redstone Alloy - RedstoneAlloy = new Material.Builder(24106, gteId("redstone_alloy")) + RedstoneAlloy = new Material.Builder(startId + 5, gteId("redstone_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x942323).iconSet(MaterialIconSet.DULL) @@ -88,7 +91,7 @@ public static void init() { .build(); // Conductive Iron - ConductiveIron = new Material.Builder(24107, gteId("conductive_iron")) + ConductiveIron = new Material.Builder(startId + 6, gteId("conductive_iron")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xD1A79B).iconSet(MaterialIconSet.ROUGH) @@ -101,7 +104,7 @@ public static void init() { .build(); // Pulsating Iron - PulsatingIron = new Material.Builder(24108, gteId("pulsating_iron")) + PulsatingIron = new Material.Builder(startId + 7, gteId("pulsating_iron")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x6EAC7D).iconSet(MaterialIconSet.SHINY) @@ -114,7 +117,7 @@ public static void init() { .build(); // Dark Steel - DarkSteel = new Material.Builder(24109, gteId("dark_steel")) + DarkSteel = new Material.Builder(startId + 8, gteId("dark_steel")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x5F5F5F).iconSet(MaterialIconSet.METALLIC) @@ -127,7 +130,7 @@ public static void init() { .build(); // Soularium - Soularium = new Material.Builder(24110, gteId("soularium")) + Soularium = new Material.Builder(startId + 9, gteId("soularium")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x5A4226).iconSet(MaterialIconSet.DULL) @@ -140,7 +143,7 @@ public static void init() { .build(); // End Steel - EndSteel = new Material.Builder(24111, gteId("end_steel")) + EndSteel = new Material.Builder(startId + 10, gteId("end_steel")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xBCB682).iconSet(MaterialIconSet.METALLIC) @@ -158,7 +161,7 @@ public static void init() { true); // Iron Alloy - ConstructionAlloy = new Material.Builder(24112, gteId("construction_alloy")) + ConstructionAlloy = new Material.Builder(startId + 11, gteId("construction_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x524C53).iconSet(MaterialIconSet.ROUGH) @@ -171,7 +174,7 @@ public static void init() { .build(); // Crystalline Alloy - CrystallineAlloy = new Material.Builder(24113, gteId("crystalline_alloy")) + CrystallineAlloy = new Material.Builder(startId + 12, gteId("crystalline_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x9FE4E4).iconSet(MaterialIconSet.SHINY) @@ -184,7 +187,7 @@ public static void init() { .build(); // Melodic Alloy - MelodicAlloy = new Material.Builder(24114, gteId("melodic_alloy")) + MelodicAlloy = new Material.Builder(startId + 13, gteId("melodic_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xA877A8).iconSet(MaterialIconSet.SHINY) @@ -197,7 +200,7 @@ public static void init() { .build(); // Stellar Alloy - StellarAlloy = new Material.Builder(24115, gteId("stellar_alloy")) + StellarAlloy = new Material.Builder(startId + 14, gteId("stellar_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xDBDECC).iconSet(MaterialIconSet.SHINY) @@ -210,7 +213,7 @@ public static void init() { .build(); // Crystalline Pink Slime - CrystallinePinkSlime = new Material.Builder(24116, gteId("crystalline_pink_slime")) + CrystallinePinkSlime = new Material.Builder(startId + 15, gteId("crystalline_pink_slime")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0xE79EDB).iconSet(MaterialIconSet.SHINY) @@ -223,7 +226,7 @@ public static void init() { .build(); // Energetic Silver - EnergeticSilver = new Material.Builder(24117, gteId("energetic_silver")) + EnergeticSilver = new Material.Builder(startId + 16, gteId("energetic_silver")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x598DB3).iconSet(MaterialIconSet.SHINY) @@ -236,7 +239,7 @@ public static void init() { .build(); // Vivid Alloy - VividAlloy = new Material.Builder(24118, gteId("vivid_alloy")) + VividAlloy = new Material.Builder(startId + 17, gteId("vivid_alloy")) .ingot() .liquid(new FluidBuilder().temperature(1200)) .color(0x469BB1).iconSet(MaterialIconSet.SHINY) diff --git a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java index a7a62ce8..2e85dd68 100644 --- a/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java +++ b/src/main/java/com/github/gtexpert/core/api/unification/material/ingredients/TCFirstDegreeMaterials.java @@ -10,14 +10,18 @@ import gregtech.api.unification.material.Material; import gregtech.api.unification.material.info.MaterialIconSet; +import com.github.gtexpert.core.integration.tc.TCConfigHolder; + public class TCFirstDegreeMaterials { /** - * 24191 - 24199 + * Default: 24191 - 24199 */ public static void init() { + int startId = TCConfigHolder.materialStartId; + // Thaumium - Thaumium = new Material.Builder(24191, gteId("thaumium")) + Thaumium = new Material.Builder(startId, gteId("thaumium")) .dust(3).ingot(3) .liquid(new FluidBuilder().temperature(1200)) .color(0x9664c8).iconSet(MaterialIconSet.METALLIC) @@ -29,7 +33,7 @@ public static void init() { .build(); // Void Metal - VoidMetal = new Material.Builder(24192, gteId("void_metal")) + VoidMetal = new Material.Builder(startId + 1, gteId("void_metal")) .dust(4).ingot(4) .liquid(new FluidBuilder().temperature(1200)) .color(0x1c0639).iconSet(MaterialIconSet.SHINY) diff --git a/src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java b/src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java index df60270f..eed03efe 100644 --- a/src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/common/GTEConfigHolder.java @@ -14,6 +14,11 @@ public class GTEConfigHolder { @Config.RequiresMcRestart public static final ModpackFlag gteFlag = new ModpackFlag(); + @Config.Name("Start IDs") + @Config.Comment("Start IDs for meta items, machines and materials. Change if there are conflicts with other mods.") + @Config.RequiresMcRestart + public static final StartIDs startIDs = new StartIDs(); + @Config.Name("Gregtech Override") @Config.RequiresMcRestart public static final GregtechOverride ceuOverride = new GregtechOverride(); @@ -68,6 +73,39 @@ public static class ModpackFlag { public int vfpBaseProductionRate = 16; } + public static class StartIDs { + + @Config.Comment({ "Start ID for misc meta items (ME Fake Component, Matrix Core, Artificial Bone)", + "Default: 0" }) + @Config.RangeInt(min = 0) + public int metaItemMisc = 0; + + @Config.Comment({ "Start ID for component meta items (Electric Motor, Pump, Conveyor, etc.)", + "Default: 11" }) + @Config.RangeInt(min = 0) + public int metaItemComponent = 11; + + @Config.Comment({ "Start ID for shape meta items (Molds and Extruders)", + "Default: 101" }) + @Config.RangeInt(min = 0) + public int metaItemShape = 101; + + @Config.Comment({ "Start ID for core multi-block machines", + "Default: 12001" }) + @Config.RangeInt(min = 0) + public int coreMTE = 12001; + + @Config.Comment({ "Start ID for core materials", + "Default: 24001" }) + @Config.RangeInt(min = 0) + public int coreMaterial = 24001; + + @Config.Comment({ "Start ID for Avaritia materials", + "Default: 24186" }) + @Config.RangeInt(min = 0) + public int avaritiaMaterial = 24186; + } + public static class GregtechOverride { @Config.Comment({ "Change to a recipe using Assembly Line.", diff --git a/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java b/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java index ca08c46b..715f2123 100644 --- a/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java +++ b/src/main/java/com/github/gtexpert/core/common/items/GTEMetaItem1.java @@ -23,66 +23,72 @@ public GTEMetaItem1() { @Override public void registerSubItems() { - GTE_ME_FAKE_COMPONENT = addItem(0, "gte_me_fake_component"); - MATRIX_CORE = addItem(1, "matrix_core"); + int miscStart = GTEConfigHolder.startIDs.metaItemMisc; + int compStart = GTEConfigHolder.startIDs.metaItemComponent; + int shapeStart = GTEConfigHolder.startIDs.metaItemShape; - // Artificial bone - ARTIFICIAL_BONE = addItem(2, "artificial_bone"); + GTE_ME_FAKE_COMPONENT = addItem(miscStart, "gte_me_fake_component"); + MATRIX_CORE = addItem(miscStart + 1, "matrix_core"); - // Free range: ID 3-10 + // Artificial bone + ARTIFICIAL_BONE = addItem(miscStart + 2, "artificial_bone"); - // Primitive parts: ID 11-20 + // Primitive parts 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) + GTE_ELECTRIC_MOTOR = addItem(compStart, "electric.motor." + componentsName); + GTE_ELECTRIC_PUMP = addItem(compStart + 1, "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) + GTE_CONVEYOR_MODULE = addItem(compStart + 2, "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) + GTE_ELECTRIC_PISTON = addItem(compStart + 3, "electric.piston." + componentsName); + GTE_ROBOT_ARM = addItem(compStart + 4, "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) + GTE_FLUID_REGULATOR = addItem(compStart + 5, "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); + GTE_FIELD_GENERATOR = addItem(compStart + 6, "field.generator." + componentsName); + GTE_EMITTER = addItem(compStart + 7, "emitter." + componentsName); + GTE_SENSOR = addItem(compStart + 8, "sensor." + componentsName); } else { GTELog.logger.error("Invalid componentsName setting: {}", componentsName, new Throwable()); } - // Shapes: ID 101-110 + // Shapes if (AEConfigHolder.moveSteelShape) { - GTE_SHAPE_MOLDS[0] = SHAPE_MOLD_PRINTED_SILICON = addItem(101, "shape.mold.printed_silicon") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_MOLDS[1] = SHAPE_MOLD_LOGIC_PROCESSOR = addItem(102, "shape.mold.logic_processor") + GTE_SHAPE_MOLDS[0] = SHAPE_MOLD_PRINTED_SILICON = addItem(shapeStart, "shape.mold.printed_silicon") .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_MOLDS[2] = SHAPE_MOLD_CALCULATION_PROCESSOR = addItem(103, "shape.mold.calculation_processor") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_MOLDS[3] = SHAPE_MOLD_ENGINEERING_PROCESSOR = addItem(104, "shape.mold.engineering_processor") + GTE_SHAPE_MOLDS[1] = SHAPE_MOLD_LOGIC_PROCESSOR = addItem(shapeStart + 1, "shape.mold.logic_processor") .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); + GTE_SHAPE_MOLDS[2] = SHAPE_MOLD_CALCULATION_PROCESSOR = addItem(shapeStart + 2, + "shape.mold.calculation_processor") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); + GTE_SHAPE_MOLDS[3] = SHAPE_MOLD_ENGINEERING_PROCESSOR = addItem(shapeStart + 3, + "shape.mold.engineering_processor") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_EXTRUDERS[0] = SHAPE_EXTRUDER_PRINTED_SILICON = addItem(105, "shape.extruder.printed_silicon") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_EXTRUDERS[1] = SHAPE_EXTRUDER_LOGIC_PROCESSOR = addItem(106, "shape.extruder.logic_processor") - .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_EXTRUDERS[2] = SHAPE_EXTRUDER_CALCULATION_PROCESSOR = addItem(107, + GTE_SHAPE_EXTRUDERS[0] = SHAPE_EXTRUDER_PRINTED_SILICON = addItem(shapeStart + 4, + "shape.extruder.printed_silicon") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); + GTE_SHAPE_EXTRUDERS[1] = SHAPE_EXTRUDER_LOGIC_PROCESSOR = addItem(shapeStart + 5, + "shape.extruder.logic_processor") + .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); + GTE_SHAPE_EXTRUDERS[2] = SHAPE_EXTRUDER_CALCULATION_PROCESSOR = addItem(shapeStart + 6, "shape.extruder.calculation_processor") .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); - GTE_SHAPE_EXTRUDERS[3] = SHAPE_EXTRUDER_ENGINEERING_PROCESSOR = addItem(108, + GTE_SHAPE_EXTRUDERS[3] = SHAPE_EXTRUDER_ENGINEERING_PROCESSOR = addItem(shapeStart + 7, "shape.extruder.engineering_processor") .setMaterialInfo(new ItemMaterialInfo(new MaterialStack(Materials.Steel, GTValues.M * 4))); } diff --git a/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java index da69d628..38137398 100644 --- a/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java +++ b/src/main/java/com/github/gtexpert/core/common/metatileentities/GTEMetaTileEntities.java @@ -28,26 +28,28 @@ public class GTEMetaTileEntities { public static MetaTileEntityVoidFluidPump VOID_FLUID_PUMP; public static void init() { + int startId = GTEConfigHolder.startIDs.coreMTE; + // Single Machine // Free: 11004~11999 // Multi Machine - LARGE_ROCK_BREAKER = registerMetaTileEntity(12001, + LARGE_ROCK_BREAKER = registerMetaTileEntity(startId, new MetaTileEntityLargeRockBreaker(gteId("large_rock_breaker"))); - LARGE_CRACKER = registerMetaTileEntity(12002, + LARGE_CRACKER = registerMetaTileEntity(startId + 1, new MetaTileEntityLargeCrackingUnit(gteId("large_cracking_unit"))); - VOIDOREMINER = registerMetaTileEntity(12003, + VOIDOREMINER = registerMetaTileEntity(startId + 2, new MetaTileEntityVoidOreMiner(gteId("void_ore_miner"))); - // 12004~12005 is reserved for Draconic Evolution - ADVANCED_CHEMICAL_PLANT = registerMetaTileEntity(12006, + // startId + 3 ~ startId + 4 is reserved for Draconic Evolution + ADVANCED_CHEMICAL_PLANT = registerMetaTileEntity(startId + 5, new MetaTileEntityAdvancedChemicalPlant(gteId("advanced_chemical_plant"))); - LARGE_GAS_COLLECTOR = registerMetaTileEntity(12007, + LARGE_GAS_COLLECTOR = registerMetaTileEntity(startId + 6, new MetaTileEntityLargeGasCollector(gteId(GTEConfigHolder.gteFlag.featureFlag ? "large_gas_collector" : "advanced_gas_collector"))); - LARGE_TRANSFORMER = registerMetaTileEntity(12008, + LARGE_TRANSFORMER = registerMetaTileEntity(startId + 7, new MetaTileEntityLargeTransformer(gteId("large_transformer"))); - VOID_FLUID_PUMP = registerMetaTileEntity(12009, - new MetaTileEntityVoidFluidPump((gteId("void_fluid_pump")))); + VOID_FLUID_PUMP = registerMetaTileEntity(startId + 8, + new MetaTileEntityVoidFluidPump(gteId("void_fluid_pump"))); } public static void registerGTESimpleMetaTileEntity(GTESimpleMachineMetaTileEntity[] machines, int startId, diff --git a/src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java index ecfda338..fd38073e 100644 --- a/src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/ae/AEConfigHolder.java @@ -19,4 +19,9 @@ public class AEConfigHolder { @Config.Comment({ "Integrate Printed Silicon and various Circuit creation molds.", "Default: false" }) public static boolean moveSteelShape = false; + + @Config.Comment({ "Start ID for AE2 materials", "Default: 24151" }) + @Config.RangeInt(min = 0) + @Config.RequiresMcRestart + public static int materialStartId = 24151; } diff --git a/src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java index aa14be7f..555a72be 100644 --- a/src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/DEDAConfigHolder.java @@ -24,4 +24,14 @@ public class DEDAConfigHolder { "Improves performance by indexing recipes by catalyst item type.", "Disable if you experience recipe matching issues.", "Default: true" }) public static boolean enableUpgradeRecipeCache = true; + + @Config.Comment({ "Start ID for DEDA MetaTileEntities", "Default: 12004" }) + @Config.RangeInt(min = 0) + @Config.RequiresMcRestart + public static int mteStartId = 12004; + + @Config.Comment({ "Start ID for DEDA materials", "Default: 24176" }) + @Config.RangeInt(min = 0) + @Config.RequiresMcRestart + public static int materialStartId = 24176; } diff --git a/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java index b9f74a13..db593cb5 100644 --- a/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java +++ b/src/main/java/com/github/gtexpert/core/integration/deda/metatileentities/DEDAMetaTileEntities.java @@ -3,15 +3,18 @@ import static com.github.gtexpert.core.api.util.GTEUtility.gteId; import static gregtech.common.metatileentities.MetaTileEntities.registerMetaTileEntity; +import com.github.gtexpert.core.integration.deda.DEDAConfigHolder; + public class DEDAMetaTileEntities { public static MetaTileEntityDraconiumFusion DRACONIUM_FUSION; public static MetaTileEntityDraconiumFusion AWAKENED_DRACONIUM_FUSION; public static void init() { - DRACONIUM_FUSION = registerMetaTileEntity(12004, + int startId = DEDAConfigHolder.mteStartId; + DRACONIUM_FUSION = registerMetaTileEntity(startId, new MetaTileEntityDraconiumFusion.TierDraconic(gteId("draconium_fusion"))); - AWAKENED_DRACONIUM_FUSION = registerMetaTileEntity(12005, + AWAKENED_DRACONIUM_FUSION = registerMetaTileEntity(startId + 1, new MetaTileEntityDraconiumFusion.TierAwakened(gteId("awakened_draconium_fusion"))); } } diff --git a/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java index 59186f97..ca85ff2f 100644 --- a/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/EnderIOConfigHolder.java @@ -19,4 +19,14 @@ public class EnderIOConfigHolder { @Config.Comment({ "Add Shapeless Recipe in CoreMod Machines and EIO Machines.", "This change adds a recipe for equivalent exchange of HV machines and EIO machines", "Default: false" }) public static boolean addShapelessRecipeMachines = false; + + @Config.Comment({ "Start ID for EIO MetaTileEntities", "Default: 11010" }) + @Config.RangeInt(min = 0) + @Config.RequiresMcRestart + public static int mteStartId = 11010; + + @Config.Comment({ "Start ID for EIO materials", "Default: 24101" }) + @Config.RangeInt(min = 0) + @Config.RequiresMcRestart + public static int materialStartId = 24101; } diff --git a/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java index db94e539..9d231d35 100644 --- a/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java +++ b/src/main/java/com/github/gtexpert/core/integration/eio/metatileentities/EIOMetaTileEntities.java @@ -10,6 +10,7 @@ import com.github.gtexpert.core.api.util.GTEUtility; import com.github.gtexpert.core.client.GTETextures; import com.github.gtexpert.core.common.metatileentities.GTESimpleMachineMetaTileEntity; +import com.github.gtexpert.core.integration.eio.EnderIOConfigHolder; import com.github.gtexpert.core.integration.eio.EnderIORecipeMaps; public class EIOMetaTileEntities { @@ -20,25 +21,27 @@ public class EIOMetaTileEntities { public static MetaTileEntityElectricSpawner[] ELECTRIC_SPAWNER = new MetaTileEntityElectricSpawner[V.length - 1]; public static void init() { - // VIAL_EXTRACTOR 11010~11022 - registerGTESimpleMetaTileEntity(VIAL_EXTRACTOR, 11010, "vial_extractor", + int startId = EnderIOConfigHolder.mteStartId; + + // VIAL_EXTRACTOR + registerGTESimpleMetaTileEntity(VIAL_EXTRACTOR, startId, "vial_extractor", EnderIORecipeMaps.VIAL_EXTRACTOR_RECIPES, GTETextures.VIAL_EXTRACTOR_OVERLAY, true, GTEUtility::gteId, GTUtility.hvCappedTankSizeFunction); - // SLICE_N_SPLICE 11023~11035 - - registerMetaTileEntities(SLICE_N_SPLICE, 11023, "slice_n_splice", + // SLICE_N_SPLICE + registerMetaTileEntities(SLICE_N_SPLICE, startId + 13, "slice_n_splice", (tier, voltageName) -> new MetaTileEntitySliceNSplice( gteId(String.format("%s.%s", "slice_n_splice", voltageName)), EnderIORecipeMaps.SLICE_N_SPLICE_RECIPES, GTETextures.SLICE_N_SPLICE_OVERLAY, tier, true, GTUtility.defaultTankSizeFunction)); - // SOUL_BINDER 11036~11048 - registerGTESimpleMetaTileEntity(SOUL_BINDER, 11036, "soul_binder", EnderIORecipeMaps.SOUL_BINDER_RECIPES, + // SOUL_BINDER + registerGTESimpleMetaTileEntity(SOUL_BINDER, startId + 26, "soul_binder", + EnderIORecipeMaps.SOUL_BINDER_RECIPES, GTETextures.SOUL_BINDER_OVERLAY, true, GTEUtility::gteId, GTUtility.defaultTankSizeFunction); - // ELECTRIC_SPAWNER 11049~11061 - registerMetaTileEntities(ELECTRIC_SPAWNER, 11049, "electric_spawner", + // ELECTRIC_SPAWNER + registerMetaTileEntities(ELECTRIC_SPAWNER, startId + 39, "electric_spawner", (tier, voltageName) -> new MetaTileEntityElectricSpawner( gteId(String.format("%s.%s", "electric_spawner", voltageName)), GTETextures.SPAWNER_OVERLAY, diff --git a/src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java b/src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java index fe83e35c..55559595 100644 --- a/src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java +++ b/src/main/java/com/github/gtexpert/core/integration/tc/TCConfigHolder.java @@ -11,4 +11,8 @@ category = "Thaumcraft") public class TCConfigHolder { + @Config.Comment({ "Start ID for Thaumcraft materials", "Default: 24191" }) + @Config.RangeInt(min = 0) + @Config.RequiresMcRestart + public static int materialStartId = 24191; }