From f16b600b91f4aea38fea0407be408c2d0e8c5074 Mon Sep 17 00:00:00 2001 From: Joscha Date: Tue, 6 Feb 2024 00:59:02 +0100 Subject: [PATCH] Add very rudimentary UI --- Main/Main.gd | 26 ++++++++++++++++++++++++-- Main/Main.tscn | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/Main/Main.gd b/Main/Main.gd index cd0fa7c..7080dcd 100644 --- a/Main/Main.gd +++ b/Main/Main.gd @@ -1,7 +1,29 @@ extends Node +@onready var _room := $EuphRoom +@onready var _status := %Status +@onready var _messages := %Messages +@onready var _input := %Input + +func _escape(text: String) -> String: + return text.replace("[", "[lb]") + func _process(_delta): - $Label.text = $EuphRoom.status() + _status.text = _room.status() func _on_euph_room_packet(packet: EuphPacket): - print("| ", packet.json_stringify()) + if packet.type == "send-event": + _messages.append_text("\n[b][lb]%s[rb][/b] %s" % [ + _escape(packet.data.sender.name), + _escape(packet.data.content), + ]) + +func _send_msg(): + _room.send(EuphPacket.new("send", {"content": _input.text})) + _input.clear() + +func _on_send_button_pressed(): + _send_msg() + +func _on_input_text_submitted(new_text): + _send_msg() diff --git a/Main/Main.tscn b/Main/Main.tscn index 50be89e..2e8c28a 100644 --- a/Main/Main.tscn +++ b/Main/Main.tscn @@ -9,8 +9,51 @@ script = ExtResource("1_4ppmd") [node name="EuphRoom" parent="." instance=ExtResource("2_wfewt")] autoconnect = true -[node name="Label" type="Label" parent="."] -offset_right = 40.0 -offset_bottom = 23.0 +[node name="Ui" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="Ui"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Status" type="Label" parent="Ui/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "unknown" + +[node name="HSeparator" type="HSeparator" parent="Ui/VBoxContainer"] +layout_mode = 2 + +[node name="Messages" type="RichTextLabel" parent="Ui/VBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_vertical = 3 +text = "Messages:" + +[node name="HSeparator2" type="HSeparator" parent="Ui/VBoxContainer"] +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="Ui/VBoxContainer"] +layout_mode = 2 + +[node name="Input" type="LineEdit" parent="Ui/VBoxContainer/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="SendButton" type="Button" parent="Ui/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Send" [connection signal="packet" from="EuphRoom" to="." method="_on_euph_room_packet"] +[connection signal="text_submitted" from="Ui/VBoxContainer/HBoxContainer/Input" to="." method="_on_input_text_submitted"] +[connection signal="pressed" from="Ui/VBoxContainer/HBoxContainer/SendButton" to="." method="_on_send_button_pressed"]