From 939319203611aed1dd5e699b7324d313c88e786a Mon Sep 17 00:00:00 2001 From: ZacSharp <68165024+ZacSharp@users.noreply.github.com> Date: Fri, 16 Oct 2020 01:30:04 +0200 Subject: [PATCH] Slight change to heuristic(no args) --- src/api/java/baritone/api/pathing/goals/GoalNear.java | 7 +++---- src/api/java/baritone/api/pathing/goals/GoalRunAway.java | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/api/java/baritone/api/pathing/goals/GoalNear.java b/src/api/java/baritone/api/pathing/goals/GoalNear.java index 2ae2decc2..272636ac5 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalNear.java +++ b/src/api/java/baritone/api/pathing/goals/GoalNear.java @@ -58,16 +58,15 @@ public class GoalNear implements Goal, IGoalRenderPos { public double heuristic() {// TODO less hacky solution int range = (int) Math.ceil(Math.sqrt(rangeSq)); HashSet maybeAlwaysInside = new HashSet<>(); - HashSet sometimesOutside = new HashSet<>(); + double minOutside = Double.POSITIVE_INFINITY; for (int dx = -range; dx <= range; dx++) { for (int dy = -range; dy <= range; dy++) { for (int dz = -range; dz <= range; dz++) { double h = heuristic(x + dx, y + dy, z + dz); - if (!sometimesOutside.contains(h) && isInGoal(x + dx, y + dy, z + dz)) { + if (h < minOutside && isInGoal(x + dx, y + dy, z + dz)) { maybeAlwaysInside.add(h); } else { - maybeAlwaysInside.remove(h); - sometimesOutside.add(h); + minOutside = Math.min(minOutside, h); } } } diff --git a/src/api/java/baritone/api/pathing/goals/GoalRunAway.java b/src/api/java/baritone/api/pathing/goals/GoalRunAway.java index e66cbb828..36797617e 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalRunAway.java +++ b/src/api/java/baritone/api/pathing/goals/GoalRunAway.java @@ -101,16 +101,15 @@ public class GoalRunAway implements Goal { maxZ = Math.max(minZ, p.getZ() + distance); } HashSet maybeAlwaysInside = new HashSet<>(); - HashSet sometimesOutside = new HashSet<>(); + double minOutside = Double.POSITIVE_INFINITY; for (int x = minX; x <= maxX; x++) { for (int y = minY; y <= maxY; y++) { for (int z = minZ; z <= maxZ; z++) { double h = heuristic(x, y, z); - if (!sometimesOutside.contains(h) && isInGoal(x, y, z)) { + if (h < minOutside && isInGoal(x, y, z)) { maybeAlwaysInside.add(h); } else { - maybeAlwaysInside.remove(h); - sometimesOutside.add(h); + minOutside = Math.min(minOutside, h); } } }