"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SimpleParse = void 0; const WBaseComParse_1 = require("./WBaseComParse"); class SimpleParse extends WBaseComParse_1.BaseComParse { constructor() { super(...arguments); this._simpleKeys = [ //cc.Sprite '_customMaterial', '_atlas', '_spriteFrame', //cc.Label '_font', //cc.Button '_normalSprite', '_hoverSprite', '_pressedSprite', '_disabledSprite', //meshrender '_mesh', //animation '_defaultClip', //audioSources '_clip', //richText '_imageAtlas', //dragonBones.ArmatureDisplay '_dragonAsset', '_dragonAtlasAsset', //cc.Billboard '_texture', //particleSystem2D '_file', //BoxCollider '_material', //spine '_skeletonData', //tiledMap '_tmxFile', //editBox '_backgroundImage', // CCPropertyOverrideInfo 'value', //cc.PrefabInfo 'asset', ]; this._arrayKeys = [ '_materials', '_clips', ]; this.comName = ''; } /** * 解析预制件数组里的单个项目 * @param json 预制件数组里的一个项目 * @param uuidSeekedMap 已经找到了的uuid的名字 * @param fatherJson 整个预制件的Json * @param fullUuid 完整的Uuid * @param compressedUuid 压缩后的uuid * @returns 返回丢失了uuid的属性的名字 */ async parse(json, fatherJson, fullUuid, compressedUuid) { this.comName = json.__type__; let ret = []; //检测单个Key for (let simpleKey of this._simpleKeys) { if (json[simpleKey]) { let uuid = json[simpleKey].__uuid__; if (uuid) { if (uuid.includes(fullUuid) || uuid.includes(compressedUuid)) { ret.push(simpleKey); } } } } for (let arrayKey of this._arrayKeys) { if (json[arrayKey]) { let i = -1; for (let ele of json[arrayKey]) { i++; if (!ele) continue; let uuid = ele.__uuid__; if (!uuid) continue; if (uuid.includes(fullUuid) || uuid.includes(compressedUuid)) { ret.push(arrayKey + '[' + i + ']'); } } } } return ret; } } exports.SimpleParse = SimpleParse;