Table of Contents

Class PathfindingSystem

Namespace
Core.Systems
Assembly
Core.dll
public class PathfindingSystem
Inheritance
object
PathfindingSystem

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

start ushort
goal ushort
unitOwnerCountryID ushort
unitTypeID ushort

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

start ushort
goal ushort
avoidProvinces HashSet<ushort>

Returns

PathResult

FindPathWithForbidden(ushort, ushort, HashSet<ushort>)

Find path with forbidden provinces (convenience method).

public PathResult FindPathWithForbidden(ushort start, ushort goal, HashSet<ushort> forbiddenProvinces)

Parameters

start ushort
goal ushort
forbiddenProvinces HashSet<ushort>

Returns

PathResult

FindPathWithOptions(ushort, ushort, PathOptions)

Find shortest path with full options.

public PathResult FindPathWithOptions(ushort start, ushort goal, PathOptions options)

Parameters

start ushort
goal ushort
options PathOptions

Returns

PathResult

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

start ushort
goal ushort

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

adjacencies AdjacencySystem

Adjacency system for neighbor lookups

validator MovementValidator

Legacy validator (deprecated, use IMovementCostCalculator)

cacheSize int

Size 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

provinceId ushort

PathExists(ushort, ushort)

Check if a path exists between two provinces.

public bool PathExists(ushort start, ushort goal)

Parameters

start ushort
goal ushort

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

calculator IMovementCostCalculator