Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / PathfinderGoalFollowParent.java
package net.minecraft.server;

import java.util.Iterator;
import java.util.List;

public class PathfinderGoalFollowParent extends PathfinderGoal {

    private final EntityAnimal a;
    private EntityAnimal b;
    private final double c;
    private int d;

    public PathfinderGoalFollowParent(EntityAnimal entityanimal, double d0) {
        this.a = entityanimal;
        this.c = d0;
    }

    @Override
    public boolean a() {
        if (this.a.getAge() >= 0) {
            return false;
        } else {
            List<EntityAnimal> list = this.a.world.a(this.a.getClass(), this.a.getBoundingBox().grow(8.0D, 4.0D, 8.0D));
            EntityAnimal entityanimal = null;
            double d0 = Double.MAX_VALUE;
            Iterator iterator = list.iterator();

            while (iterator.hasNext()) {
                EntityAnimal entityanimal1 = (EntityAnimal) iterator.next();

                if (entityanimal1.getAge() >= 0) {
                    double d1 = this.a.h((Entity) entityanimal1);

                    if (d1 <= d0) {
                        d0 = d1;
                        entityanimal = entityanimal1;
                    }
                }
            }

            if (entityanimal == null) {
                return false;
            } else if (d0 < 9.0D) {
                return false;
            } else {
                this.b = entityanimal;
                return true;
            }
        }
    }

    @Override
    public boolean b() {
        if (this.a.getAge() >= 0) {
            return false;
        } else if (!this.b.isAlive()) {
            return false;
        } else {
            double d0 = this.a.h((Entity) this.b);

            return d0 >= 9.0D && d0 <= 256.0D;
        }
    }

    @Override
    public void c() {
        this.d = 0;
    }

    @Override
    public void d() {
        this.b = null;
    }

    @Override
    public void e() {
        if (--this.d <= 0) {
            this.d = 10;
            this.a.getNavigation().a((Entity) this.b, this.c);
        }
    }
}