Refactor/clean architecture phase1 (#215)
* refactor(editor): 建立Clean Architecture领域模型层 * refactor(editor): 实现应用层架构 - 命令模式、用例和状态管理 * refactor(editor): 实现展示层核心Hooks * refactor(editor): 实现基础设施层和展示层组件 * refactor(editor): 迁移画布和连接渲染到 Clean Architecture 组件 * feat(editor): 集成应用层架构和命令模式,实现撤销/重做功能 * refactor(editor): UI组件拆分 * refactor(editor): 提取快速创建菜单逻辑 * refactor(editor): 重构BehaviorTreeEditor,提取组件和Hook * refactor(editor): 提取端口连接和键盘事件Hook * refactor(editor): 提取拖放处理Hook * refactor(editor): 提取画布交互Hook和工具函数 * refactor(editor): 完成核心重构 * fix(editor): 修复节点无法创建和连接 * refactor(behavior-tree,editor): 重构节点子节点约束系统,实现元数据驱动的架构
This commit is contained in:
@@ -78,8 +78,7 @@ export class BehaviorTreeExecutor {
|
||||
rootNodeId: string,
|
||||
blackboard: Record<string, any>,
|
||||
connections: Array<{ from: string; to: string; fromProperty?: string; toProperty?: string; connectionType: 'node' | 'property' }>,
|
||||
callback: ExecutionCallback,
|
||||
projectPath?: string | null
|
||||
callback: ExecutionCallback
|
||||
): void {
|
||||
this.cleanup();
|
||||
this.callback = callback;
|
||||
@@ -151,9 +150,9 @@ export class BehaviorTreeExecutor {
|
||||
id: node.id,
|
||||
name: node.template.displayName,
|
||||
nodeType: this.convertNodeType(node.template.type),
|
||||
implementationType: node.template.className || this.getImplementationType(node.template.displayName, node.template.type),
|
||||
implementationType: node.template.className || this.getImplementationType(node.template.displayName),
|
||||
config: { ...node.data },
|
||||
children: node.children
|
||||
children: Array.from(node.children)
|
||||
};
|
||||
|
||||
treeData.nodes.set(node.id, nodeData);
|
||||
@@ -206,7 +205,7 @@ export class BehaviorTreeExecutor {
|
||||
/**
|
||||
* 根据显示名称获取实现类型
|
||||
*/
|
||||
private getImplementationType(displayName: string, nodeType: string): string {
|
||||
private getImplementationType(displayName: string): string {
|
||||
const typeMap: Record<string, string> = {
|
||||
'序列': 'Sequence',
|
||||
'选择': 'Selector',
|
||||
|
||||
Reference in New Issue
Block a user