Class PathfindingSystem
public class PathfindingSystem
- Inheritance
-
objectPathfindingSystem
Properties
CacheHitRate
Cache hit rate (0-1)
public float CacheHitRate { get; }
Property Value
- float
CacheHits
Number of cache hits
public int CacheHits { get; }
Property Value
- int
IsInitialized
public bool IsInitialized { get; }
Property Value
- bool
TotalSearches
Total pathfinding searches performed
public int TotalSearches { get; }
Property Value
- int
Methods
ClearCache()
Clear the path cache.
public void ClearCache()
Dispose()
public void Dispose()
FindPath(ushort, ushort, ushort, ushort)
Find shortest path from start to goal using default options.
public List<ushort> FindPath(ushort start, ushort goal, ushort unitOwnerCountryID = 0, ushort unitTypeID = 0)
Parameters
startushortgoalushortunitOwnerCountryIDushortunitTypeIDushort
Returns
- List<ushort>
FindPathAvoiding(ushort, ushort, HashSet<ushort>)
Find path avoiding specific provinces (convenience method).
public PathResult FindPathAvoiding(ushort start, ushort goal, HashSet<ushort> avoidProvinces)
Parameters
startushortgoalushortavoidProvincesHashSet<ushort>
Returns
FindPathWithForbidden(ushort, ushort, HashSet<ushort>)
Find path with forbidden provinces (convenience method).
public PathResult FindPathWithForbidden(ushort start, ushort goal, HashSet<ushort> forbiddenProvinces)
Parameters
startushortgoalushortforbiddenProvincesHashSet<ushort>
Returns
FindPathWithOptions(ushort, ushort, PathOptions)
Find shortest path with full options.
public PathResult FindPathWithOptions(ushort start, ushort goal, PathOptions options)
Parameters
startushortgoalushortoptionsPathOptions
Returns
GetCacheStats()
Get cache statistics.
public string GetCacheStats()
Returns
- string
GetDistance(ushort, ushort)
Get the distance (number of provinces) between two provinces. Returns -1 if no path exists.
public int GetDistance(ushort start, ushort goal)
Parameters
startushortgoalushort
Returns
- int
GetStats()
Get system statistics as string.
public string GetStats()
Returns
- string
Initialize(AdjacencySystem, MovementValidator, int)
Initialize pathfinding system with adjacency data.
public void Initialize(AdjacencySystem adjacencies, MovementValidator validator = null, int cacheSize = 256)
Parameters
adjacenciesAdjacencySystemAdjacency system for neighbor lookups
validatorMovementValidatorLegacy validator (deprecated, use IMovementCostCalculator)
cacheSizeintSize of path cache (0 to disable)
InvalidateCacheForProvince(ushort)
Invalidate cached paths that pass through a province. Call when a province becomes blocked/unblocked.
public void InvalidateCacheForProvince(ushort provinceId)
Parameters
provinceIdushort
PathExists(ushort, ushort)
Check if a path exists between two provinces.
public bool PathExists(ushort start, ushort goal)
Parameters
startushortgoalushort
Returns
- bool
ResetStats()
Reset statistics.
public void ResetStats()
SetDefaultCostCalculator(IMovementCostCalculator)
Set the default cost calculator for all pathfinding requests.
public void SetDefaultCostCalculator(IMovementCostCalculator calculator)
Parameters
calculatorIMovementCostCalculator