예제 #1
0
파일: UiList.cs 프로젝트: girvel/Prophet
        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);
        }
예제 #2
0
        public ColoredCharacter[,] GetCurrentView()
        {
            var values = GetContent();

            if (values.Length == 0)
            {
                return(new ColoredCharacter[0, 0]);
            }

            var result = new ColoredCharacter[values.Max(v => v.Length), values.Length];

            for (var i = 0; i < values.Length; i++)
            {
                result.Put(
                    values[i]
                    .ToCharArray()
                    .Select(c => new ColoredCharacter(c, ConsoleColor.Gray))
                    .ToArray()
                    .To2D(),
                    new Vector2(0, i));
            }

            return(result);
        }