From 7a29a7ae82d3052963b5a6d9144eb965ba89f79a Mon Sep 17 00:00:00 2001 From: WiseNoodle Date: Mon, 4 Aug 2025 22:39:38 -0400 Subject: [PATCH] Add multiplayer debug ui --- splunk/player/Player.tscn | 2 +- splunk/project.godot | 3 +- .../multiplayer-debug-ui.tscn | 77 +++++++++++++++++++ .../multiplayer_debug_ui.gd | 25 ++++++ .../multiplayer_debug_ui.gd.uid | 1 + 5 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 splunk/ui/multiplayer-debug-ui/multiplayer-debug-ui.tscn create mode 100644 splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd create mode 100644 splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd.uid diff --git a/splunk/player/Player.tscn b/splunk/player/Player.tscn index 9ba6de2..5e10955 100644 --- a/splunk/player/Player.tscn +++ b/splunk/player/Player.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=7 format=3 uid="uid://csmfxg011xisf"] -[ext_resource type="Script" uid="uid://dopyfulbw2mx5" path="res://player/player.gd" id="1_ulp21"] +[ext_resource type="Script" path="res://player/player.gd" id="1_ulp21"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_ehsmr"] diff --git a/splunk/project.godot b/splunk/project.godot index 048f8a8..a67522d 100644 --- a/splunk/project.godot +++ b/splunk/project.godot @@ -25,7 +25,8 @@ folder_colors={ "res://items/": "yellow", "res://levels/": "green", "res://player/": "purple", -"res://tools/": "gray" +"res://tools/": "gray", +"res://ui/": "red" } [input] diff --git a/splunk/ui/multiplayer-debug-ui/multiplayer-debug-ui.tscn b/splunk/ui/multiplayer-debug-ui/multiplayer-debug-ui.tscn new file mode 100644 index 0000000..dfc5005 --- /dev/null +++ b/splunk/ui/multiplayer-debug-ui/multiplayer-debug-ui.tscn @@ -0,0 +1,77 @@ +[gd_scene load_steps=3 format=3 uid="uid://8phs2e161db1"] + +[ext_resource type="Script" uid="uid://cfkrrnsqwx0cv" path="res://ui/multiplayer-debug-ui/multiplayer_debug_ui.gd" id="1_h2vp3"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_c6gl5"] +bg_color = Color(0, 0, 0, 0.580392) +expand_margin_left = 5.0 +expand_margin_right = 5.0 + +[node name="Multiplayer-debug-ui" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_h2vp3") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.313726) + +[node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 50 +alignment = 1 + +[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"] +layout_mode = 2 +theme_override_constants/separation = 10 +alignment = 1 + +[node name="InviteButton" type="Button" parent="HBoxContainer/VBoxContainer"] +layout_mode = 2 +text = "INVITE" + +[node name="QuitButton" type="Button" parent="HBoxContainer/VBoxContainer"] +layout_mode = 2 +text = "QUIT +" + +[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer"] +layout_mode = 2 + +[node name="MarginContainer" type="MarginContainer" parent="HBoxContainer/VBoxContainer2"] +layout_mode = 2 +theme_override_constants/margin_top = 280 + +[node name="LobbyCountLabel" type="Label" parent="HBoxContainer/VBoxContainer2/MarginContainer"] +layout_mode = 2 +theme_override_font_sizes/font_size = 20 +text = "Players in lobby 0/4" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Panel" type="Panel" parent="HBoxContainer/VBoxContainer2"] +layout_mode = 2 +size_flags_vertical = 3 +theme_override_styles/panel = SubResource("StyleBoxFlat_c6gl5") + +[node name="PlayerNameContainer" type="VBoxContainer" parent="HBoxContainer/VBoxContainer2/Panel"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 diff --git a/splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd b/splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd new file mode 100644 index 0000000..cf110d4 --- /dev/null +++ b/splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd @@ -0,0 +1,25 @@ +extends Control + +@export var lobby_count_label: Label +@export var PlayerNameContainer: VBoxContainer +@export var playername_array: Array[String] = [] + + +func add_new_player(playername: String, total_player_count: int): + var new_playername_label = Label.new() + new_playername_label.text = playername + new_playername_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER + new_playername_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER + new_playername_label.name = playername + playername_array.append(playername) + PlayerNameContainer.add_child(new_playername_label) + lobby_count_label.text = "Players in lobby " + str(total_player_count) + "/4" + + +func delete_player(playername: String, total_player_count: int): + for playername_index in playername_array: + if playername_index == playername: + playername_array.erase(playername_index) + var playername_node_for_deletion = PlayerNameContainer.find_child(playername) + playername_node_for_deletion.queue_free() + lobby_count_label.text = "Players in lobby " + str(total_player_count) + "/4" diff --git a/splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd.uid b/splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd.uid new file mode 100644 index 0000000..7705f51 --- /dev/null +++ b/splunk/ui/multiplayer-debug-ui/multiplayer_debug_ui.gd.uid @@ -0,0 +1 @@ +uid://cfkrrnsqwx0cv