aboutsummaryrefslogtreecommitdiff
path: root/client/gui/menus/main/server_list_item.gd
blob: 0cffdd72a319149b86ac4895a526a05f6a4a8094 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 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://gui/resources/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])
	
	# This node is in group not no_click_sound, so sounds won't be automatically connected
	# by menu system. Reason: These nodes are deleted and re-created every few seconds
	# in server list, and signals are only connected on ready.
	button.pressed.connect(Sound.play_click)
	button.mouse_entered.connect(Sound.play_hover)