Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
}
64 changes: 41 additions & 23 deletions src/main/java/openblocks/common/GraveAutoEquip.java
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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
// -------------------------------------------------------------------------
Expand Down
7 changes: 6 additions & 1 deletion src/main/java/openblocks/common/GraveInventorySnapshot.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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<OriginatedStack> out) {
tconstruct.armor.player.TPlayerStats stats = tconstruct.armor.player.TPlayerStats.get(player);
if (stats == null) return;
Expand Down
Loading