diff --git a/lib/pages/games.rb b/lib/pages/games.rb index ce116e7..1d72dc0 100644 --- a/lib/pages/games.rb +++ b/lib/pages/games.rb @@ -3,7 +3,8 @@ class W3DHub class Games < Page def setup @game_news ||= {} - @focused_game ||= Store.applications.games.first + @focused_game ||= Store.applications.games.find { |g| g.id == Store.settings[:last_selected_app] } + @focused_channel ||= @focused_game.channels.find { |c| c.id == Store.settings[:last_selected_channel] } body.clear do # Games List @@ -15,7 +16,7 @@ class W3DHub end end - populate_game_page(@focused_game, @focused_game.channels.first) + populate_game_page(@focused_game, @focused_channel) populate_games_list end @@ -35,8 +36,9 @@ class W3DHub flow(width: 1.0, height: 48) do stack(width: 0.3) do image "#{GAME_ROOT_PATH}/media/ui_icons/return.png", width: 1.0, color: Gosu::Color::GRAY if Store.application_manager.updateable?(game.id, game.channels.first.id) + image "#{GAME_ROOT_PATH}/media/ui_icons/import.png", width: 0.5, color: 0x88_ffffff unless Store.application_manager.installed?(game.id, game.channels.first.id) end - image "#{GAME_ROOT_PATH}/media/icons/#{game.id}.png", height: 48, color: Store.application_manager.installed?(game.id, game.channels.first.id) ? 0xff_ffffff : 0xee_444444 + image "#{GAME_ROOT_PATH}/media/icons/#{game.id}.png", height: 48, color: Store.application_manager.installed?(game.id, game.channels.first.id) ? 0xff_ffffff : 0x88_ffffff end inscription game.name, width: 1.0, text_align: :center end @@ -55,6 +57,10 @@ class W3DHub def populate_game_page(game, channel) @focused_game = game + @focused_channel = channel + + Store.settings[:last_selected_app] = game.id + Store.settings[:last_selected_channel] = channel.id @game_page_container.clear do background game.color @@ -123,7 +129,7 @@ class W3DHub if Store.application_manager.installed?(game.id, channel.id) if Store.application_manager.updateable?(game.id, channel.id) - button "#{I18n.t(:"interface.update_now")}", margin_left: 24, background: 0xff_ffac00 do + button "#{I18n.t(:"interface.install_update")}", margin_left: 24, **UPDATE_BUTTON do Store.application_manager.update(game.id, channel.id) end else diff --git a/lib/pages/server_browser.rb b/lib/pages/server_browser.rb index c8224a6..f1fbecc 100644 --- a/lib/pages/server_browser.rb +++ b/lib/pages/server_browser.rb @@ -128,6 +128,7 @@ class W3DHub Store.server_list.each do |server| next unless @filters[server.game.to_sym] next unless server.region == @filter_region || @filter_region == "Any" + next unless server.channel == "release" i += 1 @@ -203,10 +204,11 @@ class W3DHub end stack(width: 1.0, height: 0.25) do - game_installed = Store.application_manager.installed?(server.game, Store.applications.games.find { |g| g.id == server.game }&.channels&.find { |c| c.id == server.channel }&.id) - game_updatable = Store.application_manager.updateable?(server.game, Store.applications.games.find { |g| g.id == server.game }&.channels&.find { |c| c.id == server.channel }&.id) + game_installed = Store.application_manager.installed?(server.game, server.channel) + game_updatable = Store.application_manager.updateable?(server.game, server.channel) + style = server.channel != "release" ? TESTING_BUTTON : {} - button "#{I18n.t(:"server_browser.join_server")}", enabled: (game_installed && !game_updatable) do + button "#{I18n.t(:"server_browser.join_server")}", enabled: (game_installed && !game_updatable), **style do # Check for nickname # prompt for nickname # !abort unless nickname set @@ -427,7 +429,7 @@ class W3DHub Store.application_manager.join_server( server.game, - Store.applications.games.find { |g| g.id == server.game }.channels.first.id, server, password + server.channel, server, password ) else window.push_state(W3DHub::States::MessageDialog, type: "?", title: "?", message: "?") diff --git a/lib/settings.rb b/lib/settings.rb index 352a027..b1732db 100644 --- a/lib/settings.rb +++ b/lib/settings.rb @@ -13,7 +13,9 @@ class W3DHub server_list_region: "Any", account: {}, applications: {}, - games: {} + games: {}, + last_selected_app: "ren", + last_selected_channel: "release" } end diff --git a/lib/theme.rb b/lib/theme.rb index 30761c7..4d10018 100644 --- a/lib/theme.rb +++ b/lib/theme.rb @@ -2,6 +2,18 @@ class W3DHub REGULAR_FONT = "#{GAME_ROOT_PATH}/media/fonts/NotoSans-Regular.ttf" BOLD_FONT = "#{GAME_ROOT_PATH}/media/fonts/NotoSans-Bold.ttf" + TESTING_BUTTON = { + background: 0xff_ff8800, + hover: { + background: 0xff_ffaa00 + }, + active: { + background: 0xff_ffec00 + } + } + + UPDATE_BUTTON = TESTING_BUTTON + THEME = { ToolTip: { background: 0xff_dedede, diff --git a/locales/en.yml b/locales/en.yml index 074aeb9..b40ac11 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -15,7 +15,7 @@ en: community: Community download_manager: Download Manager play_now: Play Now - update_now: Update Now + install_update: Install Update single_player: Single Player import: Import install: Install