feat: add Phase 1 core pathfinding architecture

Implements the new Baritone-inspired A* pathfinding system:
- Core types: PathNode, PathResult, MoveResult, MoveType, ActionCosts
- BinaryHeapOpenSet min-heap for A* open set
- AStarPathFinder with timeout, cancellation, partial path support
- CalculationContext for thread-safe world state snapshots
- MoveHelper for block passability checks
- IGoal interface + GoalBlock, GoalXZ, GoalNear, GoalComposite
- IMove interface + MoveTraverse, MoveDiagonal, MoveAscend, MoveDescend, MoveClimb
- /pathfind command for testing the new pathfinder

Made-with: Cursor
This commit is contained in:
BruceChen 2026-04-11 01:48:10 +08:00
parent 3efe63c54d
commit 1abab20f17
23 changed files with 1222 additions and 0 deletions

View file

@ -4585,6 +4585,24 @@ namespace MinecraftClient {
}
}
/// <summary>
/// Looks up a localized string similar to Use new A* pathfinding to navigate to a location..
/// </summary>
internal static string cmd_pathfind_desc {
get {
return ResourceManager.GetString("cmd.pathfind.desc", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Pathfinding to ({0}, {1}, {2})....
/// </summary>
internal static string cmd_pathfind_started {
get {
return ResourceManager.GetString("cmd.pathfind.started", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to restart and reconnect to the server..
/// </summary>

View file

@ -1538,6 +1538,12 @@ You can use "/chunk status {0:0.0} {1:0.0} {2:0.0}" to check the chunk loading s
<data name="cmd.move.walk" xml:space="preserve">
<value>Walking from {1} to {0}</value>
</data>
<data name="cmd.pathfind.desc" xml:space="preserve">
<value>Use new A* pathfinding to navigate to a location.</value>
</data>
<data name="cmd.pathfind.started" xml:space="preserve">
<value>Pathfinding to ({0}, {1}, {2})...</value>
</data>
<data name="cmd.reco.desc" xml:space="preserve">
<value>restart and reconnect to the server.</value>
</data>