// @structural-rewrite-v1 import { _decorator, Component } from 'cc'; const { ccclass } = _decorator; @ccclass('SingletonBase') export abstract class SingletonBase extends Component { private static _instance: Component = null; public static getInstance(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 { } } }