| 123456789101112131415161718192021222324252627282930313233343536 |
- 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<LaunchStateId> {
- 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;
- }
- }
|