package mods.eln.entity;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.ai.RandomPositionGenerator;
import net.minecraft.util.Vec3;
public class ConfigurableAiWander extends EntityAIBase {
private EntityCreature entity;
private double xPosition;
private double yPosition;
private double zPosition;
private double speed;
private int randLimit;
public ConfigurableAiWander(EntityCreature par1EntityCreature, double speed, int randLimit) {
this.entity = par1EntityCreature;
this.speed = speed;
this.setMutexBits(1);
this.randLimit = randLimit;
}
/**
* Returns whether the EntityAIBase should begin execution.
*/
public boolean shouldExecute() {
if (this.entity.getAge() >= 100) {
return false;
} else if (this.entity.getRNG().nextInt(randLimit) != 0) {
return false;
} else {
Vec3 vec3 = RandomPositionGenerator.findRandomTarget(this.entity, 10, 7);
if (vec3 == null) {
return false;
} else {
this.xPosition = vec3.xCoord;
this.yPosition = vec3.yCoord;
this.zPosition = vec3.zCoord;
return true;
}
}
}
/**
* Returns whether an in-progress EntityAIBase should continue executing
*/
public boolean continueExecuting() {
return !this.entity.getNavigator().noPath();
}
/**
* Execute a one shot task or start executing a continuous task
*/
public void startExecuting() {
this.entity.getNavigator().tryMoveToXYZ(this.xPosition, this.yPosition, this.zPosition, this.speed);
}
}