001    package net.minecraft.entity.ai;
002    
003    import net.minecraft.entity.EntityLiving;
004    import net.minecraft.entity.passive.EntityTameable;
005    
006    public class EntityAIOwnerHurtByTarget extends EntityAITarget
007    {
008        EntityTameable theDefendingTameable;
009        EntityLiving theOwnerAttacker;
010    
011        public EntityAIOwnerHurtByTarget(EntityTameable par1EntityTameable)
012        {
013            super(par1EntityTameable, 32.0F, false);
014            this.theDefendingTameable = par1EntityTameable;
015            this.setMutexBits(1);
016        }
017    
018        /**
019         * Returns whether the EntityAIBase should begin execution.
020         */
021        public boolean shouldExecute()
022        {
023            if (!this.theDefendingTameable.isTamed())
024            {
025                return false;
026            }
027            else
028            {
029                EntityLiving var1 = this.theDefendingTameable.getOwner();
030    
031                if (var1 == null)
032                {
033                    return false;
034                }
035                else
036                {
037                    this.theOwnerAttacker = var1.getAITarget();
038                    return this.isSuitableTarget(this.theOwnerAttacker, false);
039                }
040            }
041        }
042    
043        /**
044         * Execute a one shot task or start executing a continuous task
045         */
046        public void startExecuting()
047        {
048            this.taskOwner.setAttackTarget(this.theOwnerAttacker);
049            super.startExecuting();
050        }
051    }