From 2d0139c3275d5c0bdaedc23d38da4d744870020d Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 1 Sep 2025 18:32:45 -0300 Subject: Centralização de logs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/Utils/MessageLogData.cs | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 scripts/Utils/MessageLogData.cs (limited to 'scripts/Utils/MessageLogData.cs') diff --git a/scripts/Utils/MessageLogData.cs b/scripts/Utils/MessageLogData.cs new file mode 100644 index 0000000..ed30062 --- /dev/null +++ b/scripts/Utils/MessageLogData.cs @@ -0,0 +1,48 @@ +using Godot; + +public partial class MessageLogData : Node +{ + public static MessageLogData Instance { get; private set; } + private Godot.Collections.Array messages = []; + public Godot.Collections.Array Messages {get => messages;} + +private Message LastMessage { + get { + if (messages.Count <= 0) { + return null; + } + return messages[^1]; + } + } + + public void ClearMessages() { + foreach (Message message in messages) { + message.QueueFree(); + } + } + + public override void _Ready() + { + base._Ready(); + Instance = this; + } + + public void AddMessage(string text) { + if (LastMessage != null && LastMessage.PlainText == text) { + LastMessage.Count++; + return; + } + + Message message = new(text); + messages.Add(message); + EmitSignal(SignalName.messageSent, message); + } + + /// + /// Acionado sempre que uma mensagem for adicionada para o log. + /// + /// Mensagem. + [Signal] + public delegate void messageSentEventHandler(Message message); + +} \ No newline at end of file -- cgit v1.2.3