Rename PathGraph to MapPathGraph.
Move PathCostForInvalidPath and MovementCostForUnreachableCell constants into a new static class, PathGraph.
This commit is contained in:
@@ -32,6 +32,12 @@ namespace OpenRA.Mods.Common.Pathfinder
|
|||||||
CellInfo this[CPos node] { get; set; }
|
CellInfo this[CPos node] { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class PathGraph
|
||||||
|
{
|
||||||
|
public const int PathCostForInvalidPath = int.MaxValue;
|
||||||
|
public const short MovementCostForUnreachableCell = short.MaxValue;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents part of an edge in a graph, giving the cost to traverse to a node.
|
/// Represents part of an edge in a graph, giving the cost to traverse to a node.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -18,15 +18,12 @@ namespace OpenRA.Mods.Common.Pathfinder
|
|||||||
/// A dense pathfinding graph that supports a search over all cells within a map.
|
/// A dense pathfinding graph that supports a search over all cells within a map.
|
||||||
/// It implements the ability to cost and get connections for cells, and supports <see cref="ICustomMovementLayer"/>.
|
/// It implements the ability to cost and get connections for cells, and supports <see cref="ICustomMovementLayer"/>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
sealed class PathGraph : DensePathGraph
|
sealed class MapPathGraph : DensePathGraph
|
||||||
{
|
{
|
||||||
public const int PathCostForInvalidPath = int.MaxValue;
|
|
||||||
public const short MovementCostForUnreachableCell = short.MaxValue;
|
|
||||||
|
|
||||||
readonly CellInfoLayerPool.PooledCellInfoLayer pooledLayer;
|
readonly CellInfoLayerPool.PooledCellInfoLayer pooledLayer;
|
||||||
readonly CellLayer<CellInfo>[] cellInfoForLayer;
|
readonly CellLayer<CellInfo>[] cellInfoForLayer;
|
||||||
|
|
||||||
public PathGraph(CellInfoLayerPool layerPool, Locomotor locomotor, Actor actor, World world, BlockedByActor check,
|
public MapPathGraph(CellInfoLayerPool layerPool, Locomotor locomotor, Actor actor, World world, BlockedByActor check,
|
||||||
Func<CPos, int> customCost, Actor ignoreActor, bool laneBias, bool inReverse)
|
Func<CPos, int> customCost, Actor ignoreActor, bool laneBias, bool inReverse)
|
||||||
: base(locomotor, actor, world, check, customCost, ignoreActor, laneBias, inReverse)
|
: base(locomotor, actor, world, check, customCost, ignoreActor, laneBias, inReverse)
|
||||||
{
|
{
|
||||||
@@ -42,7 +42,7 @@ namespace OpenRA.Mods.Common.Pathfinder
|
|||||||
Actor ignoreActor = null,
|
Actor ignoreActor = null,
|
||||||
bool laneBias = true)
|
bool laneBias = true)
|
||||||
{
|
{
|
||||||
var graph = new PathGraph(LayerPoolForWorld(world), locomotor, self, world, check, customCost, ignoreActor, laneBias, false);
|
var graph = new MapPathGraph(LayerPoolForWorld(world), locomotor, self, world, check, customCost, ignoreActor, laneBias, false);
|
||||||
var search = new PathSearch(graph, loc => 0, DefaultHeuristicWeightPercentage, targetPredicate);
|
var search = new PathSearch(graph, loc => 0, DefaultHeuristicWeightPercentage, targetPredicate);
|
||||||
|
|
||||||
foreach (var sl in froms)
|
foreach (var sl in froms)
|
||||||
@@ -61,7 +61,7 @@ namespace OpenRA.Mods.Common.Pathfinder
|
|||||||
Func<CPos, int> heuristic = null,
|
Func<CPos, int> heuristic = null,
|
||||||
int heuristicWeightPercentage = DefaultHeuristicWeightPercentage)
|
int heuristicWeightPercentage = DefaultHeuristicWeightPercentage)
|
||||||
{
|
{
|
||||||
var graph = new PathGraph(LayerPoolForWorld(world), locomotor, self, world, check, customCost, ignoreActor, laneBias, inReverse);
|
var graph = new MapPathGraph(LayerPoolForWorld(world), locomotor, self, world, check, customCost, ignoreActor, laneBias, inReverse);
|
||||||
|
|
||||||
heuristic = heuristic ?? DefaultCostEstimator(locomotor, target);
|
heuristic = heuristic ?? DefaultCostEstimator(locomotor, target);
|
||||||
var search = new PathSearch(graph, heuristic, heuristicWeightPercentage, loc => loc == target);
|
var search = new PathSearch(graph, heuristic, heuristicWeightPercentage, loc => loc == target);
|
||||||
|
|||||||
Reference in New Issue
Block a user