diff --git a/dependencies.gradle b/dependencies.gradle index 24ca7ba59..4b831fe1c 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -15,7 +15,7 @@ dependencies { devOnlyNonPublishable("com.github.GTNewHorizons:Baubles-Expanded:2.2.13-GTNH:dev") { transitive = false } devOnlyNonPublishable("com.github.GTNewHorizons:AdventureBackpack2:1.4.19-GTNH:dev") { transitive = false } devOnlyNonPublishable("com.github.GTNewHorizons:Minecraft-Backpack-Mod:2.6.11-GTNH:dev") { transitive = false } - devOnlyNonPublishable("com.github.GTNewHorizons:waila:1.19.23:dev") { transitive = true } devOnlyNonPublishable("com.github.GTNewHorizons:TinkersConstruct:1.14.58-GTNH:dev") { transitive = true } + devOnlyNonPublishable("com.github.GTNewHorizons:waila:1.19.23:dev") { transitive = true } devOnlyNonPublishable("com.github.GTNewHorizons:HoloInventory:2.5.12-GTNH:dev") { transitive = true } } diff --git a/src/main/java/openblocks/common/GraveAutoEquip.java b/src/main/java/openblocks/common/GraveAutoEquip.java index 230f96702..1d96aae3c 100644 --- a/src/main/java/openblocks/common/GraveAutoEquip.java +++ b/src/main/java/openblocks/common/GraveAutoEquip.java @@ -56,28 +56,6 @@ private static boolean restoreToArmor(EntityPlayer player, ItemStack stack, int return true; } - private static boolean restoreToTConstruct(EntityPlayer player, ItemStack stack, int slot) { - try { - Class.forName("tconstruct.armor.player.TPlayerStats"); - } catch (ClassNotFoundException ignored) { - return false; - } - return TConstructRestoreHelper.restore(player, stack, slot); - } - - private static final class TConstructRestoreHelper { - - static boolean restore(EntityPlayer player, ItemStack stack, int slot) { - tconstruct.armor.player.TPlayerStats stats = tconstruct.armor.player.TPlayerStats.get(player); - if (stats == null) return false; - tconstruct.armor.player.ArmorExtended armor = stats.armor; - if (slot < 0 || slot >= armor.getSizeInventory()) return false; - if (armor.getStackInSlot(slot) != null) return false; - armor.setInventorySlotContents(slot, stack.copy()); - return true; - } - } - private static boolean restoreToBaubles(EntityPlayer player, ItemStack stack, int slot) { try { Class.forName("baubles.api.IBauble"); @@ -184,10 +162,27 @@ public static ItemStack tryEquipOrDrop(EntityPlayer player, ItemStack stack) { } // ------------------------------------------------------------------------- - // Tinkers' Construct accessories (soft dependency) — must run BEFORE vanilla armor + // Tinkers' Construct accessories (soft dependency) — skipped when tab is disabled // ------------------------------------------------------------------------- + private static boolean isTConstructTabEnabled() { + try { + Class.forName("tconstruct.util.config.PHConstruct"); + } catch (ClassNotFoundException ignored) { + return false; + } + return TConstructConfigHelper.isTabEnabled(); + } + + private static final class TConstructConfigHelper { + + static boolean isTabEnabled() { + return tconstruct.util.config.PHConstruct.enableTinkerInventoryTab; + } + } + private static boolean tryEquipTConstructAccessory(EntityPlayer player, ItemStack stack) { + if (!isTConstructTabEnabled()) return false; try { Class.forName("tconstruct.library.accessory.IAccessory"); } catch (ClassNotFoundException ignored) { @@ -215,6 +210,29 @@ static boolean equip(EntityPlayer player, ItemStack stack) { } } + private static boolean restoreToTConstruct(EntityPlayer player, ItemStack stack, int slot) { + if (!isTConstructTabEnabled()) return false; + try { + Class.forName("tconstruct.armor.player.TPlayerStats"); + } catch (ClassNotFoundException ignored) { + return false; + } + return TConstructRestoreHelper.restore(player, stack, slot); + } + + private static final class TConstructRestoreHelper { + + static boolean restore(EntityPlayer player, ItemStack stack, int slot) { + tconstruct.armor.player.TPlayerStats stats = tconstruct.armor.player.TPlayerStats.get(player); + if (stats == null) return false; + tconstruct.armor.player.ArmorExtended armor = stats.armor; + if (slot < 0 || slot >= armor.getSizeInventory()) return false; + if (armor.getStackInSlot(slot) != null) return false; + armor.setInventorySlotContents(slot, stack.copy()); + return true; + } + } + // ------------------------------------------------------------------------- // Vanilla armor // ------------------------------------------------------------------------- diff --git a/src/main/java/openblocks/common/GraveInventorySnapshot.java b/src/main/java/openblocks/common/GraveInventorySnapshot.java index 3c30de0ab..9afa231d9 100644 --- a/src/main/java/openblocks/common/GraveInventorySnapshot.java +++ b/src/main/java/openblocks/common/GraveInventorySnapshot.java @@ -54,11 +54,12 @@ private void captureArmor(EntityPlayer player) { private void captureTConstruct(EntityPlayer player) { try { - Class.forName("tconstruct.armor.player.TPlayerStats"); + Class.forName("tconstruct.util.config.PHConstruct"); } catch (ClassNotFoundException ignored) { return; } try { + if (!TConstructCaptureHelper.isTabEnabled()) return; TConstructCaptureHelper.capture(player, entries); } catch (Exception e) { Log.warn("GraveInventorySnapshot: failed to capture TConstruct slots: %s", e); @@ -67,6 +68,10 @@ private void captureTConstruct(EntityPlayer player) { private static final class TConstructCaptureHelper { + static boolean isTabEnabled() { + return tconstruct.util.config.PHConstruct.enableTinkerInventoryTab; + } + static void capture(EntityPlayer player, List out) { tconstruct.armor.player.TPlayerStats stats = tconstruct.armor.player.TPlayerStats.get(player); if (stats == null) return;