mirror of
https://github.com/HappyLifeOk/cc-3-8-x-mcp.git
synced 2026-06-11 02:06:45 +00:00
Initial public release: cc-3-8-x-mcp
Cocos Creator 3.8.x MCP bridge extension with a built-in offline CLI. Components: - Editor extension: in-process MCP server exposing scene / asset-db / preview / local / editor-process-control tools - stdio router: aggregates multiple editor instances on one machine, with shortName dedup - offline CLI (cocos-mcp-cli): headless prefab read/write + a wrapper around the Cocos CLI build Pure Node.js, zero third-party dependencies. Licensed under Apache-2.0.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
// rename-node: 改节点 _name
|
||||
// op: { op:'rename-node', node, name }
|
||||
//
|
||||
// 普通节点:直接改 node._name
|
||||
// stub 节点:name 存在 PrefabInstance.propertyOverrides 而不是 node._name
|
||||
// 走 setOverrideProperty(['_name']) 与 set-active 同模式
|
||||
|
||||
'use strict';
|
||||
|
||||
const { setOverrideProperty } = require('../../overrides.js');
|
||||
const { isStub, resolveNode } = require('../helpers.js');
|
||||
|
||||
function execRenameNode(prefabData, op) {
|
||||
const { elements } = prefabData;
|
||||
const { node: nodeSelector, name } = op;
|
||||
|
||||
if (typeof name !== 'string' || name.length === 0) {
|
||||
throw new Error(`editPrefab [rename-node]: name 必须是非空字符串`);
|
||||
}
|
||||
|
||||
const { node, nodeId } = resolveNode(prefabData, nodeSelector, 'rename-node');
|
||||
|
||||
if (isStub(elements, node)) {
|
||||
setOverrideProperty(prefabData, nodeId, ['_name'], name);
|
||||
} else {
|
||||
node._name = name;
|
||||
}
|
||||
|
||||
return nodeId;
|
||||
}
|
||||
|
||||
module.exports = { execRenameNode };
|
||||
Reference in New Issue
Block a user