You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
16 KiB

2 weeks ago
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
// @ts-ignore
const package_json_1 = __importDefault(require("../../../../package.json"));
/** 节点选择 / 资产选择弹层。 */
exports.default = {
/** 打开节点选择弹层:mode='ref' 选择组件引用,mode='widget' 选择 Widget 对齐目标。 */
openNodePicker(mode, compIdx, key, componentType) {
this.nodePicker = {
visible: true,
mode,
compIdx,
key,
componentType: componentType || 'cc.Node',
filter: '',
};
},
closeNodePicker() {
this.nodePicker.visible = false;
},
/** 弹层选中运行时节点:ref 写组件引用,widget 写对齐目标。 */
onNodePick(row) {
if (!this.inspector) {
return;
}
const comp = this.inspector.components[this.nodePicker.compIdx];
if (!comp) {
this.nodePicker.visible = false;
return;
}
if (this.nodePicker.mode === 'ref') {
this.sendSet({
id: this.selectedId,
comp: this.nodePicker.compIdx,
key: this.nodePicker.key,
value: { __refNode: row.id, componentType: this.nodePicker.componentType },
});
const prop = comp.props.find((p) => p.key === this.nodePicker.key);
if (prop && prop.v && typeof prop.v === 'object') {
prop.v = Object.assign(Object.assign({}, prop.v), { name: row.name });
}
}
else {
this.sendSet({ id: this.selectedId, comp: this.nodePicker.compIdx, key: '__widget_target', value: row.id });
if (comp.widget) {
comp.widget.targetName = row.name;
}
}
this.nodePicker.visible = false;
},
/** 打开资产选择弹层:index>=0 时写回数组项(如 sharedMaterials[i])。 */
async openAssetPicker(compIdx, key, index, curType) {
this.assetPicker = {
visible: true,
compIdx,
key,
index,
filter: '',
type: curType || '',
types: [],
list: [],
loading: true,
};
try {
const res = (await Editor.Message.request(package_json_1.default.name, 'query-command', { cmd: 'list-assets', timeout: 2500, payload: { type: curType || '' } }));
if (res && Array.isArray(res.assets)) {
this.assetPicker.list = res.assets;
this.assetPicker.types = res.types || [];
}
else {
this.logs.push('[资产] ' + String((res && res.error) || '获取资产列表失败'));
}
}
catch (err) {
this.logs.push(`[资产] ${String(err)}`);
}
finally {
this.assetPicker.loading = false;
}
},
closeAssetPicker() {
this.assetPicker.visible = false;
},
/** 弹层选中资产:按 uuid 写回资产引用(属性或数组项)。 */
async onAssetPick(row) {
if (!this.inspector) {
return;
}
const ap = this.assetPicker;
const comp = this.inspector.components[ap.compIdx];
if (!comp) {
this.closeAssetPicker();
return;
}
this.sendSet({
id: this.selectedId,
comp: ap.compIdx,
key: ap.key,
index: ap.index >= 0 ? ap.index : undefined,
value: { __refAsset: row.uuid },
});
// 本地乐观更新:写回后 sendSet 会回读刷新,这里仅即时反馈
const prop = comp.props.find((p) => p.key === ap.key);
if (prop && prop.v && typeof prop.v === 'object') {
if (ap.index >= 0 && Array.isArray(prop.v)) {
const it = prop.v[ap.index];
if (it && it.v && typeof it.v === 'object') {
it.v = Object.assign(Object.assign({}, it.v), { name: row.name, type: row.type, uuid: row.uuid });
}
}
else if (prop.v && typeof prop.v === 'object') {
prop.v = Object.assign(Object.assign({}, prop.v), { name: row.name, type: row.type, uuid: row.uuid });
}
}
this.closeAssetPicker();
},
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS9wYW5lbHMvZGVmYXVsdC9tZXRob2RzL3BpY2tlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxhQUFhO0FBQ2IsNEVBQW1EO0FBR25ELHFCQUFxQjtBQUNyQixrQkFBZTtJQUNYLCtEQUErRDtJQUMvRCxjQUFjLENBQVksSUFBc0IsRUFBRSxPQUFlLEVBQUUsR0FBVyxFQUFFLGFBQXFCO1FBQ2pHLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUk7WUFDSixPQUFPO1lBQ1AsR0FBRztZQUNILGFBQWEsRUFBRSxhQUFhLElBQUksU0FBUztZQUN6QyxNQUFNLEVBQUUsRUFBRTtTQUNiLENBQUM7SUFDTixDQUFDO0lBQ0QsZUFBZTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0Qsd0NBQXdDO0lBQ3hDLFVBQVUsQ0FBWSxHQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsT0FBTztRQUNYLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNoQyxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87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