55 lines
7.7 KiB
JavaScript
55 lines
7.7 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.PhysicsMaterialImporter = void 0;
|
|
const base_importer_1 = require("./base-importer");
|
|
class PhysicsMaterialImporter extends base_importer_1.BaseAssetImporter {
|
|
constructor() {
|
|
super(...arguments);
|
|
this.name = 'physics-material';
|
|
}
|
|
async getProperties(assetInfo) {
|
|
const materialMeta = await Editor.Message.request('scene', 'query-physics-material', assetInfo.uuid);
|
|
if (!materialMeta) {
|
|
throw new Error(`Physics material meta not found for ${assetInfo.uuid}`);
|
|
}
|
|
return materialMeta;
|
|
}
|
|
async setProperty(assetInfo, path, value) {
|
|
let materialMeta = await Editor.Message.request('scene', 'query-physics-material', assetInfo.uuid);
|
|
if (!materialMeta) {
|
|
return false;
|
|
}
|
|
// Apply change
|
|
if (path.includes('.')) {
|
|
const parts = path.split('.');
|
|
let current = materialMeta;
|
|
for (let i = 0; i < parts.length - 1; i++) {
|
|
current = current[parts[i]];
|
|
if (current === undefined)
|
|
current = current[parts[i]].value;
|
|
if (current === undefined)
|
|
return false;
|
|
}
|
|
const lastCurrent = current[parts[parts.length - 1]];
|
|
if (typeof lastCurrent === 'object' && 'value' in lastCurrent) {
|
|
current[parts[parts.length - 1]].value = value;
|
|
}
|
|
else {
|
|
current[parts[parts.length - 1]] = value;
|
|
}
|
|
}
|
|
else {
|
|
if (typeof materialMeta[path] === 'object' && 'value' in materialMeta[path]) {
|
|
materialMeta[path].value = value;
|
|
}
|
|
else {
|
|
materialMeta[path] = value;
|
|
}
|
|
}
|
|
materialMeta = await Editor.Message.request('scene', 'change-physics-material', materialMeta);
|
|
await Editor.Message.request('scene', 'apply-physics-material', assetInfo.uuid, materialMeta);
|
|
return true;
|
|
}
|
|
}
|
|
exports.PhysicsMaterialImporter = PhysicsMaterialImporter;
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGh5c2ljcy1tYXRlcmlhbC1pbXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS91dGNwL3V0aWxzL2Fzc2V0LWltcG9ydGVycy9waHlzaWNzLW1hdGVyaWFsLWltcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1EQUFvRDtBQUlwRCxNQUFhLHVCQUF3QixTQUFRLGlDQUFpQjtJQUE5RDs7UUFDSSxTQUFJLEdBQUcsa0JBQWtCLENBQUM7SUE4QzlCLENBQUM7SUE1Q0csS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFxQjtRQUNyQyxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFxQixFQUFFLElBQVksRUFBRSxLQUFVO1FBQzdELElBQUksWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELGVBQWU7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksT0FBTyxHQUFHLFlBQVksQ0FBQztZQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxPQUFPLEtBQUssU0FBUztvQkFBRSxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDN0QsSUFBSSxPQUFPLEtBQUssU0FBUztvQkFBRSxPQUFPLEtBQUssQ0FBQztZQUM1QyxDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUM1RCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25ELENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDN0MsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNyQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUMvQixDQUFDO1FBQ0wsQ0FBQztRQUVELFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUU5RixNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQS9DRCwwREErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQXNzZXRJbXBvcnRlciB9IGZyb20gJy4vYmFzZS1pbXBvcnRlcic7XG5pbXBvcnQgeyBJQXNzZXRJbmZvIH0gZnJvbSAnQGNvY29zL2NyZWF0b3ItdHlwZXMvZWRpdG9yL3BhY2thZ2VzL2Fzc2V0LWRiL0B0eXBlcy9wdWJsaWMnO1xuaW1wb3J0IHsgSVByb3BlcnR5VmFsdWVUeXBlIH0gZnJvbSAnQGNvY29zL2NyZWF0b3ItdHlwZXMvZWRpdG9yL3BhY2thZ2VzL3NjZW5lL0B0eXBlcy9wdWJsaWMnO1xuXG5leHBvcnQgY2xhc3MgUGh5c2ljc01hdGVyaWFsSW1wb3J0ZXIgZXh0ZW5kcyBCYXNlQXNzZXRJbXBvcnRlciB7XG4gICAgbmFtZSA9ICdwaHlzaWNzLW1hdGVyaWFsJztcblxuICAgIGFzeW5jIGdldFByb3BlcnRpZXMoYXNzZXRJbmZvOiBJQXNzZXRJbmZvKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IElQcm9wZXJ0eVZhbHVlVHlwZSB9PiB7XG4gICAgICAgIGNvbnN0IG1hdGVyaWFsTWV0YSA9IGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoJ3NjZW5lJywgJ3F1ZXJ5LXBoeXNpY3MtbWF0ZXJpYWwnLCBhc3NldEluZm8udXVpZCk7XG4gICAgICAgIFxuICAgICAgICBpZiAoIW1hdGVyaWFsTWV0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQaHlzaWNzIG1hdGVyaWFsIG1ldGEgbm90IGZvdW5kIGZvciAke2Fzc2V0SW5mby51dWlkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGVyaWFsTWV0YTtcbiAgICB9XG5cbiAgICBhc3luYyBzZXRQcm9wZXJ0eShhc3NldEluZm86IElBc3NldEluZm8sIHBhdGg6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBsZXQgbWF0ZXJpYWxNZXRhID0gYXdhaXQgRWRpdG9yLk1lc3NhZ2UucmVxdWVzdCgnc2NlbmUnLCAncXVlcnktcGh5c2ljcy1tYXRlcmlhbCcsIGFzc2V0SW5mby51dWlkKTtcbiAgICAgICAgaWYgKCFtYXRlcmlhbE1ldGEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFwcGx5IGNoYW5nZVxuICAgICAgICBpZiAocGF0aC5pbmNsdWRlcygnLicpKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGxldCBjdXJyZW50ID0gbWF0ZXJpYWxNZXRhO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0c1tpXV07XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT09IHVuZGVmaW5lZCkgY3VycmVudCA9IGN1cnJlbnRbcGFydHNbaV1dLnZhbHVlO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09PSB1bmRlZmluZWQpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhc3RDdXJyZW50ID0gY3VycmVudFtwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGxhc3RDdXJyZW50ID09PSAnb2JqZWN0JyAmJiAndmFsdWUnIGluIGxhc3RDdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFtwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXV0udmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFtwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF0ZXJpYWxNZXRhW3BhdGhdID09PSAnb2JqZWN0JyAmJiAndmFsdWUnIGluIG1hdGVyaWFsTWV0YVtwYXRoXSkge1xuICAgICAgICAgICAgICAgIG1hdGVyaWFsTWV0YVtwYXRoXS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXRlcmlhbE1ldGFbcGF0aF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIG1hdGVyaWFsTWV0YSA9IGF3YWl0IEVkaXRvci5NZXNzYWdlLnJlcXVlc3QoJ3NjZW5lJywgJ2NoYW5nZS1waHlzaWNzLW1hdGVyaWFsJywgbWF0ZXJpYWxNZXRhKTtcblxuICAgICAgICBhd2FpdCBFZGl0b3IuTWVzc2FnZS5yZXF1ZXN0KCdzY2VuZScsICdhcHBseS1waHlzaWNzLW1hdGVyaWFsJywgYXNzZXRJbmZvLnV1aWQsIG1hdGVyaWFsTWV0YSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==
|