    001    package net.minecraft.inventory;
    002
    003    import net.minecraft.entity.player.EntityPlayer;
    004    import net.minecraft.item.ItemStack;
    005
    006    public interface IInventory
    007    {
    008        /**
    009         * Returns the number of slots in the inventory.
    010         */
    011        int getSizeInventory();
    012
    013        /**
    014         * Returns the stack in slot i
    015         */
    016        ItemStack getStackInSlot(int var1);
    017
    018        /**
    019         * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a
    020         * new stack.
    021         */
    022        ItemStack decrStackSize(int var1, int var2);
    023
    024        /**
    025         * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -
    026         * like when you close a workbench GUI.
    027         */
    028        ItemStack getStackInSlotOnClosing(int var1);
    029
    030        /**
    031         * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
    032         */
    033        void setInventorySlotContents(int var1, ItemStack var2);
    034
    035        /**
    036         * Returns the name of the inventory.
    037         */
    038        String getInvName();
    039
    040        /**
    041         * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't
    042         * this more of a set than a get?*
    043         */
    044        int getInventoryStackLimit();
    045
    046        /**
    047         * Called when an the contents of an Inventory change, usually
    048         */
    049        void onInventoryChanged();
    050
    051        /**
    052         * Do not make give this method the name canInteractWith because it clashes with Container
    053         */
    054        boolean isUseableByPlayer(EntityPlayer var1);
    055
    056        void openChest();
    057
    058        void closeChest();
    059    }