1
0
Fork 0
mirror of https://github.com/Ellpeck/MLEM.git synced 2024-05-24 09:33:37 +02:00
MLEM/MLEM/Pathfinding/AStar2.cs

30 lines
1.1 KiB
C#
Raw Normal View History

using System;
using System.Linq;
using Microsoft.Xna.Framework;
2019-09-04 13:05:44 +02:00
using MLEM.Misc;
namespace MLEM.Pathfinding {
/// <summary>
/// A 2-dimensional implementation of <see cref="AStar{T}"/> that uses <see cref="Point"/> for positions.
/// </summary>
public class AStar2 : AStar<Point> {
2019-09-04 13:05:44 +02:00
private static readonly Point[] AdjacentDirs = Direction2Helper.Adjacent.Offsets().ToArray();
private static readonly Point[] AllDirs = Direction2Helper.All.Offsets().ToArray();
/// <inheritdoc />
public AStar2(GetCost defaultCostFunction, bool defaultAllowDiagonals, float defaultCost = 1, int defaultMaxTries = 10000) :
2021-12-28 14:56:11 +01:00
base(AllDirs, AdjacentDirs, defaultCostFunction, defaultAllowDiagonals, defaultCost, defaultMaxTries) {}
/// <inheritdoc />
protected override Point AddPositions(Point first, Point second) {
return first + second;
}
/// <inheritdoc />
protected override float GetManhattanDistance(Point first, Point second) {
return Math.Abs(second.X - first.X) + Math.Abs(second.Y - first.Y);
}
}
}