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 }