    001    package net.minecraft.entity.ai;
    002
    003    import net.minecraft.entity.EntityLiving;
    004    import net.minecraft.entity.passive.EntityTameable;
    005
    006    public class EntityAIOwnerHurtTarget extends EntityAITarget
    007    {
    008        EntityTameable theEntityTameable;
    009        EntityLiving theTarget;
    010
    011        public EntityAIOwnerHurtTarget(EntityTameable par1EntityTameable)
    012        {
    013            super(par1EntityTameable, 32.0F, false);
    014            this.theEntityTameable = 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.theEntityTameable.isTamed())
    024            {
    025                return false;
    026            }
    027            else
    028            {
    029                EntityLiving var1 = this.theEntityTameable.getOwner();
    030
    031                if (var1 == null)
    032                {
    033                    return false;
    034                }
    035                else
    036                {
    037                    this.theTarget = var1.getLastAttackingEntity();
    038                    return this.isSuitableTarget(this.theTarget, 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.theTarget);
    049            super.startExecuting();
    050        }
    051    }