001 package net.minecraft.inventory;
002
003 import net.minecraft.entity.player.EntityPlayer;
004 import net.minecraft.item.ItemStack;
005
006 public 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 }