public void SwapXYTest() { BasicMap reversed = _map.SwapXy(); for (int i = 0; i < reversed.Width; i++) { for (int j = 0; j < reversed.Height; j++) { Coord rev = new Coord(i, j); Coord orig = new Coord(j, i); BasicTerrain r = reversed.GetTerrain <BasicTerrain>(rev); BasicTerrain o = _map.GetTerrain <BasicTerrain>(orig); Assert.AreEqual(r.Glyph, o.Glyph, "SwapXY() did not swap the x/y values correctly at Coord(" + i.ToString() + ", " + j.ToString() + ")."); } } }
public static BasicMap RotateDiscreet(this BasicMap m, int degrees) { if (degrees % 90 != 0) { throw new ArgumentOutOfRangeException(nameof(degrees)); } BasicMap map = m; for (int i = degrees; i > 0; i -= 90) { map = map.SwapXy(); map = map.ReverseVertical(); } return(map); }