Show server name with player count to be joined in tooltip for 'Play Now' button

This commit is contained in:
2022-06-04 21:26:24 -05:00
parent c0eac0104b
commit 2531a20bab
2 changed files with 19 additions and 4 deletions

View File

@@ -203,12 +203,20 @@ class W3DHub
end
end
def play_now(app_id, channel)
def play_now_server(app_id, channel)
app_data = installed?(app_id, channel)
return false unless app_data
return nil unless app_data
server = Store.server_list.select { |server| server.game == app_id && server.channel == channel && !server.status.password }&.first
found_server = Store.server_list.select do |server|
server.game == app_id && server.channel == channel && !server.status.password
end&.first
found_server ? found_server : nil
end
def play_now(app_id, channel)
server = play_now_server(app_id, channel)
return false unless server

View File

@@ -152,9 +152,16 @@ class W3DHub
Store.application_manager.update(game.id, channel.id)
end
else
button "<b>#{I18n.t(:"interface.play")}</b>", fill: true, text_size: 32 do
play_now_server = Store.application_manager.play_now_server(game.id, channel.id)
play_now_button = button "<b>#{I18n.t(:"interface.play")}</b>", fill: true, text_size: 32, enabled: !play_now_server.nil? do
Store.application_manager.play_now(game.id, channel.id)
end
play_now_button.subscribe(:enter) do |btn|
server = Store.application_manager.play_now_server(game.id, channel.id)
btn.enabled = !server.nil?
btn.instance_variable_set(:"@tip", server ? "#{server.status.name} [#{server.status.player_count}/#{server.status.max_players}]" : "")
end
end
button get_image("#{GAME_ROOT_PATH}/media/ui_icons/singleplayer.png"), tip: I18n.t(:"interface.single_player"), image_height: 32, margin_left: 0 do