diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 2a74a885..77c2c71d 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -2096,6 +2096,7 @@ Potential fix for macro pathing continuous loop Unit test for generating a world TownLayout test Macro pathing test +Actually fix pathing spinlock diff --git a/src/main/java/electrosphere/server/ai/nodes/plan/MacroPathfindingNode.java b/src/main/java/electrosphere/server/ai/nodes/plan/MacroPathfindingNode.java index 978fa250..18a57f3c 100644 --- a/src/main/java/electrosphere/server/ai/nodes/plan/MacroPathfindingNode.java +++ b/src/main/java/electrosphere/server/ai/nodes/plan/MacroPathfindingNode.java @@ -84,7 +84,8 @@ public class MacroPathfindingNode implements AITreeNode { throw new Error("Unsupported target type " + targetRaw); } Realm realm = Globals.serverState.realmManager.getEntityRealm(entity); - MacroPathNode targetMacro = realm.getMacroData().getPathCache().getPathingNode(((MacroAreaObject)targetRaw).getPos()); + Vector3d targetPos = ((MacroAreaObject)targetRaw).getPos(); + MacroPathNode targetMacro = realm.getMacroData().getPathCache().getPathingNode(targetPos); // @@ -94,6 +95,7 @@ public class MacroPathfindingNode implements AITreeNode { // //Queue the pathfinding operation PathingProgressiveData pathingProgressiveData = Globals.serverState.macroPathingService.queuePathfinding(realm, currentPos, targetMacro); + pathingProgressiveData.setGoal(targetPos); PathfindingNode.setPathfindingData(blackboard, pathingProgressiveData); } diff --git a/src/main/java/electrosphere/server/service/MacroPathingService.java b/src/main/java/electrosphere/server/service/MacroPathingService.java index f34312e6..7465ffaa 100644 --- a/src/main/java/electrosphere/server/service/MacroPathingService.java +++ b/src/main/java/electrosphere/server/service/MacroPathingService.java @@ -57,7 +57,6 @@ public class MacroPathingService extends SignalServiceImpl { try { List points = this.findPath(realm.getMacroData(), start, end); rVal.setPoints(points); - rVal.setGoal(points.getLast()); rVal.setReady(true); } catch(Throwable e){ e.printStackTrace();