    001    package net.minecraft.item;
    002
    003    import cpw.mods.fml.relauncher.Side;
    004    import cpw.mods.fml.relauncher.SideOnly;
    005    import net.minecraft.block.Block;
    006    import net.minecraft.block.material.Material;
    007    import net.minecraft.entity.player.EntityPlayer;
    008    import net.minecraft.util.EnumMovingObjectType;
    009    import net.minecraft.util.MovingObjectPosition;
    010    import net.minecraft.world.World;
    011
    012    public class ItemLilyPad extends ItemColored
    013    {
    014        public ItemLilyPad(int par1)
    015        {
    016            super(par1, false);
    017        }
    018
    019        /**
    020         * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
    021         */
    022        public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
    023        {
    024            MovingObjectPosition var4 = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, true);
    025
    026            if (var4 == null)
    027            {
    028                return par1ItemStack;
    029            }
    030            else
    031            {
    032                if (var4.typeOfHit == EnumMovingObjectType.TILE)
    033                {
    034                    int var5 = var4.blockX;
    035                    int var6 = var4.blockY;
    036                    int var7 = var4.blockZ;
    037
    038                    if (!par2World.canMineBlock(par3EntityPlayer, var5, var6, var7))
    039                    {
    040                        return par1ItemStack;
    041                    }
    042
    043                    if (!par3EntityPlayer.canPlayerEdit(var5, var6, var7, var4.sideHit, par1ItemStack))
    044                    {
    045                        return par1ItemStack;
    046                    }
    047
    048                    if (par2World.getBlockMaterial(var5, var6, var7) == Material.water && par2World.getBlockMetadata(var5, var6, var7) == 0 && par2World.isAirBlock(var5, var6 + 1, var7))
    049                    {
    050                        par2World.setBlockWithNotify(var5, var6 + 1, var7, Block.waterlily.blockID);
    051
    052                        if (!par3EntityPlayer.capabilities.isCreativeMode)
    053                        {
    054                            --par1ItemStack.stackSize;
    055                        }
    056                    }
    057                }
    058
    059                return par1ItemStack;
    060            }
    061        }
    062
    063        @SideOnly(Side.CLIENT)
    064        public int getColorFromItemStack(ItemStack par1ItemStack, int par2)
    065        {
    066            return Block.waterlily.getRenderColor(par1ItemStack.getItemDamage());
    067        }
    068    }