public NBTTagList writeToNBT(NBTTagList nbttaglist) {
    for (int i = 0; i < mainInventory.length; i++) {
      if (mainInventory[i] != null) {
        NBTTagCompound nbttagcompound = new NBTTagCompound();
        nbttagcompound.setByte("Slot", (byte) i);
        mainInventory[i].writeToNBT(nbttagcompound);
        nbttaglist.setTag(nbttagcompound);
      }
    }

    for (int j = 0; j < armorInventory.length; j++) {
      if (armorInventory[j] != null) {
        NBTTagCompound nbttagcompound1 = new NBTTagCompound();
        nbttagcompound1.setByte("Slot", (byte) (j + 100));
        armorInventory[j].writeToNBT(nbttagcompound1);
        nbttaglist.setTag(nbttagcompound1);
      }
    }

    return nbttaglist;
  }
  public void writeToNBT(NBTTagCompound nbttagcompound) {
    super.writeToNBT(nbttagcompound);
    nbttagcompound.setShort("BurnTime", (short) furnaceBurnTime);
    nbttagcompound.setShort("CookTime", (short) furnaceCookTime);
    NBTTagList nbttaglist = new NBTTagList();
    for (int i = 0; i < furnaceItemStacks.length; i++) {
      if (furnaceItemStacks[i] != null) {
        NBTTagCompound nbttagcompound1 = new NBTTagCompound();
        nbttagcompound1.setByte("Slot", (byte) i);
        furnaceItemStacks[i].writeToNBT(nbttagcompound1);
        nbttaglist.setTag(nbttagcompound1);
      }
    }

    nbttagcompound.setTag("Items", nbttaglist);
  }