package net.minecraft.entity.ai; import net.minecraft.entity.EntityCreature; import net.minecraft.util.Vec3; public class EntityAIWander extends EntityAIBase { private EntityCreature entity; private double xPosition; private double yPosition; private double zPosition; private double speed; private static final String __OBFID = "CL_00001608"; public EntityAIWander(EntityCreature p_i1648_1_, double p_i1648_2_) { this.entity = p_i1648_1_; this.speed = p_i1648_2_; this.setMutexBits(1); } /** * Returns whether the EntityAIBase should begin execution. */ public boolean shouldExecute() { if (this.entity.getAge() >= 100) { return false; } else if (this.entity.getRNG().nextInt(120) != 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); } }