From dc7421224c750e0295be59c74c734247ddfc91af Mon Sep 17 00:00:00 2001 From: thedarkcolour <30441001+thedarkcolour@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:11:08 -0700 Subject: [PATCH] Add integration for Immersive Engineering ores --- .../thedarkcolour/exdeorum/compat/ModIds.java | 1 + .../exdeorum/compat/PreferredOres.java | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/thedarkcolour/exdeorum/compat/ModIds.java b/src/main/java/thedarkcolour/exdeorum/compat/ModIds.java index 694b3b4b..5f730328 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/ModIds.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/ModIds.java @@ -49,4 +49,5 @@ public class ModIds { public static final String REI_PC = "rei_plugin_compatibilities"; public static final String CYCLIC = "cyclic"; public static final String SKYBLOCK_BUILDER = "skyblockbuilder"; + public static final String IMMERSIVE_ENGINEERING = "immersiveengineering"; } diff --git a/src/main/java/thedarkcolour/exdeorum/compat/PreferredOres.java b/src/main/java/thedarkcolour/exdeorum/compat/PreferredOres.java index 1040ab8e..831fb97b 100644 --- a/src/main/java/thedarkcolour/exdeorum/compat/PreferredOres.java +++ b/src/main/java/thedarkcolour/exdeorum/compat/PreferredOres.java @@ -42,7 +42,6 @@ public class PreferredOres { private static final Map, Item> PREFERRED_ORE_ITEMS = new Object2ObjectOpenHashMap<>(11, Hash.DEFAULT_LOAD_FACTOR); static { - // todo these should update whenever data is reloaded putPreferredOre(EItemTags.ORES_ALUMINUM, EConfig.COMMON.preferredAluminumOre, getDefaultAluminumOre()); putPreferredOre(EItemTags.ORES_COBALT, EConfig.COMMON.preferredCobaltOre, getDefaultCobaltOre()); putPreferredOre(EItemTags.ORES_SILVER, EConfig.COMMON.preferredSilverOre, getDefaultSilverOre()); @@ -105,7 +104,7 @@ public class PreferredOres { } public static Item getDefaultAluminumOre() { - return defaultItem("aluminum_ore", ModIds.ALL_THE_ORES); + return defaultItem("aluminum_ore", ModIds.ALL_THE_ORES, ModIds.IMMERSIVE_ENGINEERING); } public static Item getDefaultCobaltOre() { @@ -113,11 +112,11 @@ public class PreferredOres { } public static Item getDefaultSilverOre() { - return defaultItem("silver_ore", ModIds.ALL_THE_ORES, ModIds.OCCULTISM, ModIds.RAILCRAFT, ModIds.FACTORIUM, ModIds.NUCLEARCRAFT_NEOTERIC); + return defaultItem("silver_ore", ModIds.ALL_THE_ORES, ModIds.OCCULTISM, ModIds.RAILCRAFT, ModIds.FACTORIUM, ModIds.NUCLEARCRAFT_NEOTERIC, ModIds.IMMERSIVE_ENGINEERING); } public static Item getDefaultLeadOre() { - return defaultItem("lead_ore", ModIds.ALL_THE_ORES, ModIds.GREG, ModIds.MEKANISM, ModIds.RAILCRAFT, ModIds.FACTORIUM, ModIds.NUCLEARCRAFT_NEOTERIC); + return defaultItem("lead_ore", ModIds.ALL_THE_ORES, ModIds.GREG, ModIds.MEKANISM, ModIds.RAILCRAFT, ModIds.FACTORIUM, ModIds.NUCLEARCRAFT_NEOTERIC, ModIds.IMMERSIVE_ENGINEERING); } public static Item getDefaultPlatinumOre() { @@ -125,11 +124,17 @@ public class PreferredOres { } public static Item getDefaultNickelOre() { - return defaultItem("nickel_ore", ModIds.ALL_THE_ORES, ModIds.GREG, ModIds.THERMAL, ModIds.RAILCRAFT, ModIds.FACTORIUM); + var item = defaultItem("nickel_ore", ModIds.ALL_THE_ORES, ModIds.GREG, ModIds.THERMAL, ModIds.RAILCRAFT, ModIds.FACTORIUM, ModIds.IMMERSIVE_ENGINEERING); + + if (item == Items.AIR && ModList.get().isLoaded(ModIds.IMMERSIVE_ENGINEERING)) { + item = defaultItem("ore_nickel", ModIds.IMMERSIVE_ENGINEERING); + } + + return item; } public static Item getDefaultUraniumOre() { - var item = defaultItem("uranium_ore", ModIds.ALL_THE_ORES, ModIds.MEKANISM, ModIds.BIGGER_REACTORS, ModIds.NUCLEARCRAFT_NEOTERIC); + var item = defaultItem("uranium_ore", ModIds.ALL_THE_ORES, ModIds.MEKANISM, ModIds.BIGGER_REACTORS, ModIds.NUCLEARCRAFT_NEOTERIC, ModIds.IMMERSIVE_ENGINEERING); if (item == Items.AIR && ModList.get().isLoaded(ModIds.EXTREME_REACTORS)) { item = defaultItem("yellorite_ore", ModIds.EXTREME_REACTORS); @@ -170,12 +175,15 @@ public class PreferredOres { return defaultItem("boron_ore", ModIds.NUCLEARCRAFT_NEOTERIC); } + @SuppressWarnings("DataFlowIssue") private static Item defaultItem(String path, String... modIds) { var modId = getFirstAvailableModId(modIds); if (modId != null) { if (modId.equals(ModIds.FACTORIUM)) { return ForgeRegistries.ITEMS.getValue(new ResourceLocation(modId, "mat_" + path)); + } else if (modId.equals(ModIds.IMMERSIVE_ENGINEERING)) { + return ForgeRegistries.ITEMS.getValue(new ResourceLocation(modId, "ore_" + path.substring(0, path.length() - 4))); } else { return ForgeRegistries.ITEMS.getValue(new ResourceLocation(modId, path)); }