Minecraft-Console-Client/MinecraftClient/Pathing/Core/PathResult.cs
BruceChen 1abab20f17 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
2026-04-12 18:43:32 +00:00

30 lines
796 B
C#

using System.Collections.Generic;
namespace MinecraftClient.Pathing.Core
{
public enum PathStatus
{
Success,
Partial,
Failed
}
public sealed class PathResult
{
public PathStatus Status { get; }
public IReadOnlyList<PathNode> Path { get; }
public int NodesExplored { get; }
public long ElapsedMs { get; }
public PathResult(PathStatus status, IReadOnlyList<PathNode> path, int nodesExplored, long elapsedMs)
{
Status = status;
Path = path;
NodesExplored = nodesExplored;
ElapsedMs = elapsedMs;
}
public static PathResult Fail(int nodesExplored, long elapsedMs)
=> new(PathStatus.Failed, [], nodesExplored, elapsedMs);
}
}