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 }