@Override
 public boolean onBlockActivated(
     World world,
     BlockPos pos,
     IBlockState state,
     EntityPlayer player,
     EnumFacing side,
     float hitX,
     float hitY,
     float hitZ) {
   ItemStack currentItem = player.getCurrentEquippedItem();
   TileEntity tileEntity = world.getTileEntity(pos);
   if (tileEntity instanceof TileEntityToaster) {
     TileEntityToaster tileEntityToaster = (TileEntityToaster) tileEntity;
     if (currentItem != null && !tileEntityToaster.isToasting()) {
       RecipeData data = RecipeAPI.getToasterRecipeFromInput(currentItem);
       if (data != null) {
         if (tileEntityToaster.addSlice(new ItemStack(currentItem.getItem(), 1))) {
           world.markBlockForUpdate(pos);
           currentItem.stackSize--;
         }
       } else {
         tileEntityToaster.removeSlice();
       }
     } else {
       if (player.isSneaking()) {
         if (!tileEntityToaster.isToasting()) {
           tileEntityToaster.startToasting();
           world.updateComparatorOutputLevel(pos, this);
           if (!world.isRemote) {
             world.playSoundEffect(
                 pos.getX() + 0.5D,
                 pos.getY() + 0.5D,
                 pos.getZ() + 0.5D,
                 "cfm:toaster_down",
                 0.75F,
                 1.0F);
           }
         }
       } else if (!tileEntityToaster.isToasting()) {
         tileEntityToaster.removeSlice();
       }
     }
   }
   return true;
 }