Exemplo n.º 1
0
  /** Called upon block activation (right click on the block.) */
  public boolean onBlockActivated(
      World par1World,
      int par2,
      int par3,
      int par4,
      EntityPlayer par5EntityPlayer,
      int par6,
      float par7,
      float par8,
      float par9) {
    if (par1World.isRemote) {
      return true;
    } else {
      ItemStack var10 = par5EntityPlayer.inventory.getCurrentItem();

      if (var10 == null) {
        return true;
      } else {
        int var11 = par1World.getBlockMetadata(par2, par3, par4);

        if (var10.itemID == Item.bucketWater.shiftedIndex) {
          if (var11 < 3) {
            if (!par5EntityPlayer.capabilities.isCreativeMode) {
              par5EntityPlayer.inventory.setInventorySlotContents(
                  par5EntityPlayer.inventory.currentItem, new ItemStack(Item.bucketEmpty));
            }

            par1World.setBlockMetadataWithNotify(par2, par3, par4, 3);
          }

          return true;
        } else {
          if (var10.itemID == Item.glassBottle.shiftedIndex && var11 > 0) {
            ItemStack var12 = new ItemStack(Item.potion, 1, 0);

            if (!par5EntityPlayer.inventory.addItemStackToInventory(var12)) {
              par1World.spawnEntityInWorld(
                  new EntityItem(
                      par1World,
                      (double) par2 + 0.5D,
                      (double) par3 + 1.5D,
                      (double) par4 + 0.5D,
                      var12));
            } else if (par5EntityPlayer instanceof EntityPlayerMP) {
              ((EntityPlayerMP) par5EntityPlayer)
                  .sendContainerToPlayer(par5EntityPlayer.inventorySlots);
            }

            --var10.stackSize;

            if (var10.stackSize <= 0) {
              par5EntityPlayer.inventory.setInventorySlotContents(
                  par5EntityPlayer.inventory.currentItem, (ItemStack) null);
            }

            par1World.setBlockMetadataWithNotify(par2, par3, par4, var11 - 1);
          }

          return true;
        }
      }
    }
  }