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    public boolean func_94042_c()
036    {
037        return false;
038    }
039
040    /**
041     * Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a
042     * new stack.
043     */
044    public ItemStack decrStackSize(int par1, int par2)
045    {
046        if (this.stackResult[0] != null)
047        {
048            ItemStack itemstack = this.stackResult[0];
049            this.stackResult[0] = null;
050            return itemstack;
051        }
052        else
053        {
054            return null;
055        }
056    }
057
058    /**
059     * When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem -
060     * like when you close a workbench GUI.
061     */
062    public ItemStack getStackInSlotOnClosing(int par1)
063    {
064        if (this.stackResult[0] != null)
065        {
066            ItemStack itemstack = this.stackResult[0];
067            this.stackResult[0] = null;
068            return itemstack;
069        }
070        else
071        {
072            return null;
073        }
074    }
075
076    /**
077     * Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
078     */
079    public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
080    {
081        this.stackResult[0] = par2ItemStack;
082    }
083
084    /**
085     * Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't
086     * this more of a set than a get?*
087     */
088    public int getInventoryStackLimit()
089    {
090        return 64;
091    }
092
093    /**
094     * Called when an the contents of an Inventory change, usually
095     */
096    public void onInventoryChanged() {}
097
098    /**
099     * Do not make give this method the name canInteractWith because it clashes with Container
100     */
101    public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
102    {
103        return true;
104    }
105
106    public void openChest() {}
107
108    public void closeChest() {}
109
110    public boolean func_94041_b(int par1, ItemStack par2ItemStack)
111    {
112        return true;
113    }
114}