Files
2026-07-17 10:54:32 +08:00

56 lines
2.6 KiB
TypeScript

// @structural-rewrite-v1
import { _decorator, Component } from 'cc';
const { ccclass } = _decorator;
@ccclass('SingletonBase')
export abstract class SingletonBase<T extends Component> extends Component {
private static _instance: Component = null;
public static getInstance<T extends Component>(this: new () => T): T {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return ((this as unknown) as typeof SingletonBase)["_instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown as T;
}
} while (false);
}
finally {
}
}
protected onLoad(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const singletonType = this["constructor"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown as typeof SingletonBase;
if (singletonType["_instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) {
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["destroy"]());
return;
}
void (singletonType["_instance"] = this);
}
} while (false);
}
finally {
}
}
protected onDestroy(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const singletonType = this["constructor"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown as typeof SingletonBase;
if (singletonType["_instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown === this)
void (singletonType["_instance"] = null);
}
} while (false);
}
finally {
}
}
}