package net.minecraft.entity.ai; import java.util.Iterator; import java.util.List; import net.minecraft.entity.passive.EntityAnimal; public class EntityAIFollowParent extends EntityAIBase { /** The child that is following its parent. */ EntityAnimal childAnimal; EntityAnimal parentAnimal; double field_75347_c; private int field_75345_d; private static final String __OBFID = "CL_00001586"; public EntityAIFollowParent(EntityAnimal p_i1626_1_, double p_i1626_2_) { this.childAnimal = p_i1626_1_; this.field_75347_c = p_i1626_2_; } /** * Returns whether the EntityAIBase should begin execution. */ public boolean shouldExecute() { if (this.childAnimal.getGrowingAge() >= 0) { return false; } else { List var1 = this.childAnimal.worldObj.getEntitiesWithinAABB(this.childAnimal.getClass(), this.childAnimal.getEntityBoundingBox().expand(8.0D, 4.0D, 8.0D)); EntityAnimal var2 = null; double var3 = Double.MAX_VALUE; Iterator var5 = var1.iterator(); while (var5.hasNext()) { EntityAnimal var6 = (EntityAnimal)var5.next(); if (var6.getGrowingAge() >= 0) { double var7 = this.childAnimal.getDistanceSqToEntity(var6); if (var7 <= var3) { var3 = var7; var2 = var6; } } } if (var2 == null) { return false; } else if (var3 < 9.0D) { return false; } else { this.parentAnimal = var2; return true; } } } /** * Returns whether an in-progress EntityAIBase should continue executing */ public boolean continueExecuting() { if (this.childAnimal.getGrowingAge() >= 0) { return false; } else if (!this.parentAnimal.isEntityAlive()) { return false; } else { double var1 = this.childAnimal.getDistanceSqToEntity(this.parentAnimal); return var1 >= 9.0D && var1 <= 256.0D; } } /** * Execute a one shot task or start executing a continuous task */ public void startExecuting() { this.field_75345_d = 0; } /** * Resets the task */ public void resetTask() { this.parentAnimal = null; } /** * Updates the task */ public void updateTask() { if (--this.field_75345_d <= 0) { this.field_75345_d = 10; this.childAnimal.getNavigator().tryMoveToEntityLiving(this.parentAnimal, this.field_75347_c); } } }