aboutsummaryrefslogtreecommitdiff
path: root/client/menu/ui_elements
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2025-08-30 23:58:09 +0200
committertpart <tpart120@proton.me>2025-08-30 23:58:09 +0200
commit1153f8b8c6dafa7284caadceefff327ad6ca28a5 (patch)
treec665e072baa6de5514db90a76b398131bd606504 /client/menu/ui_elements
parent04fe002f25d74919ca3e69595099e799e259eb69 (diff)
downloadhurrycurry-1153f8b8c6dafa7284caadceefff327ad6ca28a5.tar
hurrycurry-1153f8b8c6dafa7284caadceefff327ad6ca28a5.tar.bz2
hurrycurry-1153f8b8c6dafa7284caadceefff327ad6ca28a5.tar.zst
Add player count to server list
Diffstat (limited to 'client/menu/ui_elements')
-rw-r--r--client/menu/ui_elements/server_list_item.gd32
-rw-r--r--client/menu/ui_elements/server_list_item.gd.uid1
-rw-r--r--client/menu/ui_elements/server_list_item.tscn39
3 files changed, 72 insertions, 0 deletions
diff --git a/client/menu/ui_elements/server_list_item.gd b/client/menu/ui_elements/server_list_item.gd
new file mode 100644
index 00000000..d9838234
--- /dev/null
+++ b/client/menu/ui_elements/server_list_item.gd
@@ -0,0 +1,32 @@
+# Hurry Curry! - a game about cooking
+# Copyright (C) 2025 Hurry Curry! contributors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, version 3 of the License only.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+#
+class_name ServerListItem
+extends PanelContainer
+
+var error_style_focus: StyleBoxFlat = preload("res://menu/theme/style/error_focus_style.tres")
+@onready var title: Label = $MarginContainer/VBoxContainer/Title
+@onready var info: Label = $MarginContainer/VBoxContainer/Info
+@onready var button: Button = $Button
+
+func setup(name_: String, online_players: int, version: Array):
+ title.text = name_
+ if version[0] != Multiplayer.VERSION_MAJOR or version[1] > Multiplayer.VERSION_MINOR:
+ button.disabled = true
+ button.add_theme_stylebox_override("focus", error_style_focus)
+ info.text = tr("c.menu.play.server_version_mismatch")
+ info.add_theme_color_override("font_color", Color("ff2222"))
+ return
+ info.text = tr("c.menu.play.server_players").format([online_players])
diff --git a/client/menu/ui_elements/server_list_item.gd.uid b/client/menu/ui_elements/server_list_item.gd.uid
new file mode 100644
index 00000000..276bb06f
--- /dev/null
+++ b/client/menu/ui_elements/server_list_item.gd.uid
@@ -0,0 +1 @@
+uid://xr5oigbgd0aw
diff --git a/client/menu/ui_elements/server_list_item.tscn b/client/menu/ui_elements/server_list_item.tscn
new file mode 100644
index 00000000..4a551ae1
--- /dev/null
+++ b/client/menu/ui_elements/server_list_item.tscn
@@ -0,0 +1,39 @@
+[gd_scene load_steps=3 format=3 uid="uid://t2h60dhuvfsk"]
+
+[ext_resource type="Script" uid="uid://xr5oigbgd0aw" path="res://menu/ui_elements/server_list_item.gd" id="1_1n1yg"]
+
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_1n1yg"]
+
+[node name="ServerListItem" type="PanelContainer"]
+offset_right = 400.0
+offset_bottom = 40.0
+size_flags_horizontal = 3
+theme_override_styles/panel = SubResource("StyleBoxEmpty_1n1yg")
+script = ExtResource("1_1n1yg")
+
+[node name="Button" type="Button" parent="."]
+layout_mode = 2
+
+[node name="MarginContainer" type="MarginContainer" parent="."]
+layout_mode = 2
+mouse_filter = 2
+theme_override_constants/margin_left = 10
+theme_override_constants/margin_top = 10
+theme_override_constants/margin_right = 10
+theme_override_constants/margin_bottom = 10
+
+[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
+layout_mode = 2
+mouse_filter = 2
+
+[node name="Title" type="Label" parent="MarginContainer/VBoxContainer"]
+layout_mode = 2
+theme_override_colors/font_color = Color(0.87451, 0.87451, 0.87451, 1)
+theme_override_font_sizes/font_size = 18
+text = "Example Server"
+
+[node name="Info" type="Label" parent="MarginContainer/VBoxContainer"]
+layout_mode = 2
+theme_override_colors/font_color = Color(0.749781, 0.74978, 0.74978, 1)
+theme_override_font_sizes/font_size = 14
+text = "5 players online"