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    }