net.minecraft.tileentity

## Class TileEntityChest

- java.lang.Object
- - net.minecraft.tileentity.TileEntity
  - - net.minecraft.tileentity.TileEntityChest

- All Implemented Interfaces:
    IInventory

      public class TileEntityChest
      extends TileEntity
      implements IInventory

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `boolean` | `adjacentChestChecked` Determines if the check for adjacent chests has taken place.
    `TileEntityChest` | `adjacentChestXNeg` Contains the chest tile located adjacent to this one (if any)
    `TileEntityChest` | `adjacentChestXPos` Contains the chest tile located adjacent to this one (if any)
    `TileEntityChest` | `adjacentChestZNeg` Contains the chest tile located adjacent to this one (if any)
    `TileEntityChest` | `adjacentChestZPosition` Contains the chest tile located adjacent to this one (if any)
    `float` | `lidAngle` The current angle of the lid (between 0 and 1)
    `int` | `numUsingPlayers` The number of players currently using this chest
    `float` | `prevLidAngle` The angle of the lid last tick

    - ### Fields inherited from class net.minecraft.tileentity.TileEntity

      `blockMetadata, blockType, INFINITE_EXTENT_AABB, worldObj, xCoord, yCoord, zCoord`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TileEntityChest()`
    `TileEntityChest(int par1)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `checkForAdjacentChests()` Performs the check for adjacent chests to determine if this chest is double or not.
    `void` | `closeChest()`
    `ItemStack` | `decrStackSize(int par1, int par2)` Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a new stack.
    `int` | `getChestType()`
    `int` | `getInventoryStackLimit()` Returns the maximum stack size for a inventory slot.
    `String` | `getInvName()` Returns the name of the inventory.
    `int` | `getSizeInventory()` Returns the number of slots in the inventory.
    `ItemStack` | `getStackInSlot(int par1)` Returns the stack in slot i
    `ItemStack` | `getStackInSlotOnClosing(int par1)` When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem - like when you close a workbench GUI.
    `void` | `invalidate()` invalidates a tile entity
    `boolean` | `isInvNameLocalized()` If this returns false, the inventory name will be used as an unlocalized name, and translated into the player's language.
    `boolean` | `isItemValidForSlot(int par1, ItemStack par2ItemStack)` Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot.
    `boolean` | `isUseableByPlayer(EntityPlayer par1EntityPlayer)` Do not make give this method the name canInteractWith because it clashes with Container
    `void` | `openChest()`
    `void` | `readFromNBT(NBTTagCompound par1NBTTagCompound)` Reads a tile entity from NBT.
    `boolean` | `receiveClientEvent(int par1, int par2)` Called when a client event is received with the event number and argument, see World.sendClientEvent
    `void` | `setChestGuiName(String par1Str)` Sets the custom display name to use when opening a GUI for this specific TileEntityChest.
    `void` | `setInventorySlotContents(int par1, ItemStack par2ItemStack)` Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
    `void` | `updateContainingBlockInfo()` Causes the TileEntity to reset all it's cached values for it's container block, blockID, metaData and in the case of chests, the adjcacent chest check
    `void` | `updateEntity()` Allows the entity to update its state.
    `void` | `writeToNBT(NBTTagCompound par1NBTTagCompound)` Writes a tile entity to NBT.

    - ### Methods inherited from class net.minecraft.tileentity.TileEntity

      `addMapping, canUpdate, createAndLoadEntity, func_85027_a, getBlockMetadata, getBlockType, getDescriptionPacket, getDistanceFrom, getMaxRenderDistanceSquared, getRenderBoundingBox, getWorldObj, hasWorldObj, isInvalid, onChunkUnload, onDataPacket, onInventoryChanged, setWorldObj, shouldRefresh, shouldRenderInPass, validate`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface net.minecraft.inventory.IInventory

      `onInventoryChanged`

