From 277f9b25780f016678af6efd3daa0774aa920626 Mon Sep 17 00:00:00 2001 From: trinsdar <30245301+Trinsdar@users.noreply.github.com> Date: Tue, 28 Nov 2023 15:52:01 -0500 Subject: [PATCH] movedmultiple item check into CombinedInvWrapper so it only acts upon outside insertions, not player container insertions --- .../capability/item/CombinedInvWrapper.java | 16 ++++++++++++++-- .../capability/item/TrackedItemHandler.java | 7 ------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java b/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java index b0e7145dc..ae3fb194c 100644 --- a/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java +++ b/common/src/main/java/muramasa/antimatter/capability/item/CombinedInvWrapper.java @@ -1,5 +1,8 @@ package muramasa.antimatter.capability.item; +import muramasa.antimatter.blockentity.multi.BlockEntityHatch; +import muramasa.antimatter.gui.SlotType; +import muramasa.antimatter.util.Utils; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; @@ -59,11 +62,20 @@ protected int getSlotFromIndex(int slot, int index) @Override @NotNull - public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) - { + public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) { + int index = getIndexForSlot(slot); ExtendedItemContainer handler = getHandlerFromIndex(index); slot = getSlotFromIndex(slot, index); + if (handler instanceof TrackedItemHandler trackedItemHandler){ + if (trackedItemHandler.getType() == SlotType.IT_IN && !(trackedItemHandler.getTile() instanceof BlockEntityHatch)){ + for (int i = 0; i < trackedItemHandler.getSize(); i++){ + if (i == slot) continue; + if (trackedItemHandler.getItem(i).isEmpty()) continue; + if (Utils.equals(trackedItemHandler.getItem(i), stack)) return stack; + } + } + } return handler.insertItem(slot, stack, simulate); } diff --git a/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java b/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java index 1288cfbc6..cb7e61d75 100644 --- a/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java +++ b/common/src/main/java/muramasa/antimatter/capability/item/TrackedItemHandler.java @@ -62,13 +62,6 @@ public void onContentsChanged(int slot) { @NotNull @Override public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) { - if (this.type == SlotType.IT_IN && !(tile instanceof BlockEntityHatch)){ - for (int i = 0; i < size; i++){ - if (i == slot) continue; - if (this.getItem(i).isEmpty()) continue; - if (Utils.equals(this.getItem(i), stack)) return stack; - } - } if (!input) return stack; boolean validate = !(tile instanceof IFilterableHandler filterableHandler) || filterableHandler.test(type, slot, stack);