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