SimpleParse.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.SimpleParse = void 0;
  4. const BaseComParse_1 = require("./BaseComParse");
  5. class SimpleParse extends BaseComParse_1.BaseComParse {
  6. constructor() {
  7. super(...arguments);
  8. this._simpleKeys = [
  9. //cc.Sprite
  10. '_customMaterial',
  11. '_atlas',
  12. '_spriteFrame',
  13. //cc.Label
  14. '_font',
  15. //cc.Button
  16. '_normalSprite',
  17. '_hoverSprite',
  18. '_pressedSprite',
  19. '_disabledSprite',
  20. //meshrender
  21. '_mesh',
  22. //animation
  23. '_defaultClip',
  24. //audioSources
  25. '_clip',
  26. //richText
  27. '_imageAtlas',
  28. //dragonBones.ArmatureDisplay
  29. '_dragonAsset',
  30. '_dragonAtlasAsset',
  31. //cc.Billboard
  32. '_texture',
  33. //particleSystem2D
  34. '_file',
  35. //BoxCollider
  36. '_material',
  37. //spine
  38. '_skeletonData',
  39. //tiledMap
  40. '_tmxFile',
  41. //editBox
  42. '_backgroundImage',
  43. // CCPropertyOverrideInfo
  44. 'value',
  45. ];
  46. this._arrayKeys = [
  47. '_materials',
  48. '_clips',
  49. ];
  50. this.comName = '';
  51. }
  52. /**
  53. * 解析预制件数组里的单个项目
  54. * @param json 预制件数组里的一个项目
  55. * @param uuidSeekedMap 已经找到了的uuid的名字
  56. * @returns 返回丢失了uuid的属性的名字
  57. */
  58. async parse(json, uuidSeekedMap, fatherJson) {
  59. this.comName = json.__type__;
  60. let ret = [];
  61. //检测单个Key
  62. for (let simpleKey of this._simpleKeys) {
  63. if (json[simpleKey]) {
  64. let uuid = json[simpleKey].__uuid__;
  65. if (uuid) {
  66. if (!uuidSeekedMap.has(uuid)) {
  67. let url = await Editor.Message.request('asset-db', 'query-url', uuid);
  68. if (url) {
  69. uuidSeekedMap.set(uuid, true);
  70. }
  71. else {
  72. ret.push(simpleKey);
  73. }
  74. }
  75. }
  76. }
  77. }
  78. for (let arrayKey of this._arrayKeys) {
  79. if (json[arrayKey]) {
  80. let i = -1;
  81. for (let ele of json[arrayKey]) {
  82. i++;
  83. if (!ele)
  84. continue;
  85. let uuid = ele.__uuid__;
  86. if (!uuid)
  87. continue;
  88. if (!uuidSeekedMap.has(uuid)) {
  89. let url = await Editor.Message.request('asset-db', 'query-url', uuid);
  90. if (url) {
  91. uuidSeekedMap.set(uuid, true);
  92. }
  93. else {
  94. ret.push(arrayKey + '[' + i + ']');
  95. }
  96. }
  97. }
  98. }
  99. }
  100. return ret;
  101. }
  102. }
  103. exports.SimpleParse = SimpleParse;