- - ### Field Detail

    - #### adjacentChestChecked

          public boolean adjacentChestChecked

      Determines if the check for adjacent chests has taken place.

    - #### adjacentChestZNeg

          public TileEntityChest adjacentChestZNeg

      Contains the chest tile located adjacent to this one (if any)

    - #### adjacentChestXPos

          public TileEntityChest adjacentChestXPos

      Contains the chest tile located adjacent to this one (if any)

    - #### adjacentChestXNeg

          public TileEntityChest adjacentChestXNeg

      Contains the chest tile located adjacent to this one (if any)

    - #### adjacentChestZPosition

          public TileEntityChest adjacentChestZPosition

      Contains the chest tile located adjacent to this one (if any)

    - #### lidAngle

          public float lidAngle

      The current angle of the lid (between 0 and 1)

    - #### prevLidAngle

          public float prevLidAngle

      The angle of the lid last tick

    - #### numUsingPlayers

          public int numUsingPlayers

      The number of players currently using this chest

  - ### Constructor Detail

    - #### TileEntityChest

          public TileEntityChest()

    - #### TileEntityChest

          public TileEntityChest(int par1)

  - ### Method Detail

    - #### getSizeInventory

          public int getSizeInventory()

      Returns the number of slots in the inventory.
      Specified by:
        `getSizeInventory` in interface `IInventory`

    - #### getStackInSlot

          public ItemStack getStackInSlot(int par1)

      Returns the stack in slot i
      Specified by:
        `getStackInSlot` in interface `IInventory`

    - #### decrStackSize

          public ItemStack decrStackSize(int par1,
                                int par2)

      Removes from an inventory slot (first arg) up to a specified number (second arg) of items and returns them in a new stack.
      Specified by:
        `decrStackSize` in interface `IInventory`

    - #### getStackInSlotOnClosing

          public ItemStack getStackInSlotOnClosing(int par1)

      When some containers are closed they call this on each slot, then drop whatever it returns as an EntityItem - like when you close a workbench GUI.
      Specified by:
        `getStackInSlotOnClosing` in interface `IInventory`

    - #### setInventorySlotContents

          public void setInventorySlotContents(int par1,
                                      ItemStack par2ItemStack)

      Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections).
      Specified by:
        `setInventorySlotContents` in interface `IInventory`

    - #### getInvName

          public String getInvName()

      Returns the name of the inventory.
      Specified by:
        `getInvName` in interface `IInventory`

    - #### isInvNameLocalized

          public boolean isInvNameLocalized()

      If this returns false, the inventory name will be used as an unlocalized name, and translated into the player's language. Otherwise it will be used directly.
      Specified by:
        `isInvNameLocalized` in interface `IInventory`

    - #### setChestGuiName

          public void setChestGuiName(String par1Str)

      Sets the custom display name to use when opening a GUI for this specific TileEntityChest.

    - #### readFromNBT

          public void readFromNBT(NBTTagCompound par1NBTTagCompound)

      Reads a tile entity from NBT.
      Overrides:
        `readFromNBT` in class `TileEntity`

    - #### writeToNBT

          public void writeToNBT(NBTTagCompound par1NBTTagCompound)

      Writes a tile entity to NBT.
      Overrides:
        `writeToNBT` in class `TileEntity`

    - #### getInventoryStackLimit

          public int getInventoryStackLimit()

      Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. *Isn't this more of a set than a get?*
      Specified by:
        `getInventoryStackLimit` in interface `IInventory`

    - #### isUseableByPlayer

          public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)

      Do not make give this method the name canInteractWith because it clashes with Container
      Specified by:
        `isUseableByPlayer` in interface `IInventory`

    - #### updateContainingBlockInfo

          public void updateContainingBlockInfo()

      Causes the TileEntity to reset all it's cached values for it's container block, blockID, metaData and in the case of chests, the adjcacent chest check
      Overrides:
        `updateContainingBlockInfo` in class `TileEntity`

    - #### checkForAdjacentChests

          public void checkForAdjacentChests()

      Performs the check for adjacent chests to determine if this chest is double or not.

    - #### updateEntity

          public void updateEntity()

      Allows the entity to update its state. Overridden in most subclasses, e.g. the mob spawner uses this to count ticks and creates a new spawn inside its implementation.
      Overrides:
        `updateEntity` in class `TileEntity`

    - #### receiveClientEvent

          public boolean receiveClientEvent(int par1,
                                   int par2)

      Called when a client event is received with the event number and argument, see World.sendClientEvent
      Overrides:
        `receiveClientEvent` in class `TileEntity`

    - #### openChest

          public void openChest()

      Specified by:
        `openChest` in interface `IInventory`

    - #### closeChest

          public void closeChest()

      Specified by:
        `closeChest` in interface `IInventory`

    - #### isItemValidForSlot

          public boolean isItemValidForSlot(int par1,
                                   ItemStack par2ItemStack)

      Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot.
      Specified by:
        `isItemValidForSlot` in interface `IInventory`

    - #### invalidate

          public void invalidate()

      invalidates a tile entity
      Overrides:
        `invalidate` in class `TileEntity`

    - #### getChestType

          public int getChestType()