diff --git a/src/main/java/refinedstorage/container/ContainerInterface.java b/src/main/java/refinedstorage/container/ContainerInterface.java index b2e03e953..1a2403940 100644 --- a/src/main/java/refinedstorage/container/ContainerInterface.java +++ b/src/main/java/refinedstorage/container/ContainerInterface.java @@ -2,6 +2,7 @@ package refinedstorage.container; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; import refinedstorage.container.slot.SlotOutput; import refinedstorage.container.slot.SlotSpecimen; import refinedstorage.tile.TileInterface; @@ -29,4 +30,40 @@ public class ContainerInterface extends ContainerBase addPlayerInventory(8, 136); } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) + { + ItemStack stack = null; + + Slot slot = getSlot(index); + + if (slot != null && slot.getHasStack()) + { + stack = slot.getStack().copy(); + + if (index < 9) + { + if (!mergeItemStack(stack, 9, inventorySlots.size(), true)) + { + return null; + } + } + else if (!mergeItemStack(stack, 0, 9, false)) + { + return null; + } + + if (stack.stackSize == 0) + { + slot.putStack(null); + } + else + { + slot.onSlotChanged(); + } + } + + return stack; + } }