50 lines
1.4 KiB
TypeScript
50 lines
1.4 KiB
TypeScript
|
// v1.0 2024/12/01
|
|||
|
// Soyoo facade to handle assets network transfroming.
|
|||
|
export enum SoyooLifecyle {
|
|||
|
Ready = 100, // 游戏初始化完成
|
|||
|
Start = 200, // 游戏正式开始
|
|||
|
Pause = 300, // 游戏暂停
|
|||
|
Resume = 400, // 游戏从暂停恢复
|
|||
|
Complete = 500, // 游戏结束, 全部完成
|
|||
|
}
|
|||
|
|
|||
|
interface ISoyooFacadeImpl {
|
|||
|
onLifecyleReport(lifecycle: SoyooLifecyle): void
|
|||
|
onGameInstall(): void
|
|||
|
}
|
|||
|
|
|||
|
// Only support web now.
|
|||
|
let soyooFacadeImpl: ISoyooFacadeImpl;
|
|||
|
|
|||
|
(function() {
|
|||
|
const window = globalThis;
|
|||
|
const global = globalThis;
|
|||
|
const self = globalThis;
|
|||
|
|
|||
|
(function() {
|
|||
|
if ((window as any)?.$soyooFacadeImpl) {
|
|||
|
soyooFacadeImpl = (window as any)?.$soyooFacadeImpl
|
|||
|
console.log("SoyooFacade inited")
|
|||
|
} else {
|
|||
|
console.warn("soyooFacadeImpl not provided")
|
|||
|
}
|
|||
|
}).call(this);
|
|||
|
|
|||
|
}).call(this);
|
|||
|
|
|||
|
// 渠道转换的中间协议
|
|||
|
export class SoyooFacade {
|
|||
|
// 在游戏相应的生命周期时,调用该方法。其中Ready/Start/Complete必须调用
|
|||
|
static ReportLifeCycle(lifecycle: SoyooLifecyle) {
|
|||
|
console.log("[SoyooFacade] ReportLifeCycle: " + lifecycle)
|
|||
|
soyooFacadeImpl?.onLifecyleReport?.(lifecycle)
|
|||
|
}
|
|||
|
|
|||
|
// 当用户点击并需要跳转到商店下载页面时,调用该方法。
|
|||
|
static InstallGame() {
|
|||
|
console.log("[SoyooFacade] InstallGame")
|
|||
|
soyooFacadeImpl?.onGameInstall?.()
|
|||
|
}
|
|||
|
}
|
|||
|
|