diff options
Diffstat (limited to 'client/menu/play.gd')
-rw-r--r-- | client/menu/play.gd | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/client/menu/play.gd b/client/menu/play.gd index 05105ced..25645522 100644 --- a/client/menu/play.gd +++ b/client/menu/play.gd @@ -15,6 +15,7 @@ # extends Menu +var server_list_item: PackedScene = preload("res://menu/ui_elements/server_list_item.tscn") var url_regex: RegEx = RegEx.new() @onready var server_list: VBoxContainer = $side/margin/options/second/ScrollContainerCustom/ServerList @@ -63,7 +64,7 @@ func update_server_list(lists: Array[Array]): # Find out the index of the currently focused server in the list var prev_selected_idx := -1 for i in range(server_list.get_children().size()): - if server_list.get_child(i).has_focus(): + if server_list.get_child(i).button.has_focus(): prev_selected_idx = i break @@ -73,17 +74,14 @@ func update_server_list(lists: Array[Array]): var idx := 0 for l in lists: for i in l: - var b := Button.new() - b.text_overrun_behavior = TextServer.OVERRUN_TRIM_WORD_ELLIPSIS - b.text = tr("c.menu.play.list_item").format([i.name, roundi(i.players_online)]) + var server_item: ServerListItem = server_list_item.instantiate() + server_list.add_child(server_item) # TODO: Implement fallback address correctly - if i.version[0] != Multiplayer.VERSION_MAJOR or i.version[1] > Multiplayer.VERSION_MINOR: - b.disabled = true - b.pressed.connect(connect_to.bind(i.address[0])) - server_list.add_child(b) + server_item.setup(i.name, roundi(i.players_online), i.version) + server_item.button.pressed.connect(connect_to.bind(i.address[0])) # Focus the same server with the same index as the previously focused one if idx == prev_selected_idx: - b.grab_focus() + server_item.button.grab_focus() idx += 1 if prev_selected_idx > idx: @@ -91,7 +89,7 @@ func update_server_list(lists: Array[Array]): if idx - 1 < 0: connect_uri.grab_focus() else: - server_list.get_child(idx - 1).grab_focus() + server_list.get_child(idx - 1).button.grab_focus() # Show message if no servers available server_list_empty.visible = idx == 0 |