ca0f1935-b748-48c8-99d1-b14ac848657e.js.map 5.86 KB
{"version":3,"sources":["assets/script/game/ui/PresenterCCViewFactory.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { Presenter, setPresenterViewFactory, Subpresenter, setSubpresenterwFactory } from \"../../common/classbase/PresenterBase\";\nimport { ResUtils } from \"simba-cc-resutils\";\nimport { CCView, CCSubview } from \"../../common/classbase/CCViewBase\";\nimport { Subview } from \"../../common/classbase/ViewBase\";\n\nconst PresenterMap: { [key: string]: string } = {};\nconst ViewMap: { [key: string]: { cls: { new(): CCView }, prefab: string } } = {};\n\nexport function RegPresenter(viewType: string) {\n    return function (target: { new(): Presenter<any, any>, uuid: string }) {\n        PresenterMap[target.uuid] = viewType;\n    }\n}\n\nexport function RegView(viewType: string, prefabPath: string) {\n    return function (target: { new(): CCView }) {\n        ViewMap[viewType] = { cls: target, prefab: prefabPath };\n    }\n}\n\nconst ViewTypeSubviewMap: { [key: string]: { cls: { new(): CCSubview } } } = {};\nconst ViewTypeSubpresenterMap: { [key: string]: { cls: { new(): Subpresenter } } } = {};\n\nexport function RegSubpresenter(viewType: string) {\n    return function (target: { new(): Subpresenter }) {\n        ViewTypeSubpresenterMap[viewType] = { cls: target };\n        Object.defineProperty(target, \"_viewType\", { configurable: false, enumerable: false, value: viewType, writable: false });\n    }\n}\n\nexport function RegSubview(viewType: string) {\n    return function (target: { new(): CCSubview }) {\n        ViewTypeSubviewMap[viewType] = { cls: target };\n        Object.defineProperty(target, \"_viewType\", { configurable: false, enumerable: false, value: viewType, writable: false });\n    }\n}\n\nlet factory: any = async (presenterCls) => {\n    let ret = ViewMap[PresenterMap[presenterCls.uuid]];\n    if (ret) {\n        let node = await ResUtils.createWithPrefab(ret.prefab);\n        let comp = node.getComponent(ret.cls);\n        if (!comp) {\n            comp = node.addComponent(ret.cls);\n        }\n        return comp;\n    }\n\n    throw new Error(\"Create view failed. \" + presenterCls.uuid);\n};\n\nfactory.preloadView = async (presenterCls: { new(): Presenter, uuid: string }) => {\n    let ret = ViewMap[PresenterMap[presenterCls.uuid]];\n    if (ret) {\n        await ResUtils.loadRes(ret.prefab, cc.Prefab);\n    }\n}\n\nsetPresenterViewFactory(factory);\n\n// setSubviewFactory(async (p: Subpresenter) => {\n//     if (p.view) throw new Error(\"Subpresenter already has view.\");\n//     const viewType = p.constructor[\"_viewType\"];\n//     if (!viewType) throw new Error(\"Subpresenter not registered.\");\n//     if (!ViewTypeSubviewMap[viewType]) throw new Error(\"Subview not registered. \" + viewType);\n//     const data = ViewTypeSubviewMap[viewType];\n//     if (!data.prefab) throw new Error(\"Subview prefab not registered. \" + viewType);\n//     let node = await ResUtils.createWithPrefab(data.prefab);\n//     let ret = node.getComponent(data.cls);\n//     if (!ret) {\n//         ret = node.addComponent(data.cls);\n//     }\n//     p.attachView(ret);\n//     return ret;\n// });\n\nsetSubpresenterwFactory((v: Subview) => {\n    const viewType = v.constructor[\"_viewType\"];\n    if (!viewType) throw new Error(\"Subview not registered.\");\n    let data = ViewTypeSubpresenterMap[viewType];\n    if (!data) throw new Error(\"Subpresenter not registered for view type. \" + viewType);\n    let presenter = new data.cls;\n    presenter.attachView(v);\n    return presenter;\n});"]}