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
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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
|