    001    package net.minecraft.src;
    002
    003    public class EntityAIDefendVillage extends EntityAITarget
    004    {
    005        EntityIronGolem irongolem;
    006
    007        /**
    008         * The aggressor of the iron golem's village which is now the golem's attack target.
    009         */
    010        EntityLiving villageAgressorTarget;
    011
    012        public EntityAIDefendVillage(EntityIronGolem par1EntityIronGolem)
    013        {
    014            super(par1EntityIronGolem, 16.0F, false, true);
    015            this.irongolem = par1EntityIronGolem;
    016            this.setMutexBits(1);
    017        }
    018
    019        /**
    020         * Returns whether the EntityAIBase should begin execution.
    021         */
    022        public boolean shouldExecute()
    023        {
    024            Village var1 = this.irongolem.getVillage();
    025
    026            if (var1 == null)
    027            {
    028                return false;
    029            }
    030            else
    031            {
    032                this.villageAgressorTarget = var1.findNearestVillageAggressor(this.irongolem);
    033
    034                if (!this.isSuitableTarget(this.villageAgressorTarget, false))
    035                {
    036                    if (this.taskOwner.getRNG().nextInt(20) == 0)
    037                    {
    038                        this.villageAgressorTarget = var1.func_82685_c(this.irongolem);
    039                        return this.isSuitableTarget(this.villageAgressorTarget, false);
    040                    }
    041                    else
    042                    {
    043                        return false;
    044                    }
    045                }
    046                else
    047                {
    048                    return true;
    049                }
    050            }
    051        }
    052
    053        /**
    054         * Execute a one shot task or start executing a continuous task
    055         */
    056        public void startExecuting()
    057        {
    058            this.irongolem.setAttackTarget(this.villageAgressorTarget);
    059            super.startExecuting();
    060        }
    061    }