001 package net.minecraft.src;
002
003 public class EntityAIBreedSheep extends EntityAIMate
004 {
005 private final InventoryCrafting field_85150_d = new InventoryCrafting(new ContainerMateAI(this), 2, 1);
006
007 public EntityAIBreedSheep(EntityAnimal par1EntityAnimal, float par2)
008 {
009 super(par1EntityAnimal, par2);
010 this.field_85150_d.setInventorySlotContents(0, new ItemStack(Item.dyePowder, 1, 0));
011 this.field_85150_d.setInventorySlotContents(1, new ItemStack(Item.dyePowder, 1, 0));
012 }
013
014 protected void func_85147_a(EntityAnimal par1EntityAnimal, EntityAnimal par2EntityAnimal, EntityAnimal par3EntityAnimal)
015 {
016 super.func_85147_a(par1EntityAnimal, par2EntityAnimal, par3EntityAnimal);
017
018 if (par1EntityAnimal instanceof EntitySheep && par2EntityAnimal instanceof EntitySheep && par3EntityAnimal instanceof EntitySheep)
019 {
020 int var4 = this.func_85149_a(par1EntityAnimal, par2EntityAnimal);
021 ((EntitySheep)par3EntityAnimal).setFleeceColor(15 - var4);
022 }
023 }
024
025 private int func_85149_a(EntityAnimal par1EntityAnimal, EntityAnimal par2EntityAnimal)
026 {
027 int var3 = this.func_85148_a(par1EntityAnimal);
028 int var4 = this.func_85148_a(par2EntityAnimal);
029 this.field_85150_d.getStackInSlot(0).setItemDamage(var3);
030 this.field_85150_d.getStackInSlot(1).setItemDamage(var4);
031 ItemStack var5 = CraftingManager.getInstance().findMatchingRecipe(this.field_85150_d, ((EntitySheep)par1EntityAnimal).worldObj);
032 int var6;
033
034 if (var5 != null && var5.getItem().shiftedIndex == Item.dyePowder.shiftedIndex)
035 {
036 var6 = var5.getItemDamage();
037 }
038 else
039 {
040 var6 = this.theWorld.rand.nextFloat() > 0.5F ? var3 : var4;
041 }
042
043 return var6;
044 }
045
046 private int func_85148_a(EntityAnimal par1EntityAnimal)
047 {
048 return 15 - ((EntitySheep)par1EntityAnimal).getFleeceColor();
049 }
050 }