no eta after 0 ticks or with division by 0

This commit is contained in:
ZacSharp 2020-08-28 23:37:23 +02:00
parent d29b3ee893
commit 695954bdb0

View File

@ -378,12 +378,15 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior,
} }
public Optional<Double> estimatedTicksToGoal() { public Optional<Double> estimatedTicksToGoal() {
if (goal == null) { if (goal == null || ticksElapsedSoFar == 0) {
return Optional.empty(); return Optional.empty();
} }
BetterBlockPos currentPos = ctx.playerFeet(); BetterBlockPos currentPos = ctx.playerFeet();
double current = goal.heuristic(currentPos.x, currentPos.y, currentPos.z); double current = goal.heuristic(currentPos.x, currentPos.y, currentPos.z);
double start = goal.heuristic(startPosition.x, startPosition.y, startPosition.z); double start = goal.heuristic(startPosition.x, startPosition.y, startPosition.z);
if (current == start) {//can't check above because current and start can be equal even if currentPos and startPosition are not
return Optional.empty();
}
return Optional.of(current * ticksElapsedSoFar / (start - current)); return Optional.of(current * ticksElapsedSoFar / (start - current));
} }