using System.Collections.Generic; using System.Linq; using System.Numerics; namespace PathFinding { public class MoveSet { private readonly IPlanarElement element; private readonly ICollection moves; private readonly ICollection upsidedownMoves; public MoveSet(IPlanarElement element, ICollection moves) { this.element = element; this.moves = moves; upsidedownMoves = moves.Select(_ => new Move(Vector2.Negate(_.Direction), _.Distance)).ToList(); } public ICollection GetMoves() => element.IsUpsideDown ? upsidedownMoves : moves; } }