    001    package net.minecraft.src;
    002
    003    public class InventoryCraftResult implements IInventory
    004    {
    005        /** A list of one item containing the result of the crafting formula */
    006        private ItemStack[] stackResult = new ItemStack[1];
    007
    008        /**
    009         * Returns the number of slots in the inventory.
    010         */
    011        public int getSizeInventory()
    012        {
    013            return 1;
    014        }
    015
    016        /**
    017         * Returns the stack in slot i
    018         */
    019        public ItemStack getStackInSlot(int par1)
    020        {
    021            return this.stackResult[0];
    022        }
    023
    024        /**
    025         * Returns the name of the inventory.
    026         */
    027        public String getInvName()
    028        {
    029            return "Result";
    030        }
    031
    032        /**
    033         * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a
    034         * new stack.
    035         */
    036        public ItemStack decrStackSize(int par1, int par2)
    037        {
    038            if (this.stackResult[0] != null)
    039            {
    040                ItemStack var3 = this.stackResult[0];
    041                this.stackResult[0] = null;
    042                return var3;
    043            }
    044            else
    045            {
    046                return null;
    047            }
    048        }
    049
    050        /**
    051         * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -
    052         * like when you close a workbench GUI.
    053         */
    054        public ItemStack getStackInSlotOnClosing(int par1)
    055        {
    056            if (this.stackResult[0] != null)
    057            {
    058                ItemStack var2 = this.stackResult[0];
    059                this.stackResult[0] = null;
    060                return var2;
    061            }
    062            else
    063            {
    064                return null;
    065            }
    066        }
    067
    068        /**
    069         * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
    070         */
    071        public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
    072        {
    073            this.stackResult[0] = par2ItemStack;
    074        }
    075
    076        /**
    077         * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't
    078         * this more of a set than a get?*
    079         */
    080        public int getInventoryStackLimit()
    081        {
    082            return 64;
    083        }
    084
    085        /**
    086         * Called when an the contents of an Inventory change, usually
    087         */
    088        public void onInventoryChanged() {}
    089
    090        /**
    091         * Do not make give this method the name canInteractWith because it clashes with Container
    092         */
    093        public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
    094        {
    095            return true;
    096        }
    097
    098        public void openChest() {}
    099
    100        public void closeChest() {}
    101    }