Files
fool-cardgame/extensions/cocos-code-mode/dist/utcp/utils/asset-importers/render-texture-importer.js
T
2026-09-13 09:43:24 +03:00

87 lines
12 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RenderTextureImporter = void 0;
const base_importer_1 = require("./base-importer");
const texture_importer_1 = require("./texture-importer");
const texture_utils_1 = require("../texture-utils");
class RenderTextureImporter extends base_importer_1.BaseAssetImporter {
constructor() {
super(...arguments);
this.name = 'render-texture';
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 = texture_utils_1.TextureUtils.applyProperties(userData, path, value);
if (!handled) {
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 meta = await Editor.Message.request('asset-db', 'query-asset-meta', assetInfo.uuid);
if (!meta) {
throw new Error(`Asset meta not found for ${assetInfo.uuid}`);
}
const userData = meta.userData;
if (!userData) {
throw new Error(`UserData not found for asset ${assetInfo.uuid}`);
}
return this.parseUserData(userData, meta.subMetas);
}
parseUserData(userData, subMetas) {
const propertyContainer = {};
// Width & Height
propertyContainer.width = {
value: userData.width,
type: 'Integer',
displayName: 'Width'
};
propertyContainer.height = {
value: userData.height,
type: 'Integer',
displayName: 'Height'
};
// Texture properties
const textureProps = this.textureImporter.parseUserData(userData);
Object.assign(propertyContainer, textureProps);
// SpriteFrame UUID from subMetas
if (subMetas) {
const spriteFrameSubMeta = Object.values(subMetas).find((sm) => sm.importer === 'sprite-frame');
if (spriteFrameSubMeta) {
propertyContainer.spriteFrame = {
value: { uuid: spriteFrameSubMeta.uuid },
type: 'cc.SpriteFrame',
displayName: 'Sprite Frame',
readonly: true
};
}
}
return propertyContainer;
}
}
exports.RenderTextureImporter = RenderTextureImporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLXRleHR1cmUtaW1wb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zb3VyY2UvdXRjcC91dGlscy9hc3NldC1pbXBvcnRlcnMvcmVuZGVyLXRleHR1cmUtaW1wb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQW9EO0FBRXBELHlEQUFxRDtBQUVyRCxvREFBZ0Q7QUFFaEQsTUFBYSxxQkFBc0IsU0FBUSxpQ0FBaUI7SUFBNUQ7O1FBQ0ksU0FBSSxHQUFHLGdCQUFnQixDQUFDO1FBQ2hCLG9CQUFlLEdBQUcsSUFBSSxrQ0FBZSxFQUFFLENBQUM7SUFtRnBELENBQUM7SUFqRkcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFxQixFQUFFLElBQVksRUFBRSxLQUFVO1FBQzdELE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksT0FBTyxHQUFHLDRCQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFN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QUU7b0JBQ2pELElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLFdBQVcsRUFBRSxjQUFjO29CQUMzQixRQUFRLEVBQUUsSUFBSTtpQkFDakIsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0NBQ0o7QUFyRkQsc0RBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUFzc2V0SW1wb3J0ZXIgfSBmcm9tICcuL2Jhc2UtaW1wb3J0ZXInO1xuaW1wb3J0IHsgSUFzc2V0SW5mbyB9IGZyb20gJ0Bjb2Nvcy9jcmVhdG9yLXR5cGVzL2VkaXRvci9wYWNrYWdlcy9hc3NldC1kYi9AdHlwZXMvcHVibGljJztcbmltcG9ydCB7IFRleHR1cmVJbXBvcnRlciB9IGZyb20gJy4vdGV4dHVyZS1pbXBvcnRlcic7XG5pbXBvcnQgeyBJUHJvcGVydHksIElQcm9wZXJ0eVZhbHVlVHlwZSB9IGZyb20gJ0Bjb2Nvcy9jcmVhdG9yLXR5cGVzL2VkaXRvci9wYWNrYWdlcy9zY2VuZS9AdHlwZXMvcHVibGljJztcbmltcG9ydCB7IFRleHR1cmVVdGlscyB9IGZyb20gJy4uL3RleHR1cmUtdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUmVuZGVyVGV4dHVyZUltcG9ydGVyIGV4dGVuZHMgQmFzZUFzc2V0SW1wb3J0ZXIge1xuICAgIG5hbWUgPSAncmVuZGVyLXRleHR1cmUnO1xuICAgIHByaXZhdGUgdGV4dHVyZUltcG9ydGVyID0gbmV3IFRleHR1cmVJbXBvcnRlcigpO1xuXG4gICAgYXN5bmMgc2V0UHJvcGVydHkoYXNzZXRJbmZvOiBJQXNzZXRJbmZvLCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoJ2Fzc2V0LWRiJywgJ3F1ZXJ5LWFzc2V0LW1ldGEnLCBhc3NldEluZm8udXVpZCk7XG4gICAgICAgIGlmICghbWV0YSB8fCAhbWV0YS51c2VyRGF0YSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgdXNlckRhdGEgPSBtZXRhLnVzZXJEYXRhO1xuICAgICAgICBsZXQgaGFuZGxlZCA9IFRleHR1cmVVdGlscy5hcHBseVByb3BlcnRpZXModXNlckRhdGEsIHBhdGgsIHZhbHVlKTtcblxuICAgICAgICBpZiAoIWhhbmRsZWQpIHtcbiAgICAgICAgICAgIGlmIChwYXRoLmluY2x1ZGVzKCcuJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHVzZXJEYXRhO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3VycmVudFtwYXJ0c1tpXV0pIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnRbcGFydHNbaV1dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50W3BhcnRzW3BhcnRzLmxlbmd0aCAtIDFdXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHVzZXJEYXRhW3BhdGhdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmIChoYW5kbGVkKSB7XG4gICAgICAgICAgICBhd2FpdCBFZGl0b3IuTWVzc2FnZS5yZXF1ZXN0KCdhc3NldC1kYicsICdzYXZlLWFzc2V0LW1ldGEnLCBhc3NldEluZm8udXVpZCwgSlNPTi5zdHJpbmdpZnkobWV0YSkpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFByb3BlcnRpZXMoYXNzZXRJbmZvOiBJQXNzZXRJbmZvKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IElQcm9wZXJ0eVZhbHVlVHlwZSB9PiB7XG4gICAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCBFZGl0b3IuTWVzc2FnZS5yZXF1ZXN0KCdhc3NldC1kYicsICdxdWVyeS1hc3NldC1tZXRhJywgYXNzZXRJbmZvLnV1aWQpO1xuICAgICAgICBcbiAgICAgICAgaWYgKCFtZXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2V0IG1ldGEgbm90IGZvdW5kIGZvciAke2Fzc2V0SW5mby51dWlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXNlckRhdGEgPSBtZXRhLnVzZXJEYXRhO1xuICAgICAgICBpZiAoIXVzZXJEYXRhKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVzZXJEYXRhIG5vdCBmb3VuZCBmb3IgYXNzZXQgJHthc3NldEluZm8udXVpZH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVXNlckRhdGEodXNlckRhdGEsIG1ldGEuc3ViTWV0YXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGFyc2VVc2VyRGF0YSh1c2VyRGF0YTogYW55LCBzdWJNZXRhczogYW55KTogeyBba2V5OiBzdHJpbmddOiBJUHJvcGVydHkgfSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5Q29udGFpbmVyOiB7IFtrZXk6IHN0cmluZ106IElQcm9wZXJ0eSB9ID0ge307XG5cbiAgICAgICAgLy8gV2lkdGggJiBIZWlnaHRcbiAgICAgICAgcHJvcGVydHlDb250YWluZXIud2lkdGggPSB7XG4gICAgICAgICAgICB2YWx1ZTogdXNlckRhdGEud2lkdGgsXG4gICAgICAgICAgICB0eXBlOiAnSW50ZWdlcicsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1dpZHRoJ1xuICAgICAgICB9O1xuICAgICAgICBwcm9wZXJ0eUNvbnRhaW5lci5oZWlnaHQgPSB7XG4gICAgICAgICAgICB2YWx1ZTogdXNlckRhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgdHlwZTogJ0ludGVnZXInLFxuICAgICAgICAgICAgZGlzcGxheU5hbWU6ICdIZWlnaHQnXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gVGV4dHVyZSBwcm9wZXJ0aWVzXG4gICAgICAgIGNvbnN0IHRleHR1cmVQcm9wcyA9IHRoaXMudGV4dHVyZUltcG9ydGVyLnBhcnNlVXNlckRhdGEodXNlckRhdGEpO1xuICAgICAgICBPYmplY3QuYXNzaWduKHByb3BlcnR5Q29udGFpbmVyLCB0ZXh0dXJlUHJvcHMpO1xuXG4gICAgICAgIC8vIFNwcml0ZUZyYW1lIFVVSUQgZnJvbSBzdWJNZXRhc1xuICAgICAgICBpZiAoc3ViTWV0YXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwcml0ZUZyYW1lU3ViTWV0YSA9IE9iamVjdC52YWx1ZXMoc3ViTWV0YXMpLmZpbmQoKHNtOiBhbnkpID0+IHNtLmltcG9ydGVyID09PSAnc3ByaXRlLWZyYW1lJyk7XG4gICAgICAgICAgICBpZiAoc3ByaXRlRnJhbWVTdWJNZXRhKSB7XG4gICAgICAgICAgICAgICAgIHByb3BlcnR5Q29udGFpbmVyLnNwcml0ZUZyYW1lID0ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogeyB1dWlkOiAoc3ByaXRlRnJhbWVTdWJNZXRhIGFzIGFueSkudXVpZCB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2MuU3ByaXRlRnJhbWUnLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ1Nwcml0ZSBGcmFtZScsXG4gICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5OiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcm9wZXJ0eUNvbnRhaW5lcjtcbiAgICB9XG59XG4iXX0=