Files
2026-09-13 09:43:24 +03:00

66 lines
8.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PrefabImporter = void 0;
const base_importer_1 = require("./base-importer");
class PrefabImporter extends base_importer_1.BaseAssetImporter {
constructor() {
super(...arguments);
this.name = 'prefab';
}
async getProperties(assetInfo) {
const meta = await Editor.Message.request('asset-db', 'query-asset-meta', assetInfo.uuid);
const userData = meta === null || meta === void 0 ? void 0 : meta.userData;
if (!userData) {
throw new Error(`UserData not found for asset ${assetInfo.uuid}`);
}
return this.parseUserData(userData);
}
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;
// Prefab currently mostly exposes 'persistent' in metadata
if (path === 'persistent') {
userData.persistent = value;
handled = true;
}
else {
// Generic fallback
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;
}
parseUserData(userData) {
return {
persistent: {
value: !!userData.persistent,
type: 'Boolean',
displayName: 'Persistent'
}
};
}
}
exports.PrefabImporter = PrefabImporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmFiLWltcG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc291cmNlL3V0Y3AvdXRpbHMvYXNzZXQtaW1wb3J0ZXJzL3ByZWZhYi1pbXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBb0Q7QUFJcEQsTUFBYSxjQUFlLFNBQVEsaUNBQWlCO0lBQXJEOztRQUNJLFNBQUksR0FBRyxRQUFRLENBQUM7SUE0RHBCLENBQUM7SUExREcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFxQjtRQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQztRQUVoQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUFDLFNBQXFCLEVBQUUsSUFBWSxFQUFFLEtBQVU7UUFDN0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTFDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXBCLDJEQUEyRDtRQUMzRCxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUN4QixRQUFRLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUM1QixPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ0gsbUJBQW1CO1lBQ3BCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUM7Z0JBQ3ZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFBRSxPQUFPLEtBQUssQ0FBQztvQkFDckMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztnQkFDRCxJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDekMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDbkIsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ25CLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBR00sYUFBYSxDQUFDLFFBQW1DO1FBQ3BELE9BQU87WUFDSCxVQUFVLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVTtnQkFDNUIsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsV0FBVyxFQUFFLFlBQVk7YUFDNUI7U0FDSixDQUFDO0lBQ04sQ0FBQztDQUNKO0FBN0RELHdDQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBc3NldEltcG9ydGVyIH0gZnJvbSAnLi9iYXNlLWltcG9ydGVyJztcbmltcG9ydCB7IElBc3NldEluZm8gfSBmcm9tICdAY29jb3MvY3JlYXRvci10eXBlcy9lZGl0b3IvcGFja2FnZXMvYXNzZXQtZGIvQHR5cGVzL3B1YmxpYyc7XG5pbXBvcnQgeyBJUHJvcGVydHksIElQcm9wZXJ0eVZhbHVlVHlwZSB9IGZyb20gJ0Bjb2Nvcy9jcmVhdG9yLXR5cGVzL2VkaXRvci9wYWNrYWdlcy9zY2VuZS9AdHlwZXMvcHVibGljJztcblxuZXhwb3J0IGNsYXNzIFByZWZhYkltcG9ydGVyIGV4dGVuZHMgQmFzZUFzc2V0SW1wb3J0ZXIge1xuICAgIG5hbWUgPSAncHJlZmFiJztcblxuICAgIGFzeW5jIGdldFByb3BlcnRpZXMoYXNzZXRJbmZvOiBJQXNzZXRJbmZvKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IElQcm9wZXJ0eVZhbHVlVHlwZSB9PiB7XG4gICAgICAgIGNvbnN0IG1ldGEgPSBhd2FpdCBFZGl0b3IuTWVzc2FnZS5yZXF1ZXN0KCdhc3NldC1kYicsICdxdWVyeS1hc3NldC1tZXRhJywgYXNzZXRJbmZvLnV1aWQpO1xuICAgICAgICBjb25zdCB1c2VyRGF0YSA9IG1ldGE/LnVzZXJEYXRhO1xuXG4gICAgICAgIGlmICghdXNlckRhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVXNlckRhdGEgbm90IGZvdW5kIGZvciBhc3NldCAke2Fzc2V0SW5mby51dWlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VVc2VyRGF0YSh1c2VyRGF0YSk7XG4gICAgfVxuXG4gICAgYXN5bmMgc2V0UHJvcGVydHkoYXNzZXRJbmZvOiBJQXNzZXRJbmZvLCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgbWV0YSA9IGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoJ2Fzc2V0LWRiJywgJ3F1ZXJ5LWFzc2V0LW1ldGEnLCBhc3NldEluZm8udXVpZCk7XG4gICAgICAgIGlmICghbWV0YSB8fCAhbWV0YS51c2VyRGF0YSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgY29uc3QgdXNlckRhdGEgPSBtZXRhLnVzZXJEYXRhO1xuICAgICAgICBsZXQgaGFuZGxlZCA9IGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgLy8gUHJlZmFiIGN1cnJlbnRseSBtb3N0bHkgZXhwb3NlcyAncGVyc2lzdGVudCcgaW4gbWV0YWRhdGFcbiAgICAgICAgaWYgKHBhdGggPT09ICdwZXJzaXN0ZW50Jykge1xuICAgICAgICAgICAgdXNlckRhdGEucGVyc2lzdGVudCA9IHZhbHVlO1xuICAgICAgICAgICAgaGFuZGxlZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgLy8gR2VuZXJpYyBmYWxsYmFja1xuICAgICAgICAgICAgaWYgKHBhdGguaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50ID0gdXNlckRhdGE7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50W3BhcnRzW2ldXSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0c1tpXV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRbcGFydHNbcGFydHMubGVuZ3RoIC0gMV1dID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXNlckRhdGFbcGF0aF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBoYW5kbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKGhhbmRsZWQpIHtcbiAgICAgICAgICAgIGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoJ2Fzc2V0LWRiJywgJ3NhdmUtYXNzZXQtbWV0YScsIGFzc2V0SW5mby51dWlkLCBKU09OLnN0cmluZ2lmeShtZXRhKSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgcGFyc2VVc2VyRGF0YSh1c2VyRGF0YTogeyBbaW5kZXg6IHN0cmluZ106IGFueTsgfSk6IHsgW2tleTogc3RyaW5nXTogSVByb3BlcnR5IH0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGVyc2lzdGVudDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiAhIXVzZXJEYXRhLnBlcnNpc3RlbnQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ0Jvb2xlYW4nLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnUGVyc2lzdGVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=