@Override
 public void updateEntity() {
   if (!worldObj.isRemote) {
     if (tank.getFluidAmount() > 2400) {
       if (progress > 0) {
         tank.drainInternal(15, true);
         progress--;
       } else if (progress == 0) {
         ItemStack s = MachineCraftingHandler.getFurnaceRecipe(stack[0]);
         if (s != null) {
           if (stack[1] != null) {
             if (TomsModUtils.areItemStacksEqual(stack[1], s, true, true, false)
                 && stack[1].stackSize + s.stackSize <= s.getMaxStackSize()
                 && stack[0].stackSize >= 1) {
               stack[1].stackSize += s.stackSize;
               progress = -1;
               decrStackSize(0, 1);
             }
           } else {
             progress = -1;
             stack[1] = s;
             decrStackSize(0, 1);
           }
         } else {
           progress = -1;
         }
       } else {
         ItemStack s = MachineCraftingHandler.getFurnaceRecipe(stack[0]);
         if (s != null) {
           if (stack[1] != null) {
             if (TomsModUtils.areItemStacksEqual(stack[1], s, true, true, false)
                 && stack[1].stackSize + s.stackSize <= s.getMaxStackSize()
                 && stack[0].stackSize >= 1) {
               progress = MAX_PROCESS_TIME;
             }
           } else {
             progress = MAX_PROCESS_TIME;
           }
         }
         TomsModUtils.setBlockStateWithCondition(worldObj, pos, SteamFurnace.ACTIVE, progress > 0);
       }
     } else {
       TomsModUtils.setBlockStateWithCondition(worldObj, pos, SteamFurnace.ACTIVE, false);
     }
   }
 }
 @Override
 public IBlockState onBlockPlaced(
     World worldIn,
     BlockPos pos,
     EnumFacing facing,
     float hitX,
     float hitY,
     float hitZ,
     int meta,
     EntityLivingBase placer) {
   EnumFacing f = TomsModUtils.getDirectionFacing(placer, false);
   return this.getDefaultState().withProperty(FACING, f.getOpposite()).withProperty(ACTIVE, false);
 }
 @Override
 public boolean isUseableByPlayer(EntityPlayer player) {
   return TomsModUtils.isUseable(pos, player, worldObj, this);
 }