mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2026-11-04 09:04:04 +00:00
Make StartUp state wait for websocket based server listing from GSH, make ServerBrowser update server data in list
This commit is contained in:
@@ -23,74 +23,6 @@ module W3DHubLauncher
|
||||
|
||||
stack(width: 1.0, fill: true, padding: PADDING) do
|
||||
@initialization_container = stack(width: 1.0, fill: true, scroll: true) do
|
||||
# a = flow(width: 1.0, height: HALF_PADDING + PADDING, visible: false) do
|
||||
# image safe_get_image("#{ROOT_PATH}/media/icons/checkmark.png"), height: 1.0, v_align: :center
|
||||
# tagline "DNS resolution", height: 1.0, text_v_align: :center
|
||||
# end
|
||||
# after(500) do
|
||||
# a.show
|
||||
# end
|
||||
# b = flow(width: 1.0, height: HALF_PADDING + PADDING, visible: false) do
|
||||
# image safe_get_image("#{ROOT_PATH}/media/icons/information.png"), height: 1.0, v_align: :center, color: 0xff_ff8800
|
||||
# tagline "Upstream backend", height: 1.0, text_v_align: :center
|
||||
# caption "Notice: Unreachable. Accounts will be unavailable.", height: 1.0, text_v_align: :center, color: 0xff_ff8800
|
||||
# end
|
||||
# after(1000) do
|
||||
# b.show
|
||||
# end
|
||||
# c = flow(width: 1.0, height: HALF_PADDING + PADDING, visible: false) do
|
||||
# image safe_get_image("#{ROOT_PATH}/media/icons/checkmark.png"), height: 1.0, v_align: :center
|
||||
# tagline "Alternate backend", height: 1.0, text_v_align: :center
|
||||
# end
|
||||
# after(1500) do
|
||||
# c.show
|
||||
# end
|
||||
# d = flow(width: 1.0, height: HALF_PADDING + PADDING, visible: false) do
|
||||
# image safe_get_image("#{ROOT_PATH}/media/icons/information.png"), height: 1.0, v_align: :center, color: 0xff_ff8800
|
||||
# tagline "Refresh account session", height: 1.0, text_v_align: :center
|
||||
# caption "Notice: Upstream backend unavailable, session not refreshed.", height: 1.0, text_v_align: :center, color: 0xff_ff8800
|
||||
# end
|
||||
# after(2000) do
|
||||
# d.show
|
||||
# end
|
||||
# e = flow(width: 1.0, height: HALF_PADDING + PADDING, visible: false) do
|
||||
# image safe_get_image("#{ROOT_PATH}/media/icons/checkmark.png"), height: 1.0, v_align: :center
|
||||
# tagline "Fetch game servers", height: 1.0, text_v_align: :center
|
||||
# end
|
||||
# after(2500) do
|
||||
# e.show
|
||||
# end
|
||||
# f = flow(width: 1.0, height: HALF_PADDING + PADDING, visible: false) do
|
||||
# image safe_get_image("#{ROOT_PATH}/media/icons/cross.png"), height: 1.0, v_align: :center, color: 0xff_ff0000
|
||||
# tagline "Fetch applications", height: 1.0, text_v_align: :center
|
||||
# caption "Fatal: Failed to retrieve applications list and no local cache exists. Cannot continue.", height: 1.0, text_v_align: :center, color: 0xff_ff0000
|
||||
# end
|
||||
# after(3000) do
|
||||
# puts "HELLO"
|
||||
# W3DHubLauncher::Worker::Request.new(:w3dhub_api_call, { call: :fetch_applications }) do |result|
|
||||
# # pp [:CALLBACK, result]
|
||||
# File.write("applications.json", result.data)
|
||||
# hash = JSON.parse(result.data)
|
||||
# applications = hash["applications"]&.map { |app| W3DHubLauncher::Worker::Api::Application.new(app) } || []
|
||||
# # pp applications.to_json
|
||||
|
||||
# MemCache[:applications] = applications
|
||||
# end
|
||||
|
||||
# f.show
|
||||
# @progress_bar.type = :linear
|
||||
# @progress_bar.value = 0.0
|
||||
# end
|
||||
|
||||
# after(35000) do
|
||||
# parent.page_host.clear do
|
||||
# banner "Battlefield control established".upcase, width: 1.0, height: 1.0, text_v_align: :center, text_align: :center
|
||||
# end
|
||||
# end
|
||||
# after(36000) do
|
||||
# pop_state
|
||||
# push_state(States::Interface)
|
||||
# end
|
||||
end
|
||||
|
||||
flow(width: 1.0, padding_top: PADDING) do
|
||||
@@ -153,18 +85,21 @@ module W3DHubLauncher
|
||||
tagline "Requesting server listing..."
|
||||
end
|
||||
|
||||
Worker::Api.servers do |result|
|
||||
@initialization_container.append do
|
||||
if result.okay?
|
||||
MemCache[:servers] = JSON.parse(result.data).map { |s| Worker::Api::GameServer.new(s) }
|
||||
counter = 0
|
||||
every(1000) do
|
||||
if !MemCache[:servers].nil? || counter >= 5
|
||||
@initialization_container.append do
|
||||
if MemCache[:servers]
|
||||
caption "Received #{MemCache[:servers].size} servers <c=0f0>OK</c>", margin_left: LARGE_PADDING
|
||||
else
|
||||
caption "Failed to retrieve server listing.", color: 0xff_ff8800, margin_left: LARGE_PADDING
|
||||
end
|
||||
|
||||
caption "Received #{MemCache[:servers].size} servers <c=0f0>OK</c>", margin_left: LARGE_PADDING
|
||||
else
|
||||
caption "Failed to retrieve server listing.", color: 0xff_ff8800, margin_left: LARGE_PADDING
|
||||
next_step
|
||||
end
|
||||
|
||||
next_step
|
||||
end
|
||||
|
||||
counter += 1
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user