"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutoAtlasImporter = void 0; const base_importer_1 = require("./base-importer"); const texture_importer_1 = require("./texture-importer"); class AutoAtlasImporter extends base_importer_1.BaseAssetImporter { constructor() { super(...arguments); this.name = 'auto-atlas'; this.textureImporter = new texture_importer_1.TextureImporter(); } async setProperty(assetInfo, path, value) { const meta = await Editor.Message.request('asset-db', 'query-asset-meta', assetInfo.uuid); if (!meta || !meta.userData) return false; const userData = meta.userData; let handled = false; if (path.includes('.')) { const parts = path.split('.'); let current = userData; for (let i = 0; i < parts.length - 1; i++) { if (!current[parts[i]]) return false; current = current[parts[i]]; } if (current) { current[parts[parts.length - 1]] = value; handled = true; } } else { userData[path] = value; handled = true; } if (handled) { await Editor.Message.request('asset-db', 'save-asset-meta', assetInfo.uuid, JSON.stringify(meta)); return true; } return false; } async getProperties(assetInfo) { const assetMeta = await Editor.Message.request('asset-db', 'query-asset-meta', assetInfo.uuid); if (!assetMeta) { throw new Error(`Asset meta not found for ${assetInfo.uuid}`); } const userData = assetMeta.userData; if (!userData) { throw new Error(`UserData not found for asset ${assetInfo.uuid}`); } return this.parseUserData(userData); } parseUserData(userData) { const propertyContainer = {}; // Atlas Settings propertyContainer.maxWidth = { value: userData.maxWidth, type: 'Integer', displayName: 'Max Width' }; propertyContainer.maxHeight = { value: userData.maxHeight, type: 'Integer', displayName: 'Max Height' }; propertyContainer.padding = { value: userData.padding, type: 'Integer', displayName: 'Padding' }; propertyContainer.allowRotation = { value: !!userData.allowRotation, type: 'Boolean', displayName: 'Allow Rotation' }; propertyContainer.forceSquared = { value: !!userData.forceSquared, type: 'Boolean', displayName: 'Force Squared' }; propertyContainer.powerOfTwo = { value: !!userData.powerOfTwo, type: 'Boolean', displayName: 'Power of Two' }; propertyContainer.algorithm = { value: userData.algorithm, type: 'Enum', enumList: [ { name: 'MaxRects', value: 'MaxRects' }, { name: 'Basic', value: 'Basic' } ], displayName: 'Algorithm' }; propertyContainer.format = { value: userData.format, type: 'Enum', enumList: [ { name: 'png', value: 'png' }, { name: 'jpg', value: 'jpg' }, { name: 'webp', value: 'webp' } ], displayName: 'Format' }; propertyContainer.quality = { value: userData.quality, type: 'Number', displayName: 'Quality', visible: userData.format === 'jpg' }; propertyContainer.contourBleed = { value: !!userData.contourBleed, type: 'Boolean', displayName: 'Contour Bleed' }; propertyContainer.paddingBleed = { value: !!userData.paddingBleed, type: 'Boolean', displayName: 'Padding Bleed' }; propertyContainer.filterUnused = { value: !!userData.filterUnused, type: 'Boolean', displayName: 'Filter Unused Resources' }; // Texture Settings if (userData.textureSetting) { const textureProps = this.textureImporter.parseUserData(userData.textureSetting); Object.assign(propertyContainer, textureProps); } return propertyContainer; } } exports.AutoAtlasImporter = AutoAtlasImporter; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1hdGxhcy1pbXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS91dGNwL3V0aWxzL2Fzc2V0LWltcG9ydGVycy9hdXRvLWF0bGFzLWltcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFvRDtBQUVwRCx5REFBcUQ7QUFHckQsTUFBYSxpQkFBa0IsU0FBUSxpQ0FBaUI7SUFBeEQ7O1FBQ0ksU0FBSSxHQUFHLFlBQVksQ0FBQztRQUNaLG9CQUFlLEdBQUcsSUFBSSxrQ0FBZSxFQUFFLENBQUM7SUFrR3BELENBQUM7SUFoR0csS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFxQixFQUFFLElBQVksRUFBRSxLQUFVO1FBQzdELE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQztZQUN2QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQUUsT0FBTyxLQUFL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RUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsQ0FBQztRQUU3SCxtQkFBbUI7UUFDbkIsSUFBSSxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pGLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztDQUNKO0FBcEdELDhDQW9HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBc3NldEltcG9ydGVyIH0gZnJvbSAnLi9iYXNlLWltcG9ydGVyJztcbmltcG9ydCB7IElBc3NldEluZm8gfSBmcm9tICdAY29jb3MvY3JlYXRvci10eXBlcy9lZGl0b3IvcGFja2FnZXMvYXNzZXQtZGIvQHR5cGVzL3B1YmxpYyc7XG5pbXBvcnQgeyBUZXh0dXJlSW1wb3J0ZXIgfSBmcm9tICcuL3RleHR1cmUtaW1wb3J0ZXInO1xuaW1wb3J0IHsgSVByb3BlcnR5LCBJUHJvcGVydHlWYWx1ZVR5cGUgfSBmcm9tICdAY29jb3MvY3JlYXRvci10eXBlcy9lZGl0b3IvcGFja2FnZXMvc2NlbmUvQHR5cGVzL3B1YmxpYyc7XG5cbmV4cG9ydCBjbGFzcyBBdXRvQXRsYXNJbXBvcnRlciBleHRlbmRzIEJhc2VBc3NldEltcG9ydGVyIHtcbiAgICBuYW1lID0gJ2F1dG8tYXRsYXMnO1xuICAgIHByaXZhdGUgdGV4dHVyZUltcG9ydGVyID0gbmV3IFRleHR1cmVJbXBvcnRlcigpO1xuXG4gICAgYXN5bmMgc2V0UHJvcGVydHkoYXNzZXRJbmZvOiBJQXNzZXRJbmZvLCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoJ2Fzc2V0LWRiJywgJ3F1ZXJ5LWFzc2V0LW1ldGEnLCBhc3NldEluZm8udXVpZCk7XG4gICAgICAgIGlmICghbWV0YSB8fCAhbWV0YS51c2VyRGF0YSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgdXNlckRhdGEgPSBtZXRhLnVzZXJEYXRhO1xuICAgICAgICBsZXQgaGFuZGxlZCA9IGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgaWYgKHBhdGguaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBsZXQgY3VycmVudCA9IHVzZXJEYXRhO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnRbcGFydHNbaV1dKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbcGFydHNbaV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50W3BhcnRzW3BhcnRzLmxlbmd0aCAtIDFdXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXNlckRhdGFbcGF0aF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAoaGFuZGxlZCkge1xuICAgICAgICAgICAgYXdhaXQgRWRpdG9yLk1lc3NhZ2UucmVxdWVzdCgnYXNzZXQtZGInLCAnc2F2ZS1hc3NldC1tZXRhJywgYXNzZXRJbmZvLnV1aWQsIEpTT04uc3RyaW5naWZ5KG1ldGEpKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRQcm9wZXJ0aWVzKGFzc2V0SW5mbzogSUFzc2V0SW5mbyk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBJUHJvcGVydHlWYWx1ZVR5cGUgfT4ge1xuICAgICAgICBjb25zdCBhc3NldE1ldGEgPSBhd2FpdCBFZGl0b3IuTWVzc2FnZS5yZXF1ZXN0KCdhc3NldC1kYicsICdxdWVyeS1hc3NldC1tZXRhJywgYXNzZXRJbmZvLnV1aWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCFhc3NldE1ldGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXQgbWV0YSBub3QgZm91bmQgZm9yICR7YXNzZXRJbmZvLnV1aWR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1c2VyRGF0YSA9IGFzc2V0TWV0YS51c2VyRGF0YTtcbiAgICAgICAgaWYgKCF1c2VyRGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVc2VyRGF0YSBub3QgZm91bmQgZm9yIGFzc2V0ICR7YXNzZXRJbmZvLnV1aWR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVVzZXJEYXRhKHVzZXJEYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlVXNlckRhdGEodXNlckRhdGE6IGFueSk6IHsgW2tleTogc3RyaW5nXTogSVByb3BlcnR5IH0ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eUNvbnRhaW5lcjogeyBba2V5OiBzdHJpbmddOiBJUHJvcGVydHkgfSA9IHt9O1xuXG4gICAgICAgIC8vIEF0bGFzIFNldHRpbmdzXG4gICAgICAgIHByb3BlcnR5Q29udGFpbmVyLm1heFdpZHRoID0geyB2YWx1ZTogdXNlckRhdGEubWF4V2lkdGgsIHR5cGU6ICdJbnRlZ2VyJywgZGlzcGxheU5hbWU6ICdNYXggV2lkdGgnIH07XG4gICAgICAgIHByb3BlcnR5Q29udGFpbmVyLm1heEhlaWdodCA9IHsgdmFsdWU6IHVzZXJEYXRhLm1heEhlaWdodCwgdHlwZTogJ0ludGVnZXInLCBkaXNwbGF5TmFtZTogJ01heCBIZWlnaHQnIH07XG4gICAgICAgIHByb3BlcnR5Q29udGFpbmVyLnBhZGRpbmcgPSB7IHZhbHVlOiB1c2VyRGF0YS5wYWRkaW5nLCB0eXBlOiAnSW50ZWdlcicsIGRpc3BsYXlOYW1lOiAnUGFkZGluZycgfTtcbiAgICAgICAgcHJvcGVydHlDb250YWluZXIuYWxsb3dSb3RhdGlvbiA9IHsgdmFsdWU6ICEhdXNlckRhdGEuYWxsb3dSb3RhdGlvbiwgdHlwZTogJ0Jvb2xlYW4nLCBkaXNwbGF5TmFtZTogJ0FsbG93IFJvdGF0aW9uJyB9O1xuICAgICAgICBwcm9wZXJ0eUNvbnRhaW5lci5mb3JjZVNxdWFyZWQgPSB7IHZhbHVlOiAhIXVzZXJEYXRhLmZvcmNlU3F1YXJlZCwgdHlwZTogJ0Jvb2xlYW4nLCBkaXNwbGF5TmFtZTogJ0ZvcmNlIFNxdWFyZWQnIH07XG4gICAgICAgIHByb3BlcnR5Q29udGFpbmVyLnBvd2VyT2ZUd28gPSB7IHZhbHVlOiAhIXVzZXJEYXRhLnBvd2VyT2ZUd28sIHR5cGU6ICdCb29sZWFuJywgZGlzcGxheU5hbWU6ICdQb3dlciBvZiBUd28nIH07XG4gICAgICAgIFxuICAgICAgICBwcm9wZXJ0eUNvbnRhaW5lci5hbGdvcml0aG0gPSB7IFxuICAgICAgICAgICAgdmFsdWU6IHVzZXJEYXRhLmFsZ29yaXRobSwgXG4gICAgICAgICAgICB0eXBlOiAnRW51bScsIFxuICAgICAgICAgICAgZW51bUxpc3Q6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdNYXhSZWN0cycsIHZhbHVlOiAnTWF4UmVjdHMnIH0sXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnQmFzaWMnLCB2YWx1ZTogJ0Jhc2ljJyB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdBbGdvcml0aG0nIFxuICAgICAgICB9O1xuICAgICAgICBcbiAgICAgICAgcHJvcGVydHlDb250YWluZXIuZm9ybWF0ID0geyBcbiAgICAgICAgICAgIHZhbHVlOiB1c2VyRGF0YS5mb3JtYXQsIFxuICAgICAgICAgICAgdHlwZTogJ0VudW0nLCBcbiAgICAgICAgICAgIGVudW1MaXN0OiBbXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAncG5nJywgdmFsdWU6ICdwbmcnIH0sXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnanBnJywgdmFsdWU6ICdqcGcnIH0sXG4gICAgICAgICAgICAgICAgeyBuYW1lOiAnd2VicCcsIHZhbHVlOiAnd2VicCcgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnRm9ybWF0JyBcbiAgICAgICAgfTtcblxuICAgICAgICBwcm9wZXJ0eUNvbnRhaW5lci5xdWFsaXR5ID0geyBcbiAgICAgICAgICAgIHZhbHVlOiB1c2VyRGF0YS5xdWFsaXR5LCBcbiAgICAgICAgICAgIHR5cGU6ICdOdW1iZXInLCBcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUXVhbGl0eScsXG4gICAgICAgICAgICB2aXNpYmxlOiB1c2VyRGF0YS5mb3JtYXQgPT09ICdqcGcnXG4gICAgICAgIH07XG5cbiAgICAgICAgcHJvcGVydHlDb250YWluZXIuY29udG91ckJsZWVkID0geyB2YWx1ZTogISF1c2VyRGF0YS5jb250b3VyQmxlZWQsIHR5cGU6ICdCb29sZWFuJywgZGlzcGxheU5hbWU6ICdDb250b3VyIEJsZWVkJyB9O1xuICAgICAgICBwcm9wZXJ0eUNvbnRhaW5lci5wYWRkaW5nQmxlZWQgPSB7IHZhbHVlOiAhIXVzZXJEYXRhLnBhZGRpbmdCbGVlZCwgdHlwZTogJ0Jvb2xlYW4nLCBkaXNwbGF5TmFtZTogJ1BhZGRpbmcgQmxlZWQnIH07XG4gICAgICAgIHByb3BlcnR5Q29udGFpbmVyLmZpbHRlclVudXNlZCA9IHsgdmFsdWU6ICEhdXNlckRhdGEuZmlsdGVyVW51c2VkLCB0eXBlOiAnQm9vbGVhbicsIGRpc3BsYXlOYW1lOiAnRmlsdGVyIFVudXNlZCBSZXNvdXJjZXMnIH07XG5cbiAgICAgICAgLy8gVGV4dHVyZSBTZXR0aW5nc1xuICAgICAgICBpZiAodXNlckRhdGEudGV4dHVyZVNldHRpbmcpIHtcbiAgICAgICAgICAgICBjb25zdCB0ZXh0dXJlUHJvcHMgPSB0aGlzLnRleHR1cmVJbXBvcnRlci5wYXJzZVVzZXJEYXRhKHVzZXJEYXRhLnRleHR1cmVTZXR0aW5nKTtcbiAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHByb3BlcnR5Q29udGFpbmVyLCB0ZXh0dXJlUHJvcHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHByb3BlcnR5Q29udGFpbmVyO1xuICAgIH1cbn1cbiJdfQ==