// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.Pathfinding; using System.Threading; /// /// Interface for a path finder. /// internal interface IPathFinder { /// /// Finds the path between two points. /// /// The start point. /// The end point. /// /// The two-dimensional grid of the terrain. /// For each coordinate it contains the cost of traveling to it from a neighbor coordinate. /// The value of 0 means, that the coordinate is unreachable, . /// If the highest bit of a value is set, it means it's a coordinate of a safezone. /// /// If set to true, safezone nodes should be included in the search. /// The optional cancellation token to cancel the operation. /// The path between start and end, including , but excluding . IList? FindPath(Point start, Point end, byte[,] terrain, bool includeSafezone, CancellationToken cancellationToken = default); }