public static Direction Convert(this RSIDirection dir) { switch (dir) { case RSIDirection.South: return(Direction.South); case RSIDirection.North: return(Direction.North); case RSIDirection.East: return(Direction.East); case RSIDirection.West: return(Direction.West); case RSIDirection.SouthEast: return(Direction.SouthEast); case RSIDirection.SouthWest: return(Direction.SouthWest); case RSIDirection.NorthEast: return(Direction.NorthEast); case RSIDirection.NorthWest: return(Direction.NorthWest); } throw new ArgumentException($"Unknown RSI dir: {dir}.", nameof(dir)); }
/// <summary> /// 'Rounds' a diagonal direction down to a cardinal direction /// </summary> /// <param name="dir">The direction to round</param> /// <returns><paramref name="dir"/> if it's a cardinal direction, otherwise either north or /// south.</returns> public static RSIDirection RoundToCardinal(this RSIDirection dir) { switch (dir) { case RSIDirection.NorthEast: case RSIDirection.NorthWest: return(RSIDirection.North); case RSIDirection.SouthEast: case RSIDirection.SouthWest: return(RSIDirection.South); default: return(dir); } }