mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2026-11-03 16:44:05 +00:00
Update worker game server updater to prefix eventbus events with 'game_', make Window handle worker's game server updater events
This commit is contained in:
@@ -10,6 +10,38 @@ module W3DHubLauncher
|
|||||||
MemCache[:game_server_pings] = payload
|
MemCache[:game_server_pings] = payload
|
||||||
end
|
end
|
||||||
|
|
||||||
|
CyberarmEngine::EventBus.subscribe("game_server_list", self) do |payload|
|
||||||
|
MemCache[:servers] = payload.map { |server| Worker::Api::GameServer.new(server) }
|
||||||
|
end
|
||||||
|
|
||||||
|
CyberarmEngine::EventBus.subscribe("game_server_added", self) do |payload|
|
||||||
|
existing_game_server = MemCache[:servers]&.find { |s| s.id == payload["id"] }
|
||||||
|
game_server = Worker::Api::GameServer.new(payload)
|
||||||
|
|
||||||
|
if existing_game_server
|
||||||
|
MemCache[:servers][MemCache[:servers].index(existing_game_server)] = game_server
|
||||||
|
else
|
||||||
|
MemCache[:servers] << game_server
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
CyberarmEngine::EventBus.subscribe("game_server_updated", self) do |payload|
|
||||||
|
existing_game_server = MemCache[:servers]&.find { |s| s.id == payload["id"] }
|
||||||
|
game_server = Worker::Api::GameServer.new(payload)
|
||||||
|
|
||||||
|
if existing_game_server
|
||||||
|
MemCache[:servers][MemCache[:servers].index(existing_game_server)] = game_server
|
||||||
|
else
|
||||||
|
MemCache[:servers] << game_server
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
CyberarmEngine::EventBus.subscribe("game_server_removed", self) do |payload|
|
||||||
|
game_server = MemCache[:servers]&.find { |s| s.id == payload["id"] }
|
||||||
|
|
||||||
|
MemCache[:servers].delete(game_server) if game_server
|
||||||
|
end
|
||||||
|
|
||||||
push_state(States::Boot)
|
push_state(States::Boot)
|
||||||
# push_state(States::Interface)
|
# push_state(States::Interface)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -136,12 +136,12 @@ module W3DHubLauncher
|
|||||||
else # add
|
else # add
|
||||||
@game_servers << game_server
|
@game_servers << game_server
|
||||||
end
|
end
|
||||||
broadcast(hash["type"].to_sym, data: hash["data"])
|
broadcast(:"game_#{hash["type"]}", data: hash["data"])
|
||||||
|
|
||||||
when "server_removed"
|
when "server_removed"
|
||||||
game_server = @game_servers.find { |s| s.id == hash["data"]["id"] }
|
game_server = @game_servers.find { |s| s.id == hash["data"]["id"] }
|
||||||
@game_servers.delete(game_server) if game_server
|
@game_servers.delete(game_server) if game_server
|
||||||
broadcast(hash["type"].to_sym, data: hash["data"]["id"])
|
broadcast(:"game_#{hash["type"]}", data: hash["data"])
|
||||||
|
|
||||||
when "server_details"
|
when "server_details"
|
||||||
# TODO
|
# TODO
|
||||||
|
|||||||
Reference in New Issue
Block a user