only sprint ascends that are followed in the same direction
This commit is contained in:
parent
41b1106c72
commit
3f1ee100bf
@ -388,9 +388,9 @@ public class PathExecutor implements IPathExecutor, Helper {
|
|||||||
IMovement current = path.movements().get(pathPosition);
|
IMovement current = path.movements().get(pathPosition);
|
||||||
|
|
||||||
// traverse requests sprinting, so we need to do this check first
|
// traverse requests sprinting, so we need to do this check first
|
||||||
if (current instanceof MovementTraverse && pathPosition < path.length() - 2) {
|
if (current instanceof MovementTraverse && pathPosition < path.length() - 3) {
|
||||||
IMovement next = path.movements().get(pathPosition + 1);
|
IMovement next = path.movements().get(pathPosition + 1);
|
||||||
if (next instanceof MovementAscend && sprintableAscend(ctx, (MovementTraverse) current, (MovementAscend) next)) {
|
if (next instanceof MovementAscend && sprintableAscend(ctx, (MovementTraverse) current, (MovementAscend) next, path.movements().get(pathPosition + 2))) {
|
||||||
if (skipNow(ctx, current, next)) {
|
if (skipNow(ctx, current, next)) {
|
||||||
logDebug("Skipping traverse to straight ascend");
|
logDebug("Skipping traverse to straight ascend");
|
||||||
pathPosition++;
|
pathPosition++;
|
||||||
@ -448,7 +448,7 @@ public class PathExecutor implements IPathExecutor, Helper {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (prev instanceof MovementTraverse && sprintableAscend(ctx, (MovementTraverse) prev, (MovementAscend) current)) {
|
if (pathPosition < path.length() - 2 && prev instanceof MovementTraverse && sprintableAscend(ctx, (MovementTraverse) prev, (MovementAscend) current, path.movements().get(pathPosition + 1))) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -526,13 +526,16 @@ public class PathExecutor implements IPathExecutor, Helper {
|
|||||||
return flatDist > 0.8;
|
return flatDist > 0.8;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean sprintableAscend(IPlayerContext ctx, MovementTraverse current, MovementAscend next) {
|
private static boolean sprintableAscend(IPlayerContext ctx, MovementTraverse current, MovementAscend next, IMovement nextnext) {
|
||||||
if (!Baritone.settings().sprintAscends.get()) {
|
if (!Baritone.settings().sprintAscends.get()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!current.getDirection().equals(next.getDirection().down())) {
|
if (!current.getDirection().equals(next.getDirection().down())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (nextnext.getDirection().getX() != next.getDirection().getX() || nextnext.getDirection().getZ() != next.getDirection().getZ()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!MovementHelper.canWalkOn(ctx, current.getDest().down())) {
|
if (!MovementHelper.canWalkOn(ctx, current.getDest().down())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user