diff --git a/Assets/Scripts/Console/DebugConsole.cs b/Assets/Scripts/Console/DebugConsole.cs index 209f45a..6b7aa42 100644 --- a/Assets/Scripts/Console/DebugConsole.cs +++ b/Assets/Scripts/Console/DebugConsole.cs @@ -41,21 +41,17 @@ namespace Cyber.Console { public int RowLength = 80; /// - /// The linecount threshold when the is cleaned - /// up so it has lines left. + /// How many lines are included in the when + /// the total amount of lines exceeds this. /// - public int MaxLinesUntilCleanup = 48; - - /// - /// See . - /// - public int LineCountSavedFromCleanup = 24; + public int LinesRendered = 15; private Dictionary Actions = new Dictionary(); private List Lines = new List(); private List Commands = new List(); private int LastCommandIndex = 0; private string LastUnexecutedCommand = ""; + private int ScrollOffset = 1; /// /// Creates a new , and sets the 's singleton. @@ -128,7 +124,6 @@ namespace Cyber.Console { /// /// Text. public void Print(string text) { - // Wrap lines and log them to Lines int Index = 0; int EscapeIndex = 0; @@ -143,16 +138,19 @@ namespace Cyber.Console { TextField.text += Line + "\n"; EscapeIndex++; } while (Index < text.Length && EscapeIndex < 10); - if (Lines.Count > MaxLinesUntilCleanup) { - // The print history is too long, clear up until there are only - // a small amount left (so the user doesn't notice the cleanup) - string NewLog = ""; - Lines.RemoveRange(0, Lines.Count - LineCountSavedFromCleanup); - foreach (string Line in Lines) { - NewLog += Line + "\n"; + UpdateTextField(); + } + + private void UpdateTextField() { + string NewLog = ""; + int LineAmt = Mathf.Min(LinesRendered, Lines.Count); + for (int i = 0; i < LineAmt; i++) { + int Index = Lines.Count - (i + ScrollOffset); + if (Index >= 0 && Index < Lines.Count) { + NewLog += Lines[i] + "\n"; } - TextField.text = NewLog; } + TextField.text = NewLog; } private void Start() { @@ -229,6 +227,14 @@ namespace Cyber.Console { InputField.text = LastUnexecutedCommand; } } + if (Input.GetAxis("Mouse ScrollWheel") > 0 && ScrollOffset + 1 <= Lines.Count) { + ScrollOffset++; + UpdateTextField(); + } + if (Input.GetAxis("Mouse ScrollWheel") < 0 && ScrollOffset - 1 > 1) { + ScrollOffset--; + UpdateTextField(); + } // Slide up/down animation RectTransform Rect = Panel.GetComponent();