package cofh.lib.gui.slot; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; /** * Slot that will only accept ItemStacks when the IInventory returns true from isItemValidForSlot. * * If an ISidedInventory, canInsertItem (from side 6 (UNKNOWN)) must also return true. */ public class SlotAcceptInsertable extends SlotAcceptValid { protected ISidedInventory sidedInv; public SlotAcceptInsertable(IInventory inventory, int index, int x, int y) { super(inventory, index, x, y); if (inventory instanceof ISidedInventory) { sidedInv = (ISidedInventory) inventory; } else { sidedInv = null; } } @Override public boolean isItemValid(ItemStack stack) { boolean valid = super.isItemValid(stack); return valid && sidedInv != null ? sidedInv.canInsertItem(slotNumber, stack, 6) : valid; } }