1. 移除了FlipflopContext,统一流程API

2. Script项目脚本修复了 RawString 原始字符串存在的问题
3. Script使用了ValueNode统一了值类型节点,为后续扩展更多的值类型做准备
4. TypeHelper.ToTypeOfString()方法中添加了部分值类型的"Type[]”与“List<Type>”的显式定义,用于脚本在类型中定义数组成员
5. Script项目脚本默认挂载的json方法拆分为jsonObj(String)与jsonStr(Object)以支持序列化与反序列化
6. 项目保存为dnf项目文件时,将不再保存名称为”Default"并且没有节点的画布,避免重复保存时默认画布增多。
This commit is contained in:
fengjiayi
2025-08-02 22:04:13 +08:00
parent 93747ce7fd
commit 79af278b70
26 changed files with 398 additions and 149 deletions

View File

@@ -48,8 +48,6 @@ namespace Serein.NodeFlow.Env
private readonly FlowLibraryService flowLibraryManagement;
private readonly FlowOperationService flowOperationService;
private readonly FlowModelService flowModelService;
//private readonly NodeMVVMService nodeMVVMService;
/// <summary>
/// 注册基本节点类型
@@ -633,33 +631,31 @@ namespace Serein.NodeFlow.Env
}
/* var nodeModels = flowModelService.GetAllNodeModel();
foreach (var toNode in nodeModels)
{
var canvasGuid = toNode.CanvasDetails.Guid;
if (toNode.MethodDetails.ParameterDetailss == null)
{
continue;
}
for (var i = 0; i < toNode.MethodDetails.ParameterDetailss.Length; i++)
{
var pd = toNode.MethodDetails.ParameterDetailss[i];
if (!string.IsNullOrEmpty(pd.ArgDataSourceNodeGuid)
&& TryGetNodeModel(pd.ArgDataSourceNodeGuid, out var fromNode))
{
*//*if (fromNode.NeedResultNodes[pd.ArgDataSourceType].Contains(toNode)
&& pd.ArgDataSourceNodeGuid == fromNode.Guid
&& )
{
continue;
}*//*
ConnectArgSourceNode(canvasGuid, fromNode.Guid, toNode.Guid, JunctionType.ReturnData, JunctionType.ArgData, pd.ArgDataSourceType, pd.Index);
}
}
}*/
/* var nodeModels = flowModelService.GetAllNodeModel();
foreach (var toNode in nodeModels)
{
var canvasGuid = toNode.CanvasDetails.Guid;
if (toNode.MethodDetails.ParameterDetailss == null)
{
continue;
}
for (var i = 0; i < toNode.MethodDetails.ParameterDetailss.Length; i++)
{
var pd = toNode.MethodDetails.ParameterDetailss[i];
if (!string.IsNullOrEmpty(pd.ArgDataSourceNodeGuid)
&& TryGetNodeModel(pd.ArgDataSourceNodeGuid, out var fromNode))
{
*//*if (fromNode.NeedResultNodes[pd.ArgDataSourceType].Contains(toNode)
&& pd.ArgDataSourceNodeGuid == fromNode.Guid
&& )
{
continue;
}*//*
ConnectArgSourceNode(canvasGuid, fromNode.Guid, toNode.Guid, JunctionType.ReturnData, JunctionType.ArgData, pd.ArgDataSourceType, pd.Index);
}
}
}*/
#endregion
}
#endregion

View File

@@ -339,9 +339,14 @@ namespace Serein.NodeFlow.Env
var projectData = new SereinProjectData()
{
Librarys = this._flowLibraryService.GetAllLibraryInfo().ToArray(),
Nodes = _flowModelService.GetAllNodeModel().Select(node => node.ToInfo()).Where(info => info is not null).ToArray(),
Canvass = _flowModelService.GetAllCanvasModel().Select(canvas => canvas.ToInfo()).ToArray(),
//StartNode = NodeModels.Values.FirstOrDefault(it => it.IsStart)?.Guid,
Nodes = _flowModelService.GetAllNodeModel()
.Select(node => node.ToInfo())
.Where(info => info is not null)
.ToArray(),
Canvass = _flowModelService.GetAllCanvasModel()
.Where(canvas => canvas.Nodes.Count != 0 && !"Default".Equals(canvas.Name))
.Select(canvas => canvas.ToInfo())
.ToArray(),
};
return projectData;