ParticleParse.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.ParticleParse = void 0;
  4. const BaseComParse_1 = require("./BaseComParse");
  5. class ParticleParse extends BaseComParse_1.BaseComParse {
  6. constructor() {
  7. super(...arguments);
  8. this.comName = 'cc.ParticleSystem';
  9. }
  10. /**
  11. * 解析预制件数组里的单个项目
  12. * @param json 预制件数组里的一个项目
  13. * @param uuidSeekedMap 已经找到了的uuid的名字
  14. * @param fatherJson 整个预制件的Json
  15. * @returns 返回丢失了uuid的属性的名字
  16. */
  17. async parse(json, uuidSeekedMap, fatherJson) {
  18. let ret = [];
  19. let _materials = json._materials;
  20. if (_materials && _materials[0]) {
  21. let uuid = _materials[0].__uuid__;
  22. if (uuid) {
  23. if (!uuidSeekedMap.has(uuid)) {
  24. let url = await Editor.Message.request('asset-db', 'query-url', uuid);
  25. if (url) {
  26. uuidSeekedMap.set(uuid, true);
  27. }
  28. else {
  29. ret.push('renderer.particleMaterial');
  30. }
  31. }
  32. }
  33. }
  34. if (_materials && _materials[1]) {
  35. let uuid = _materials[1].__uuid__;
  36. if (uuid) {
  37. if (!uuidSeekedMap.has(uuid)) {
  38. let url = await Editor.Message.request('asset-db', 'query-url', uuid);
  39. if (url) {
  40. uuidSeekedMap.set(uuid, true);
  41. }
  42. else {
  43. ret.push('renderer.trailMaterial');
  44. }
  45. }
  46. }
  47. }
  48. if (json.renderer && json.renderer.__id__) {
  49. let renderer = fatherJson[json.renderer.__id__];
  50. let _mesh = renderer._mesh;
  51. if (_mesh) {
  52. let uuid = _mesh.__uuid__;
  53. if (uuid) {
  54. if (!uuidSeekedMap.has(uuid)) {
  55. let url = await Editor.Message.request('asset-db', 'query-url', uuid);
  56. if (url) {
  57. uuidSeekedMap.set(uuid, true);
  58. }
  59. else {
  60. ret.push('renderer.trailMaterial');
  61. }
  62. }
  63. }
  64. }
  65. }
  66. return ret;
  67. }
  68. }
  69. exports.ParticleParse = ParticleParse;