diff --git a/src/main/java/baritone/bot/Settings.java b/src/main/java/baritone/bot/Settings.java index 01b9a436..17289170 100644 --- a/src/main/java/baritone/bot/Settings.java +++ b/src/main/java/baritone/bot/Settings.java @@ -51,6 +51,7 @@ public class Settings { public Setting backtrackCostFavor = new Setting<>(true); // see issue #18 public Setting backtrackCostFavoringCoefficient = new Setting<>(0.9); // see issue #18 public Setting minimumImprovementRepropagation = new Setting<>(true); + public Setting cutoffAtLoadBoundary = new Setting<>(true); public Setting pathTimeoutMS = new Setting<>(4000L); diff --git a/src/main/java/baritone/bot/behavior/impl/PathingBehavior.java b/src/main/java/baritone/bot/behavior/impl/PathingBehavior.java index b1f0be90..90018f69 100644 --- a/src/main/java/baritone/bot/behavior/impl/PathingBehavior.java +++ b/src/main/java/baritone/bot/behavior/impl/PathingBehavior.java @@ -201,13 +201,17 @@ public class PathingBehavior extends Behavior { displayChatMessageRaw("Starting to search for path from " + start + " to " + goal); } - findPath(start, previous).map(IPath::cutoffAtLoadedChunks).map(PathExecutor::new).ifPresent(path -> { + Optional path = findPath(start, previous); + if (Baritone.settings().cutoffAtLoadBoundary.get()) { + path = path.map(IPath::cutoffAtLoadedChunks); + } + path.map(PathExecutor::new).ifPresent(p -> { synchronized (pathPlanLock) { if (current == null) { - current = path; + current = p; } else { if (next == null) { - next = path; + next = p; } else { throw new IllegalStateException("I have no idea what to do with this path"); }