CfgMgr.js 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * 配置表管理
  3. */
  4. let ConfigBase = require('ConfigBase')
  5. let CfgMgr = {
  6. init () {
  7. if (CC_EDITOR) {
  8. return;
  9. }
  10. this.loadFinishCb = null
  11. this.updateLoadCb = null
  12. this.configs = {
  13. BattleBoxAwardConfig: new ConfigBase().initTable("BattleBoxAwardConfig", "", ["boxId", "itemId"]),
  14. BattleBoxConfig: new ConfigBase().initTable("BattleBoxConfig", "boxId"),
  15. BattleBoxTypeConfig: new ConfigBase().initTable("BattleBoxTypeConfig", "ty"),
  16. BattleConstConfig: new ConfigBase().initTable("BattleConstConfig", "main_key"),
  17. BlindBoxAwardConfig: new ConfigBase().initTable("BlindBoxAwardConfig", "", ["boxId", "itemId"]),
  18. BlindBoxConfig: new ConfigBase().initTable("BlindBoxConfig", "boxId"),
  19. BlindBoxConstConfig: new ConfigBase().initTable("BlindBoxConstConfig", "main_key"),
  20. BlindBoxTypeConfig: new ConfigBase().initTable("BlindBoxTypeConfig", "ty"),
  21. DreamBox: new ConfigBase().initTable("DreamBox", "dreamBoxId"),
  22. DreamBoxAward: new ConfigBase().initTable("DreamBoxAward", "DreamBoxId", ["DreamBoxId"]),
  23. DreamConstConfig: new ConfigBase().initTable("DreamConstConfig", "main_key"),
  24. GoodsConfig: new ConfigBase().initTable("GoodsConfig", "id"),
  25. ResItemConfig: new ConfigBase().initTable("ResItemConfig", "id"),
  26. ResItemModelConfig: new ConfigBase().initTable("ResItemModelConfig", "id"),
  27. ResItemModelTypeConfig: new ConfigBase().initTable("ResItemModelTypeConfig", "id"),
  28. ResItemQualityConfig: new ConfigBase().initTable("ResItemQualityConfig", "id"),
  29. ResItemQualityPrice: new ConfigBase().initTable("ResItemQualityPrice", "id"),
  30. ResItemSurfaceConfig: new ConfigBase().initTable("ResItemSurfaceConfig", "id"),
  31. ResItemTypeConfig: new ConfigBase().initTable("ResItemTypeConfig", "id"),
  32. };
  33. for (const [key, config] of Object.entries(this.configs)) {
  34. key = key.charAt(0).toLowerCase() + key.slice(1);
  35. this[key] = config
  36. }
  37. this.curLoadingIndex = 0;
  38. },
  39. loadAllConfig() {
  40. this.loadConfig();
  41. },
  42. loadConfig() {
  43. for (const [key, config] of Object.entries(this.configs)) {
  44. if (config.isLoadFinish) {
  45. continue;
  46. }
  47. let self = this;
  48. cc.loader.loadRes("res_json/" + config.tableName, function(err, jsonAsset) {
  49. if (err) {
  50. cc.error(err);
  51. return;
  52. }
  53. config.setTable(jsonAsset.json)
  54. config.isLoadFinish = true;
  55. self.curLoadingIndex += 1;
  56. if (self.updateLoadCb) {
  57. self.updateLoadCb();
  58. }
  59. self.loadConfig()
  60. });
  61. break
  62. }
  63. if (this.curLoadingIndex < Object.keys(this.configs).length) {
  64. return
  65. }
  66. if (this.loadFinishCb) {
  67. this.loadFinishCb()
  68. }
  69. cc.game.emit('e_mgr_load_config_done');
  70. },
  71. }
  72. module.exports = CfgMgr;