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?.()
|
||
}
|
||
}
|
||
|