    001package net.minecraft.entity.ai;
    002
    003import net.minecraft.entity.EntityLiving;
    004import net.minecraft.entity.passive.EntityTameable;
    005
    006public 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 entityliving = this.theDefendingTameable.getOwner();
    030
    031            if (entityliving == null)
    032            {
    033                return false;
    034            }
    035            else
    036            {
    037                this.theOwnerAttacker = entityliving.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}