86 lines
2.9 KiB
TypeScript
86 lines
2.9 KiB
TypeScript
// @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 {
|
|
}
|
|
}
|
|
}
|