/** Called when the block is placed in the world. */
  public void onBlockPlacedBy(World var1, int var2, int var3, int var4, EntityLiving var5) {
    int var6 = MathHelper.floor_double((double) (var5.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;

    if (var6 == 0) {
      ((FF_TileEntityMetalFurnace)
              ((FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4)))
          .setDirection(2);
    }

    if (var6 == 1) {
      ((FF_TileEntityMetalFurnace)
              ((FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4)))
          .setDirection(5);
    }

    if (var6 == 2) {
      ((FF_TileEntityMetalFurnace)
              ((FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4)))
          .setDirection(3);
    }

    if (var6 == 3) {
      ((FF_TileEntityMetalFurnace)
              ((FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4)))
          .setDirection(4);
    }

    FF_TileEntityMetalFurnace var7 =
        (FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4);
    int var8 = var1.getBlockMetadata(var2, var3, var4);
    var7.setSpeed((int) (20.0F * ConfigFantasy.extractorSpeeds[var8]));
  }
  /** ejects contained items into the world, and notifies neighbours of an update, as appropriate */
  public void breakBlock(World var1, int var2, int var3, int var4, int var5, int var6) {
    if (!keepFurnaceInventory) {
      FF_TileEntityMetalFurnace var7 =
          (FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4);

      if (var7 != null) {
        for (int var8 = 0; var8 < var7.getSizeInventory(); ++var8) {
          ItemStack var9 = var7.getStackInSlot(var8);

          if (var9 != null) {
            float var10 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
            float var11 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;
            float var12 = this.furnaceRand.nextFloat() * 0.8F + 0.1F;

            while (var9.stackSize > 0) {
              int var13 = this.furnaceRand.nextInt(21) + 10;

              if (var13 > var9.stackSize) {
                var13 = var9.stackSize;
              }

              var9.stackSize -= var13;
              EntityItem var14 =
                  new EntityItem(
                      var1,
                      (double) ((float) var2 + var10),
                      (double) ((float) var3 + var11),
                      (double) ((float) var4 + var12),
                      new ItemStack(var9.itemID, var13, var9.getItemDamage()));

              if (var9.hasTagCompound()) {
                var14.getEntityItem().setTagCompound((NBTTagCompound) var9.getTagCompound().copy());
              }

              float var15 = 0.05F;
              var14.motionX = (double) ((float) this.furnaceRand.nextGaussian() * var15);
              var14.motionY = (double) ((float) this.furnaceRand.nextGaussian() * var15 + 0.2F);
              var14.motionZ = (double) ((float) this.furnaceRand.nextGaussian() * var15);
              var1.spawnEntityInWorld(var14);
            }
          }
        }
      }
    }

    super.breakBlock(var1, var2, var3, var4, var5, var6);
  }
  /** A randomly called display update to be able to add particles or other items for display */
  public void randomDisplayTick(World var1, int var2, int var3, int var4, Random var5) {
    if (Math.random() <= 0.5D) {
      var1.getBlockMetadata(var2, var3, var4);
      FF_TileEntityMetalFurnace var7 =
          (FF_TileEntityMetalFurnace)
              ((FF_TileEntityMetalFurnace) var1.getBlockTileEntity(var2, var3, var4));

      if (var7.isBurning()) {
        int var8 = var7.getDirection();
        float var9 = (float) var2 + 0.5F;
        float var10 = (float) var3 + 0.0F + var5.nextFloat() * 6.0F / 16.0F + 0.5F;
        float var11 = (float) var4 + 0.5F;
        float var12 = 0.52F;
        float var13 = var5.nextFloat() * 0.6F - 0.3F;

        if (var8 == 4) {
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorLarge",
              var1,
              (double) (var9 - var12),
              (double) var10,
              (double) (var11 + var13),
              0.0D,
              0.0D,
              0.0D);
          var10 = (float) var3 + 0.0F + var5.nextFloat() * 6.0F / 16.0F + 0.5F;
          var13 = var5.nextFloat() * 0.6F - 0.3F;
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorSmall",
              var1,
              (double) (var9 - var12),
              (double) var10,
              (double) (var11 + var13),
              0.0D,
              0.0D,
              0.0D);
        } else if (var8 == 5) {
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorLarge",
              var1,
              (double) (var9 + var12),
              (double) var10,
              (double) (var11 + var13),
              0.0D,
              0.0D,
              0.0D);
          var10 = (float) var3 + 0.0F + var5.nextFloat() * 6.0F / 16.0F + 0.5F;
          var13 = var5.nextFloat() * 0.6F - 0.3F;
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorSmall",
              var1,
              (double) (var9 + var12),
              (double) var10,
              (double) (var11 + var13),
              0.0D,
              0.0D,
              0.0D);
        } else if (var8 == 2) {
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorLarge",
              var1,
              (double) (var9 + var13),
              (double) var10,
              (double) (var11 - var12),
              0.0D,
              0.0D,
              0.0D);
          var10 = (float) var3 + 0.0F + var5.nextFloat() * 6.0F / 16.0F + 0.5F;
          var13 = var5.nextFloat() * 0.6F - 0.3F;
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorSmall",
              var1,
              (double) (var9 + var13),
              (double) var10,
              (double) (var11 - var12),
              0.0D,
              0.0D,
              0.0D);
        } else if (var8 == 3) {
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorLarge",
              var1,
              (double) (var9 + var13),
              (double) var10,
              (double) (var11 + var12),
              0.0D,
              0.0D,
              0.0D);
          var10 = (float) var3 + 0.0F + var5.nextFloat() * 6.0F / 16.0F + 0.5F;
          var13 = var5.nextFloat() * 0.6F - 0.3F;
          MetallurgyFantasy.proxy.spawnParticle(
              "abstractorSmall",
              var1,
              (double) (var9 + var13),
              (double) var10,
              (double) (var11 + var12),
              0.0D,
              0.0D,
              0.0D);
        }
      }
    }
  }