001 package net.minecraft.src;
002
003 import java.util.ArrayList;
004
005 import net.minecraftforge.common.IShearable;
006
007 public class EntityMooshroom extends EntityCow implements IShearable
008 {
009 public EntityMooshroom(World par1World)
010 {
011 super(par1World);
012 this.texture = "/mob/redcow.png";
013 this.setSize(0.9F, 1.3F);
014 }
015
016 /**
017 * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig.
018 */
019 public boolean interact(EntityPlayer par1EntityPlayer)
020 {
021 ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
022
023 if (var2 != null && var2.itemID == Item.bowlEmpty.shiftedIndex && this.getGrowingAge() >= 0)
024 {
025 if (var2.stackSize == 1)
026 {
027 par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, new ItemStack(Item.bowlSoup));
028 return true;
029 }
030
031 if (par1EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bowlSoup)) && !par1EntityPlayer.capabilities.isCreativeMode)
032 {
033 par1EntityPlayer.inventory.decrStackSize(par1EntityPlayer.inventory.currentItem, 1);
034 return true;
035 }
036 }
037
038 return super.interact(par1EntityPlayer);
039 }
040
041 /**
042 * This function is used when two same-species animals in 'love mode' breed to generate the new baby animal.
043 */
044 public EntityMooshroom spawnBabyAnimal(EntityAgeable par1EntityAgeable)
045 {
046 return new EntityMooshroom(this.worldObj);
047 }
048
049 public EntityAgeable func_90011_a(EntityAgeable par1EntityAgeable)
050 {
051 return this.spawnBabyAnimal(par1EntityAgeable);
052 }
053
054 @Override
055 public boolean isShearable(ItemStack item, World world, int X, int Y, int Z)
056 {
057 return getGrowingAge() >= 0;
058 }
059
060 @Override
061 public ArrayList<ItemStack> onSheared(ItemStack item, World world, int X, int Y, int Z, int fortune)
062 {
063 setDead();
064 EntityCow entitycow = new EntityCow(worldObj);
065 entitycow.setLocationAndAngles(posX, posY, posZ, rotationYaw, rotationPitch);
066 entitycow.setEntityHealth(getHealth());
067 entitycow.renderYawOffset = renderYawOffset;
068 worldObj.spawnEntityInWorld(entitycow);
069 worldObj.spawnParticle("largeexplode", posX, posY + (double)(height / 2.0F), posZ, 0.0D, 0.0D, 0.0D);
070
071 ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
072 for (int x = 0; x < 5; x++)
073 {
074 ret.add(new ItemStack(Block.mushroomRed));
075 }
076 return ret;
077 }
078 }