JOIN button now pulls up a dialog with the auto selected game server to confirm player wants to join that server; TODO: If only one server exists then join that one directly, if multiple exist the offer the 'best' three or something, don't crash if we somehow get a server update without the server list being nil

This commit is contained in:
2026-10-15 11:34:17 -05:00
parent 936b1ae5d9
commit e344a492e0
4 changed files with 42 additions and 32 deletions

View File

@@ -4,32 +4,38 @@ module W3DHubLauncher
def setup
super
application = @options[:application]
server = @options[:server]
stack(width: 1.0, max_width: 600, height: 1.0, max_height: 600, style_class: [:dialog]) do
flow(width: 1.0, background_nine_slice: NINE_SLICE_ROUNDED_TOP, background_nine_slice_from_edge: NINE_SLICE_EDGE, background_nine_slice_color: 0) do
banner "Downloads", width: 1.0, text_align: :center
banner "Join Server", width: 1.0, text_align: :center
title server.name, width: 1.0, text_align: :center
end
stack(style_class: [:dialog_container]) do
50.times do
stack(width: 1.0, margin_top: HALF_PADDING, margin_bottom: HALF_PADDING) do
flow(width: 1.0) do
para "PACKAGE_NAME.mix"
flow(fill: true)
para ["Downloading...", "Pending...", "Done.", "Patching...", "Unpacking..."].sample
end
progress(width: 1.0, fraction: rand)
end
end
caption "Ping: #{server.ping}ms"
caption "Region: #{server.region}"
caption "Players: #{server.player_count} / #{server.max_players}", margin_bottom: HALF_PADDING
caption "Current Map: #{server.current_map}"
caption "Next Map: #{server.next_map}", margin_bottom: HALF_PADDING
caption "Time Elapsed: #{server.time_elapsed}"
caption "Time Remaining: #{server.time_remaining}"
end
flow(width: 1.0, padding: PADDING, background_nine_slice: NINE_SLICE_ROUNDED_BOTTOM, background_nine_slice_from_edge: NINE_SLICE_EDGE, background_nine_slice_color: 0) do
flow(fill: true)
button "Close", **CTA_BUTTON_THEME do
button "Cancel" do
pop_state
end
flow(fill: true)
button "Join", **CTA_BUTTON_THEME do
pop_state
ApplicationHelper.join_server(application, server)
end
end
end
end