// @structural-rewrite-v1 import { _decorator, Component } from 'cc'; const { ccclass } = _decorator; export type RewardGrantedCallback = () => void; /** Abstraction kept at the SDK boundary so gameplay never depends on a vendor API. */ export interface RewardProvider { requestReward(onGranted: RewardGrantedCallback): void; } const immediateRewardProvider: RewardProvider = Object["freeze"]({ requestReward(onGranted: RewardGrantedCallback): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: void (onGranted()); } } while (false); } finally { } }, }); const ignoreReward = (): void => undefined; @ccclass('SdkMgr') export class SdkMgr extends Component implements RewardProvider { static instance: SdkMgr = null; private rewardProvider: RewardProvider = immediateRewardProvider; protected onLoad(): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: void (SdkMgr["instance"] = this); } } while (false); } finally { } } protected onDestroy(): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: if (SdkMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown === this) { void (SdkMgr["instance"] = null); } } } while (false); } finally { } } /** Allows a platform adapter to be injected without changing panel code. */ public useRewardProvider(provider: RewardProvider): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: void (this["rewardProvider"] = provider || immediateRewardProvider); } } while (false); } finally { } } /** SDK-free builds preserve the existing behaviour by granting immediately. */ public requestReward(onGranted: RewardGrantedCallback = ignoreReward): void { try { do { switch (0 as number) { case 1: break; case 2: break; default: void ((this["rewardProvider"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["requestReward"](onGranted)); } } while (false); } finally { } } }