/** * 配置表管理 */ let ConfigBase = require('ConfigBase') let CfgMgr = { init () { if (CC_EDITOR) { return; } this.loadFinishCb = null this.updateLoadCb = null this.configs = { BattleBoxAwardConfig: new ConfigBase().initTable("BattleBoxAwardConfig", "", ["boxId", "itemId"]), BattleBoxConfig: new ConfigBase().initTable("BattleBoxConfig", "boxId"), BattleBoxTypeConfig: new ConfigBase().initTable("BattleBoxTypeConfig", "ty"), BattleConstConfig: new ConfigBase().initTable("BattleConstConfig", "main_key"), BlindBoxAwardConfig: new ConfigBase().initTable("BlindBoxAwardConfig", "", ["boxId", "itemId"]), BlindBoxConfig: new ConfigBase().initTable("BlindBoxConfig", "boxId"), BlindBoxConstConfig: new ConfigBase().initTable("BlindBoxConstConfig", "main_key"), BlindBoxTypeConfig: new ConfigBase().initTable("BlindBoxTypeConfig", "ty"), DreamBox: new ConfigBase().initTable("DreamBox", "dreamBoxId"), DreamBoxAward: new ConfigBase().initTable("DreamBoxAward", "DreamBoxId", ["DreamBoxId"]), DreamConstConfig: new ConfigBase().initTable("DreamConstConfig", "main_key"), GoodsConfig: new ConfigBase().initTable("GoodsConfig", "id"), ResItemConfig: new ConfigBase().initTable("ResItemConfig", "id"), ResItemModelConfig: new ConfigBase().initTable("ResItemModelConfig", "id"), ResItemModelTypeConfig: new ConfigBase().initTable("ResItemModelTypeConfig", "id"), ResItemQualityConfig: new ConfigBase().initTable("ResItemQualityConfig", "id"), ResItemQualityPrice: new ConfigBase().initTable("ResItemQualityPrice", "id"), ResItemSurfaceConfig: new ConfigBase().initTable("ResItemSurfaceConfig", "id"), ResItemTypeConfig: new ConfigBase().initTable("ResItemTypeConfig", "id"), Sheet1: new ConfigBase().initTable("Sheet1", "id"), }; for (const [key, config] of Object.entries(this.configs)) { key = key.charAt(0).toLowerCase() + key.slice(1); this[key] = config } this.curLoadingIndex = 0; }, loadAllConfig() { this.loadConfig(); }, loadConfig() { for (const [key, config] of Object.entries(this.configs)) { if (config.isLoadFinish) { continue; } let self = this; cc.loader.loadRes("res_json/" + config.tableName, function(err, jsonAsset) { if (err) { cc.error(err); return; } config.setTable(jsonAsset.json) config.isLoadFinish = true; self.curLoadingIndex += 1; if (self.updateLoadCb) { self.updateLoadCb(); } self.loadConfig() }); break } if (this.curLoadingIndex < Object.keys(this.configs).length) { return } if (this.loadFinishCb) { this.loadFinishCb() } cc.game.emit('e_mgr_load_config_done'); }, } module.exports = CfgMgr;