87 lines
860 B
C#
87 lines
860 B
C#
using System.Collections.Generic;
|
|
|
|
namespace HxGame.PathFinding
|
|
{
|
|
|
|
public delegate float OnCellCross(int cellIndex);
|
|
|
|
interface IPathFinder
|
|
{
|
|
|
|
HeuristicFormula Formula
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
bool Diagonals
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
float HeavyDiagonalsCost
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
bool HexagonalGrid
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
float HeuristicEstimate
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
int MaxSteps
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
float MaxSearchCost
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
int CellGroupMask
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
bool IgnoreCanCrossCheck
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
bool IgnoreCellCost
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
bool IncludeInvisibleCells
|
|
{
|
|
get;
|
|
set;
|
|
}
|
|
|
|
List<PathFinderNode> FindPath(CellNode start, CellNode end, out float cost, bool evenLayout);
|
|
|
|
void SetCalcMatrix(CellNode[] grid);
|
|
|
|
OnCellCross OnCellCross { get; set; }
|
|
|
|
}
|
|
|
|
}
|
|
|