public ColoredCharacter[,] GetCurrentView() { var views = DisplayingQueue.Select(e => e.GetCurrentView()).ToArray(); var result = new ColoredCharacter[ views.Max(v => v.GetLength(0)), views.Sum(v => v.GetLength(1)) + Indentiation * (views.Length - 1)]; for (var x = 0; x < result.GetLength(0); x++) { for (var y = 0; y < result.GetLength(1); y++) { result[x, y] = new ColoredCharacter(' ', ConsoleColor.Black); } } var currentY = 0; foreach (var view in views) { result.Put(view, new Vector2(0, currentY)); currentY += view.GetLength(1) + Indentiation; } return(result); }
public ColoredCharacter[,] GetCurrentView() { var result = new ColoredCharacter[Size.X, Size.Y]; for (var x = 0; x < result.GetLength(0); x++) { for (var y = 0; y < result.GetLength(1); y++) { ColoredCharacter c; if (x == 0 && y == 0) { c = new ColoredCharacter('┌', BorderColor); } else if (x == result.GetLength(0) - 1 && y == 0) { c = new ColoredCharacter('┐', BorderColor); } else if (x == 0 && y == result.GetLength(1) - 1) { c = new ColoredCharacter('└', BorderColor); } else if (x == result.GetLength(0) - 1 && y == result.GetLength(1) - 1) { c = new ColoredCharacter('┘', BorderColor); } else if (x == 0 || x == result.GetLength(0) - 1) { c = new ColoredCharacter('│', BorderColor); } else if (y == 0 || y == result.GetLength(1) - 1) { c = new ColoredCharacter('─', BorderColor); } else { c = new ColoredCharacter(' ', BorderColor); } result[x, y] = c; } } return(result); }