net.minecraft.tileentity

## Class TileEntityFurnace

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

- All Implemented Interfaces:
    IInventory, ISidedInventory

      public class TileEntityFurnace
      extends TileEntity
      implements IInventory, ISidedInventory

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `currentItemBurnTime` The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for
    `int` | `furnaceBurnTime` The number of ticks that the furnace will keep burning
    `int` | `furnaceCookTime` The number of ticks that the current item has been cooking for

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

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TileEntityFurnace()`

  - ### 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.
    `int` | `getBurnTimeRemainingScaled(int par1)`
    `int` | `getCookProgressScaled(int par1)`
    `int` | `getInventoryStackLimit()` Returns the maximum stack size for a inventory slot.
    `String` | `getInvName()` Returns the name of the inventory.
    `static int` | `getItemBurnTime(ItemStack par0ItemStack)` Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't fuel
    `int` | `getSizeInventory()` Returns the number of slots in the inventory.
    `int` | `getSizeInventorySide(ForgeDirection side)` Get the size of the side 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.
    `int` | `getStartInventorySide(ForgeDirection side)` Get the start of the side inventory.
    `boolean` | `isBurning()` Returns true if the furnace is currently burning
    `static boolean` | `isItemFuel(ItemStack par0ItemStack)` Return true if item is a fuel source (getItemBurnTime() > 0).
    `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.
    `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` | `smeltItem()` Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack
    `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_70309_m, func_82115_m, func_85027_a, getBlockMetadata, getBlockType, getDescriptionPacket, getDistanceFrom, getRenderBoundingBox, getWorldObj, invalidate, isInvalid, onChunkUnload, onDataPacket, onInventoryChanged, 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.inventory.IInventory

      `onInventoryChanged`

- - ### Field Detail

    - #### furnaceBurnTime

          public int furnaceBurnTime

      The number of ticks that the furnace will keep burning

    - #### currentItemBurnTime

          public int currentItemBurnTime

      The number of ticks that a fresh copy of the currently-burning item would keep the furnace burning for

    - #### furnaceCookTime

          public int furnaceCookTime

      The number of ticks that the current item has been cooking for

  - ### Constructor Detail

    - #### TileEntityFurnace

          public TileEntityFurnace()

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

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

    - #### getCookProgressScaled

          public int getCookProgressScaled(int par1)

    - #### getBurnTimeRemainingScaled

          public int getBurnTimeRemainingScaled(int par1)

    - #### isBurning

          public boolean isBurning()

      Returns true if the furnace is currently burning

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

    - #### smeltItem

          public void smeltItem()

      Turn one item from the furnace source stack into the appropriate smelted item in the furnace result stack

    - #### getItemBurnTime

          public static int getItemBurnTime(ItemStack par0ItemStack)

      Returns the number of ticks that the supplied fuel item will keep the furnace burning, or 0 if the item isn't fuel

    - #### isItemFuel

          public static boolean isItemFuel(ItemStack par0ItemStack)

      Return true if item is a fuel source (getItemBurnTime() > 0).

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

    - #### getStartInventorySide

          public int getStartInventorySide(ForgeDirection side)

      Description copied from interface: `ISidedInventory`
      Get the start of the side inventory.
      Specified by:
        `getStartInventorySide` in interface `ISidedInventory`
      Parameters:
        `side` - The global side to get the start of range.

    - #### getSizeInventorySide

          public int getSizeInventorySide(ForgeDirection side)

      Description copied from interface: `ISidedInventory`
      Get the size of the side inventory.
      Specified by:
        `getSizeInventorySide` in interface `ISidedInventory`
      Parameters:
        `side` - The global side.