/// <summary>
        /// Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig.
        /// </summary>
        public override bool Interact(EntityPlayer par1EntityPlayer)
        {
            ItemStack itemstack = par1EntityPlayer.Inventory.GetCurrentItem();

            if (itemstack != null && itemstack.ItemID == Item.Shears.ShiftedIndex && !GetSheared() && !IsChild())
            {
                if (!WorldObj.IsRemote)
                {
                    SetSheared(true);
                    int i = 1 + Rand.Next(3);

                    for (int j = 0; j < i; j++)
                    {
                        EntityItem entityitem = EntityDropItem(new ItemStack(Block.Cloth.BlockID, 1, GetFleeceColor()), 1.0F);
                        entityitem.MotionY += Rand.NextFloat() * 0.05F;
                        entityitem.MotionX += (Rand.NextFloat() - Rand.NextFloat()) * 0.1F;
                        entityitem.MotionZ += (Rand.NextFloat() - Rand.NextFloat()) * 0.1F;
                    }
                }

                itemstack.DamageItem(1, par1EntityPlayer);
            }

            return(base.Interact(par1EntityPlayer));
        }