console notify box

This commit is contained in:
GoaLitiuM
2021-03-14 01:00:08 +02:00
parent 7973daf799
commit 26893a8f57
6 changed files with 123 additions and 40 deletions

View File

@@ -6,6 +6,21 @@ using System.Reflection;
namespace Cabrito
{
public class ConsoleLine
{
public string content;
internal ConsoleLine(string line)
{
content = line;
}
public static implicit operator string(ConsoleLine line) => line.content;
public static explicit operator ConsoleLine(string line) => new ConsoleLine(line);
public override string ToString() => content.ToString();
}
public static class Console
{
private static ConsoleScriptBase scriptInstance = null;
@@ -28,7 +43,8 @@ namespace Cabrito
public static string LinePrefix { get; internal set; } = "]";
private static List<string> consoleLines = new List<string>();
//private static List<string> consoleLines = new List<string>();
private static List<ConsoleLine> consoleLines = new List<ConsoleLine>();
private static Dictionary<string, ConsoleCommand> consoleCommands = new Dictionary<string, ConsoleCommand>();
private static Dictionary<string, ConsoleVariable> consoleVariables = new Dictionary<string, ConsoleVariable>();
@@ -166,8 +182,8 @@ namespace Cabrito
OnOpen += instance.OnConsoleOpen;
OnClose += instance.OnConsoleClose;
foreach (var line in consoleLines)
scriptInstance.AddLine(line);
//foreach (var line in consoleLines)
// scriptInstance.OnLineAdded(line);
}
/// Unregister already registered Console script.
@@ -183,7 +199,7 @@ namespace Cabrito
OnClose -= instance.OnConsoleClose;
}
public static IReadOnlyCollection<string> Lines
public static IReadOnlyCollection<ConsoleLine> Lines
{
get => consoleLines.AsReadOnly();
}
@@ -191,29 +207,33 @@ namespace Cabrito
// Echoes text to Console.
public static void Print(string text)
{
consoleLines.Add(text);
scriptInstance?.AddLine(text);
ConsoleLine line = new ConsoleLine(text);
consoleLines.Add(line);
scriptInstance?.OnLineAdded(text);
}
// Echoes warning text to Console.
public static void PrintWarning(string text)
{
consoleLines.Add(text);
scriptInstance?.AddLine(text);
ConsoleLine line = new ConsoleLine(text);
consoleLines.Add(line);
scriptInstance?.OnLineAdded(text);
}
// Echoes error text to Console.
public static void PrintError(string text)
{
consoleLines.Add(text);
scriptInstance?.AddLine(text);
ConsoleLine line = new ConsoleLine(text);
consoleLines.Add(line);
scriptInstance?.OnLineAdded(text);
}
// Echoes developer/debug text to Console.
public static void PrintDebug(string text)
{
consoleLines.Add(text);
scriptInstance?.AddLine(text);
ConsoleLine line = new ConsoleLine(text);
consoleLines.Add(line);
scriptInstance?.OnLineAdded(text);
}
// Opens the Console.