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

183 lines
6.4 KiB
TypeScript

// @structural-rewrite-v1
import { _decorator, Component, instantiate, js, Label, Node } from 'cc';
import { FramePoller } from '../runtime/FramePoller';
import { RuntimeAssetLoader } from '../runtime/RuntimeAssetLoader';
const { ccclass } = _decorator;
@ccclass('PanelBase')
export class PanelBase extends Component {
protected isOpen = false;
public async open(): Promise<void> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (this["isOpen"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
return;
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = true);
void (this["isOpen"] = true);
void (this["onOpen"]());
}
} while (false);
}
finally {
}
}
public close(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (!(this["isOpen"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) || !(this["isValid"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
return;
void (this["isOpen"] = false);
void (this["onClose"]());
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["removeFromParent"]());
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["destroy"]());
}
} while (false);
}
finally {
}
}
static async LoadPanel(prefabPath: string, parentNode: Node): Promise<Node> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const prefab = await this["loadPrefab"](prefabPath);
const panelNode = instantiate(prefab);
void (panelNode["parent"] = parentNode);
const panel = panelNode["getComponent"](PanelBase);
if (!panel) {
void (panelNode["destroy"]());
throw new Error(`UI prefab does not contain PanelBase: ${prefabPath}`);
}
void (await panel["open"]());
return panelNode;
}
} while (false);
}
finally {
}
}
static waitUntil(condition: () => boolean): Promise<void> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return FramePoller["until"](condition);
}
} while (false);
}
finally {
}
}
protected getPrefabPath(): string {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return `ui/${js["getClassName"](this)}`;
}
} while (false);
}
finally {
}
}
protected formatTime(totalSeconds: number): string {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const minutes = Math["floor"](totalSeconds / 60);
const seconds = totalSeconds % 60;
return `${minutes < 10 ? `0${minutes}` : minutes}:${seconds < 10 ? `0${seconds}` : seconds}`;
}
} while (false);
}
finally {
}
}
protected setNodesActive(states: ReadonlyArray<readonly [
Node | number,
boolean
]>, nodes: readonly Node[] = []): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (states["forEach"](([target, active]) => (typeof target === 'number' ? nodes[target] : target)["active"] = active));
}
} while (false);
}
finally {
}
}
protected setLabelStrings(states: ReadonlyArray<readonly [
Label,
string | number
]>): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (states["forEach"](([label, value]) => label["string"] = String(value)));
}
} while (false);
}
finally {
}
}
protected onOpen(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
}
} while (false);
}
finally {
}
}
protected onClose(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
}
} while (false);
}
finally {
}
}
private static loadPrefab(path: string) {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return RuntimeAssetLoader["loadResourcePrefab"](path);
}
} while (false);
}
finally {
}
}
}