예제 #1
0
 private void LineQueuePop()
 {
     CurrentLine                   = LineQueue.Dequeue();
     CurrentLine.LineIndex         = 0;
     CurrentLine.RealCharLineIndex = 0;
     CurrentLineTimer              = 0.0f;
 }
예제 #2
0
 private void LineQueueEndOfSameLine()
 {
     CurrentLine.SpecialColor = false;
     ConsoleAccess.ResetColor();
     PreviousLine = CurrentLine;
     CurrentLine  = null;
 }
예제 #3
0
        private void SameLineDot()
        {
            ConsoleAccess.Lock();
            var OrigConsolePos = new int[2] {
                Console.CursorLeft, Console.CursorTop
            };

            ConsoleAccess.ForegroundColor = PreviousLine.LastCharForeground;
            ConsoleAccess.BackgroundColor = PreviousLine.LastCharBackground;

            if (PreviousLine.DotCount < 3)
            {
                ConsoleAccess.SetCursorPosition(
                    PreviousLine.ConsolePos[0] + PreviousLine.RealCharLineIndex + PreviousLine.DotCount,
                    PreviousLine.ConsolePos[1]);
                PreviousLine.DotCount++;
                ConsoleAccess.Write(".");
            }
            else
            {
                ConsoleAccess.SetCursorPosition(
                    PreviousLine.ConsolePos[0] + PreviousLine.RealCharLineIndex,
                    PreviousLine.ConsolePos[1]);
                ConsoleAccess.Write(".  ");
                PreviousLine.DotCount = 1;
            }

            ConsoleAccess.ResetColor();

            ConsoleAccess.ConsolePosition = OrigConsolePos;
            CurrentLine = PreviousLine;
            LineQueueEndOfSameLine();
            ConsoleAccess.Unlock();

            FinishedTyping();
        }