import { SceneId } from '../../../framework/scene/SceneNavigator'; import { LaunchContext, LaunchState, LaunchStateId } from './LaunchState'; export class PreloadLobbyState implements LaunchState { readonly id = LaunchStateId.PreloadLobby; async enter(context: LaunchContext): Promise { const i18n = context.kernel.i18n; context.progress({ state: this.id, title: i18n.t('launch.preload_res') }); const kernel = context.kernel; try { await Promise.all([ await kernel.sound.preload(), await kernel.scenes.preload(SceneId.Lobby, { onProgress: (percent) => { context.progress({ state: this.id, progress: percent }); } }), ]); } catch (error) { context.error = error; const retry = await context.dialog({ title: "", message: i18n.t('launch.res_load_fail'), lblOK: i18n.t('launch.retry'), }); if (retry) { return LaunchStateId.CheckVersion; } throw error; } context.progress({ state: this.id, progress: 1 }); return LaunchStateId.EnterLobby; } }