adding basic modal system

This commit is contained in:
Martin
2022-11-17 18:28:39 +01:00
parent 3c39653e47
commit 94605e673e
18 changed files with 1768 additions and 69 deletions

View File

@@ -0,0 +1,21 @@
import { Component, instantiate, Node, Prefab, _decorator } from "cc";
import { ModalWindow } from "./ModalWindow";
const { ccclass, property } = _decorator;
@ccclass("ModalWindowManager")
export class ModalWindowManager extends Component {
@property(Prefab) private availableWindows: Prefab[] = [];
public async showModal<TParams, TResult>(name: string, params: TParams): Promise<TResult> {
const windowPrefab: Prefab = this.availableWindows.find((w) => w.name === name);
const windowNode: Node = instantiate(windowPrefab);
windowNode.setParent(this.node);
const modalWindow: ModalWindow<TParams, TResult> = <ModalWindow<TParams, TResult>>windowNode.getComponent(name);
const result: TResult = await modalWindow.runAsync(params);
windowNode.destroy();
return result;
}
}