CfgMgr.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. Sheet1: new ConfigBase().initTable("Sheet1", "id"),
  33. };
  34. for (const [key, config] of Object.entries(this.configs)) {
  35. key = key.charAt(0).toLowerCase() + key.slice(1);
  36. this[key] = config
  37. }
  38. this.curLoadingIndex = 0;
  39. },
  40. loadAllConfig() {
  41. this.loadConfig();
  42. },
  43. loadConfig() {
  44. for (const [key, config] of Object.entries(this.configs)) {
  45. if (config.isLoadFinish) {
  46. continue;
  47. }
  48. let self = this;
  49. cc.loader.loadRes("res_json/" + config.tableName, function(err, jsonAsset) {
  50. if (err) {
  51. cc.error(err);
  52. return;
  53. }
  54. config.setTable(jsonAsset.json)
  55. config.isLoadFinish = true;
  56. self.curLoadingIndex += 1;
  57. if (self.updateLoadCb) {
  58. self.updateLoadCb();
  59. }
  60. self.loadConfig()
  61. });
  62. break
  63. }
  64. if (this.curLoadingIndex < Object.keys(this.configs).length) {
  65. return
  66. }
  67. if (this.loadFinishCb) {
  68. this.loadFinishCb()
  69. }
  70. cc.game.emit('e_mgr_load_config_done');
  71. },
  72. }
  73. module.exports = CfgMgr;