private MapTileBasis GetFirstRotatedTile(MapTileBasis item) { int ring = item.Row + item.Column; int offset = item.Row; int row = ring; int column = -offset; return(new MapTileBasis(row, column, item.IsImpassable, item.IsStartPosition)); }
private IEnumerable <MapTileBasis> GetMirroredTiles(MapTileBasis item) { MapTileBasis rotationA = GetFirstRotatedTile(item); MapTileBasis rotationB = GetSecondRotatedTile(item); yield return(item); yield return(rotationA); yield return(rotationB); yield return(GetFlippedTile(item)); yield return(GetFlippedTile(rotationA)); yield return(GetFlippedTile(rotationB)); }
private MapTileBasis GetFlippedTile(MapTileBasis item) { return(new MapTileBasis(-item.Row, -item.Column, item.IsImpassable, item.IsStartPosition)); }