Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }