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 +++++++++++++++++++++++++++++++++++++ scripts/Utils/MessageLogData.cs.uid | 1 + scripts/Utils/SignalBus.cs | 6 ----- 3 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 scripts/Utils/MessageLogData.cs create mode 100644 scripts/Utils/MessageLogData.cs.uid (limited to 'scripts/Utils') 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 diff --git a/scripts/Utils/MessageLogData.cs.uid b/scripts/Utils/MessageLogData.cs.uid new file mode 100644 index 0000000..0b8f55f --- /dev/null +++ b/scripts/Utils/MessageLogData.cs.uid @@ -0,0 +1 @@ +uid://dgb6vauj2v8sm diff --git a/scripts/Utils/SignalBus.cs b/scripts/Utils/SignalBus.cs index 7408db2..f5cb0d2 100644 --- a/scripts/Utils/SignalBus.cs +++ b/scripts/Utils/SignalBus.cs @@ -16,10 +16,4 @@ public partial class SignalBus : Node base._Ready(); Instance = this; } - /// - /// Acionado sempre que uma mensagem for adicionada para o log. - /// - /// Mensagem. - [Signal] - public delegate void messageSentEventHandler(string text); } -- cgit v1.2.3