mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2026-03-22 20:26:16 +00:00
Compare commits
6 Commits
f608f45f02
...
752bd2b026
| Author | SHA1 | Date | |
|---|---|---|---|
| 752bd2b026 | |||
| 8086ab59b9 | |||
| 948fcfda9a | |||
| daceb5d56d | |||
| e6eae4117f | |||
| a8c74095fe |
@@ -2,8 +2,9 @@ class W3DHub
|
|||||||
class Api
|
class Api
|
||||||
class ServerListServer
|
class ServerListServer
|
||||||
NO_OR_BAD_PING = 1_000_000
|
NO_OR_BAD_PING = 1_000_000
|
||||||
|
NO_OR_DEFAULT_VERSION = "838"
|
||||||
|
|
||||||
attr_reader :id, :game, :address, :port, :region, :channel, :ping, :status
|
attr_reader :id, :game, :address, :port, :region, :channel, :version, :ping, :status
|
||||||
|
|
||||||
def initialize(hash)
|
def initialize(hash)
|
||||||
@data = hash
|
@data = hash
|
||||||
@@ -14,6 +15,7 @@ class W3DHub
|
|||||||
@port = @data[:port]
|
@port = @data[:port]
|
||||||
@region = @data[:region]
|
@region = @data[:region]
|
||||||
@channel = @data[:channel] || "release"
|
@channel = @data[:channel] || "release"
|
||||||
|
@version = @data[:version] || NO_OR_DEFAULT_VERSION
|
||||||
@ping = NO_OR_BAD_PING
|
@ping = NO_OR_BAD_PING
|
||||||
|
|
||||||
@status = Status.new(@data[:status])
|
@status = Status.new(@data[:status])
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
class W3DHub
|
class W3DHub
|
||||||
# Maybe add remote game launch from server list app?
|
# Maybe add remote game launch from server list app?
|
||||||
class MulticastServer
|
# Maybe add intranet package delivery?
|
||||||
MULTICAST_ADDR = "224.87.51.68"
|
class BroadcastServer
|
||||||
PORT = 7050
|
PORT = 7050
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@@ -141,6 +141,8 @@ class W3DHub
|
|||||||
|
|
||||||
stack(width: 1.0, fill: true, scroll: true, margin_top: 32) do
|
stack(width: 1.0, fill: true, scroll: true, margin_top: 32) do
|
||||||
if Store.application_manager.installed?(game.id, channel.id)
|
if Store.application_manager.installed?(game.id, channel.id)
|
||||||
|
para "v#{Store.application_manager.installed?(game.id, channel.id)[:installed_version]}"
|
||||||
|
|
||||||
Hash.new.tap { |hash|
|
Hash.new.tap { |hash|
|
||||||
# hash[I18n.t(:"games.game_settings")] = { icon: "gear", block: proc { Store.application_manager.settings(game.id, channel.id) } }
|
# hash[I18n.t(:"games.game_settings")] = { icon: "gear", block: proc { Store.application_manager.settings(game.id, channel.id) } }
|
||||||
# hash[I18n.t(:"games.wine_configuration")] = { icon: "gear", block: proc { Store.application_manager.wine_configuration(game.id, channel.id) } } if W3DHub.unix?
|
# hash[I18n.t(:"games.wine_configuration")] = { icon: "gear", block: proc { Store.application_manager.wine_configuration(game.id, channel.id) } } if W3DHub.unix?
|
||||||
@@ -566,4 +568,4 @@ class W3DHub
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -333,7 +333,8 @@ class W3DHub
|
|||||||
para server&.status&.name, tag: :server_name, font: BOLD_FONT, text_wrap: :none
|
para server&.status&.name, tag: :server_name, font: BOLD_FONT, text_wrap: :none
|
||||||
|
|
||||||
flow(width: 1.0, height: 1.0) do
|
flow(width: 1.0, height: 1.0) do
|
||||||
para Store.application_manager.channel_name(server.game, server.channel).to_s, width: 172, margin_right: 8, tag: :server_channel
|
para server.version, margin_right: 8, tag: :server_version
|
||||||
|
para Store.application_manager.channel_name(server.game, server.channel).to_s, width: 148, margin_right: 8, tag: :server_channel
|
||||||
para server.region, tag: :server_region
|
para server.region, tag: :server_region
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -389,11 +390,12 @@ class W3DHub
|
|||||||
flow(width: 1.0, height: 46, margin_top: 16, margin_bottom: 16) do
|
flow(width: 1.0, height: 46, margin_top: 16, margin_bottom: 16) do
|
||||||
game_installed = Store.application_manager.installed?(server.game, server.channel)
|
game_installed = Store.application_manager.installed?(server.game, server.channel)
|
||||||
game_updatable = Store.application_manager.updateable?(server.game, server.channel)
|
game_updatable = Store.application_manager.updateable?(server.game, server.channel)
|
||||||
|
matching_version = game_installed[:installed_version] == server.version || server.version == Api::ServerListServer::NO_OR_DEFAULT_VERSION
|
||||||
channel = Store.application_manager.channel(server.game, server.channel)
|
channel = Store.application_manager.channel(server.game, server.channel)
|
||||||
style = ((channel && channel.user_level.downcase.strip == "public") || server.channel == "release") ? {} : TESTING_BUTTON
|
style = ((channel && channel.user_level.downcase.strip == "public") || server.channel == "release") ? {} : TESTING_BUTTON
|
||||||
|
|
||||||
flow(fill: true)
|
flow(fill: true)
|
||||||
button "<b>#{I18n.t(:"server_browser.join_server")}</b>", enabled: (game_installed && !game_updatable), **style do
|
button "<b>#{I18n.t(:"server_browser.join_server")}</b>", enabled: (game_installed && !game_updatable && matching_version), **style do
|
||||||
# Check for nickname
|
# Check for nickname
|
||||||
# prompt for nickname
|
# prompt for nickname
|
||||||
# !abort unless nickname set
|
# !abort unless nickname set
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ class W3DHub
|
|||||||
def launcher_updater
|
def launcher_updater
|
||||||
@status_label.value = "Checking for Launcher updates..." # I18n.t(:"boot.checking_for_updates")
|
@status_label.value = "Checking for Launcher updates..." # I18n.t(:"boot.checking_for_updates")
|
||||||
|
|
||||||
Api.on_thread(:fetch, "https://api.github.com/repos/Inq8/CAmod/releases/latest") do |response|
|
Api.on_thread(:fetch, "https://api.github.com/repos/cyberarm/w3d_hub_linux_launcher/releases/latest") do |response|
|
||||||
if response.status == 200
|
if response.status == 200
|
||||||
hash = JSON.parse(response.body, symbolize_names: true)
|
hash = JSON.parse(response.body, symbolize_names: true)
|
||||||
available_version = hash[:tag_name].downcase.sub("v", "")
|
available_version = hash[:tag_name].downcase.sub("v", "")
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ class W3DHub
|
|||||||
class Window < CyberarmEngine::Window
|
class Window < CyberarmEngine::Window
|
||||||
def setup
|
def setup
|
||||||
self.show_stats_plotter = false
|
self.show_stats_plotter = false
|
||||||
self.caption = I18n.t(:app_name)
|
self.caption = "#{I18n.t(:app_name)} v#{VERSION}"
|
||||||
|
|
||||||
Store[:server_list] = []
|
Store[:server_list] = []
|
||||||
Store[:settings] = Settings.new
|
Store[:settings] = Settings.new
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ require_relative "lib/cache"
|
|||||||
require_relative "lib/settings"
|
require_relative "lib/settings"
|
||||||
require_relative "lib/mixer"
|
require_relative "lib/mixer"
|
||||||
require_relative "lib/ico"
|
require_relative "lib/ico"
|
||||||
require_relative "lib/multicast_server"
|
require_relative "lib/broadcast_server"
|
||||||
require_relative "lib/hardware_survey"
|
require_relative "lib/hardware_survey"
|
||||||
require_relative "lib/game_settings"
|
require_relative "lib/game_settings"
|
||||||
require_relative "lib/background_worker"
|
require_relative "lib/background_worker"
|
||||||
|
|||||||
Reference in New Issue
Block a user