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 { // 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(key, id, objType):T { let cfg = this.config.get(key); return new objType(id, cfg[id]); } }