1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { jsonNames } from "./ConfigDef";
- export class ConfigMgr {
- private static _inst: ConfigMgr;
- public static get inst(): ConfigMgr {
- if (this._inst == null) {
- this._inst = new ConfigMgr();
- }
- return this._inst;
- }
- config: cc.AssetManager.Cache = new cc.AssetManager.Cache();
- init(): Promise<any> {
- // if(CC_DEBUG){
- let arr = jsonNames.map(v=>{ return 'json/' + v + '.json'});
- let task = [];
- arr.forEach((v,k)=>{
- let p = new Promise((resolve:any)=>{
- cc.assetManager.loadRemote(v, (err, res: cc.JsonAsset)=>{
- if(res){
- this.config.add(jsonNames[k], res.json);
- cc.assetManager.releaseAsset(res);
- }
- resolve();
- })
- });
- task.push(p);
- })
- return Promise.all(task);
- // }
- // else{
- // let arr = jsonNames.map(v=>{ return 'json/'+ v});
- // return new Promise((resolve:any)=>{
- // cc.resources.load(arr, cc.JsonAsset, (err, res)=>{
- // if(res){
- // res.forEach((v, k)=>{
- // this.config.add(jsonNames[k], v.json);
- // cc.assetManager.releaseAsset(v);
- // });
- // }
- // resolve();
- // })
- // });
- // }
- }
- getCfgKeys(key){
- let cfg = this.config.get(key);
- return Object.keys(cfg);
- }
- getCfgById(key, id){
- let cfg = this.config.get(key);
- return cfg[id];
- }
- getCfgClassById<T>(key, id, objType):T {
- let cfg = this.config.get(key);
- return new objType(id, cfg[id]);
- }
- }
|