net.minecraft.tileentity

## Class TileEntityHopper

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

- All Implemented Interfaces:
    IInventory, Hopper

      public class TileEntityHopper
      extends TileEntity
      implements Hopper

- - ### Field Summary

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

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TileEntityHopper()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `static EntityItem` | `getEntityAbove(World par0World, double par1, double par3, double par5)`
    `static IInventory` | `getInventoryAboveHopper(Hopper par0Hopper)` Looks for anything, that can hold items (like chests, furnaces, etc.) one block above the given hopper.
    `static IInventory` | `getInventoryAtLocation(World par0World, double par1, double par3, double par5)` Gets an inventory at the given location to extract items into or take items from.
    `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.
    `double` | `getXPos()` Gets the world X position for this hopper entity.
    `double` | `getYPos()` Gets the world Y position for this hopper entity.
    `double` | `getZPos()` Gets the world Z position for this hopper entity.
    `static ItemStack` | `insertStack(IInventory par0IInventory, ItemStack par1ItemStack, int par2)` Inserts a stack into an inventory.
    `static boolean` | `insertStackFromEntity(IInventory par0IInventory, EntityItem par1EntityItem)`
    `boolean` | `isCoolingDown()`
    `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` | `onInventoryChanged()` Called when an the contents of an Inventory change, usually
    `void` | `openChest()`
    `void` | `readFromNBT(NBTTagCompound par1NBTTagCompound)` Reads a tile entity from NBT.
    `void` | `setInventoryName(String par1Str)`
    `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` | `setTransferCooldown(int par1)`
    `static boolean` | `suckItemsIntoHopper(Hopper par0Hopper)` Sucks one item into the given hopper from an inventory or EntityItem above it.
    `void` | `updateEntity()` Allows the entity to update its state.
    `boolean` | `updateHopper()`
    `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, invalidate, isInvalid, onChunkUnload, onDataPacket, receiveClientEvent, setWorldObj, shouldRefresh, shouldRenderInPass, updateContainingBlockInfo, validate`

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

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

    - ### Methods inherited from interface net.minecraft.tileentity.Hopper

      `getWorldObj`

- - ### Constructor Detail

    - #### TileEntityHopper

          public TileEntityHopper()

  - ### Method Detail

    - #### 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`

    - #### onInventoryChanged

          public void onInventoryChanged()

      Called when an the contents of an Inventory change, usually
      Specified by:
        `onInventoryChanged` in interface `IInventory`
      Overrides:
        `onInventoryChanged` in class `TileEntity`

    - #### 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`

    - #### setInventoryName

          public void setInventoryName(String par1Str)

    - #### 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`

    - #### 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`

    - #### 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`

    - #### updateHopper

          public boolean updateHopper()

    - #### suckItemsIntoHopper

          public static boolean suckItemsIntoHopper(Hopper par0Hopper)

      Sucks one item into the given hopper from an inventory or EntityItem above it.

    - #### insertStackFromEntity

          public static boolean insertStackFromEntity(IInventory par0IInventory,
                                      EntityItem par1EntityItem)

    - #### insertStack

          public static ItemStack insertStack(IInventory par0IInventory,
                              ItemStack par1ItemStack,
                              int par2)

      Inserts a stack into an inventory. Args: Inventory, stack, side. Returns leftover items.

    - #### getInventoryAboveHopper

          public static IInventory getInventoryAboveHopper(Hopper par0Hopper)

      Looks for anything, that can hold items (like chests, furnaces, etc.) one block above the given hopper.

    - #### getEntityAbove

          public static EntityItem getEntityAbove(World par0World,
                                  double par1,
                                  double par3,
                                  double par5)

    - #### getInventoryAtLocation

          public static IInventory getInventoryAtLocation(World par0World,
                                          double par1,
                                          double par3,
                                          double par5)

      Gets an inventory at the given location to extract items into or take items from. Can find either a tile entity or regular entity implementing IInventory.

    - #### getXPos

          public double getXPos()

      Gets the world X position for this hopper entity.
      Specified by:
        `getXPos` in interface `Hopper`

    - #### getYPos

          public double getYPos()

      Gets the world Y position for this hopper entity.
      Specified by:
        `getYPos` in interface `Hopper`

    - #### getZPos

          public double getZPos()

      Gets the world Z position for this hopper entity.
      Specified by:
        `getZPos` in interface `Hopper`

    - #### setTransferCooldown

          public void setTransferCooldown(int par1)

    - #### isCoolingDown

          public boolean isCoolingDown()