From 2810ff8faf1e84ae5ded0163a9e102a4c88c1771 Mon Sep 17 00:00:00 2001 From: FrostyFire1 Date: Wed, 3 Jun 2026 21:44:36 +0200 Subject: [PATCH 1/3] Compat with TinkersConstruct/modern-toolstation-behavior --- .../inventory/ContainerBackpack.java | 2 +- .../inventory/SlotCraftResult.java | 39 ++++++++++++++++++- .../adventurebackpack/util/TConstructTab.java | 3 +- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java index 5e3b0dc0..33ce4113 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/ContainerBackpack.java @@ -36,7 +36,7 @@ public class ContainerBackpack extends ContainerAdventure { private static final int CRAFT_RESULT = BUCKET_RIGHT + 2 + (MATRIX_DIMENSION * MATRIX_DIMENSION); private static final int[] CRAFT_MATRIX_EMULATION = findCraftMatrixEmulationIDs(); - private final InventoryCraftingBackpack craftMatrix = new InventoryCraftingBackpack( + protected final InventoryCraftingBackpack craftMatrix = new InventoryCraftingBackpack( this, MATRIX_DIMENSION, MATRIX_DIMENSION); diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java b/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java index 47e672d3..d379e35c 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java @@ -4,6 +4,9 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import tconstruct.library.modifier.IModifyable; +import tconstruct.library.tools.AbilityHelper; public class SlotCraftResult extends SlotCrafting { @@ -18,7 +21,41 @@ public SlotCraftResult(ContainerBackpack container, EntityPlayer player, IInvent @Override public void onPickupFromSlot(EntityPlayer player, ItemStack stack) { eventHandler.syncCraftMatrixWithInventory(true); // pre craft sync - super.onPickupFromSlot(player, stack); + ItemStack tool = eventHandler.craftMatrix.getStackInSlot(4); + if (stack.getItem() instanceof IModifyable && tool != null + && tool.getItem() instanceof IModifyable) { + IModifyable modifyable = (IModifyable) stack.getItem(); + NBTTagCompound tags = stack.getTagCompound().getCompoundTag(modifyable.getBaseTagName()); + int[] toRemoveArray = tags.hasKey("ToRemove") ? tags.getIntArray("ToRemove") : null; + int toRemoveIndex = 0; + IInventory inventory = eventHandler.craftMatrix; + + for (int i = 0; i <= inventory.getSizeInventory(); i++) { + if (i == 4) continue; + ItemStack item = inventory.getStackInSlot(i); + if (item == null) { + continue; + } + if (toRemoveArray == null) { + inventory.decrStackSize(i, 1); + } else { + inventory.decrStackSize(i, toRemoveArray[toRemoveIndex]); + toRemoveIndex++; + } + } + tags.removeTag("ToRemove"); + + inventory.setInventorySlotContents(4, null); + player.worldObj.playSoundEffect( + player.posX, + player.posY, + player.posZ, + "tinker:little_saw", + 1.0F, + (AbilityHelper.random.nextFloat() - AbilityHelper.random.nextFloat()) * 0.2F + 1.0F); + } else { + super.onPickupFromSlot(player, stack); + } eventHandler.syncCraftMatrixWithInventory(false); // post craft sync } } diff --git a/src/main/java/com/darkona/adventurebackpack/util/TConstructTab.java b/src/main/java/com/darkona/adventurebackpack/util/TConstructTab.java index f2feed68..2066d99d 100644 --- a/src/main/java/com/darkona/adventurebackpack/util/TConstructTab.java +++ b/src/main/java/com/darkona/adventurebackpack/util/TConstructTab.java @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.util.ResourceLocation; @@ -25,7 +26,7 @@ public static void updateTabValues(int cornerX, int cornerY, Class selectedBu } public static void addTabsToList(List buttonList) { - TabRegistry.addTabsToList(buttonList); + TabRegistry.addTabsToList((List) buttonList); } public static class Tab extends AbstractTab { From 08cf69413296ffba0de2eb2b179caf4e7e278313 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 21:58:50 +0200 Subject: [PATCH 2/3] Spotless apply for branch frostyfire1/feature/tinkers-copmat for #51 (#52) Co-authored-by: GitHub GTNH Actions <> --- .../darkona/adventurebackpack/inventory/SlotCraftResult.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java b/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java index d379e35c..fa21ef89 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/SlotCraftResult.java @@ -5,6 +5,7 @@ import net.minecraft.inventory.SlotCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; + import tconstruct.library.modifier.IModifyable; import tconstruct.library.tools.AbilityHelper; @@ -22,8 +23,7 @@ public SlotCraftResult(ContainerBackpack container, EntityPlayer player, IInvent public void onPickupFromSlot(EntityPlayer player, ItemStack stack) { eventHandler.syncCraftMatrixWithInventory(true); // pre craft sync ItemStack tool = eventHandler.craftMatrix.getStackInSlot(4); - if (stack.getItem() instanceof IModifyable && tool != null - && tool.getItem() instanceof IModifyable) { + if (stack.getItem() instanceof IModifyable && tool != null && tool.getItem() instanceof IModifyable) { IModifyable modifyable = (IModifyable) stack.getItem(); NBTTagCompound tags = stack.getTagCompound().getCompoundTag(modifyable.getBaseTagName()); int[] toRemoveArray = tags.hasKey("ToRemove") ? tags.getIntArray("ToRemove") : null; From 1e97e96a19d7107981dc39130966b431b1ce7f1d Mon Sep 17 00:00:00 2001 From: FrostyFire1 Date: Thu, 4 Jun 2026 14:50:13 +0200 Subject: [PATCH 3/3] bump dependency --- dependencies.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.gradle b/dependencies.gradle index 3492c71b..a5facaa1 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -4,5 +4,5 @@ dependencies { api("com.github.GTNewHorizons:waila:1.19.22:dev") api("com.github.GTNewHorizons:NotEnoughItems:2.8.72-GTNH:dev") - devOnlyNonPublishable("com.github.GTNewHorizons:TinkersConstruct:1.14.32-GTNH:dev") + devOnlyNonPublishable("com.github.GTNewHorizons:TinkersConstruct:1.14.86-GTNH:dev") }