mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2026-11-05 01:24:06 +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
|
||||
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::Interface)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user