使用异步重构了节点执行方法,将触发器节点与其他节点统一。使用Channel代替Tcs更改了信号触发,使其符合异步编程的习惯。增加了节点是否启用勾选框、参数遮罩勾选框,节点右键面板增加中断功能(试验)。增加了选择后被选择的节点的视觉效果。更改平移缩放逻辑,使其更加符合一般的使用习惯。

This commit is contained in:
fengjiayi
2024-09-20 10:50:32 +08:00
parent 8335094656
commit f5924aa31e
30 changed files with 1298 additions and 539 deletions

View File

@@ -16,7 +16,7 @@ namespace Serein.Library.Entity
/// </summary>
public int Index { get; set; }
/// <summary>
/// 是否为显式参数
/// 是否为显式参数(固定值/表达式)
/// </summary>
public bool IsExplicitData { get; set; }
///// <summary>
@@ -45,21 +45,16 @@ namespace Serein.Library.Entity
public string DataValue { get; set; }
public string[] Items { get; set; }
public ExplicitData Clone() => new ExplicitData()
{
Index = Index,
IsExplicitData = IsExplicitData,
// ExplicitType = ExplicitType,
ExplicitTypeName = ExplicitTypeName,
DataType = DataType,
ParameterName = ParameterName,
ExplicitTypeName = ExplicitTypeName,
DataValue = string.IsNullOrEmpty(DataValue) ? string.Empty : DataValue,
Items = Items.Select(it => it).ToArray(),
};

View File

@@ -28,10 +28,17 @@ namespace Serein.Library.Entity
MethodName = MethodName,
MethodLockName = MethodLockName,
IsNetFramework = IsNetFramework,
IsProtectionParameter = IsProtectionParameter,
ExplicitDatas = ExplicitDatas?.Select(it => it.Clone()).ToArray(),
};
}
/// <summary>
/// 是否保护参数
/// </summary>
public bool IsProtectionParameter { get; set; }
/// <summary>
/// 作用实例的类型
/// </summary>

View File

@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Serein.Library.Entity
{
public class NodeDebugSetting
{
/// <summary>
/// 是否使能(调试中断功能)
/// </summary>
public bool IsEnable { get; set; } = true;
/// <summary>
/// 是否中断(调试中断功能)
/// </summary>
public bool IsInterrupt { get; set; } = false;
/// <summary>
/// 中断级别,暂时停止继续执行后继分支。
/// </summary>
public InterruptClass InterruptClass { get; set; } = InterruptClass.None;
}
/// <summary>
/// 中断级别,暂时停止继续执行后继分支。
/// </summary>
public enum InterruptClass
{
/// <summary>
/// 不中断
/// </summary>
None,
/// <summary>
/// 分支中断,当前节点。
/// </summary>
Branch,
/// <summary>
/// 分组中断,相同中断分组的节点。
/// </summary>
Group,
/// <summary>
/// 全局中断,其它所有节点。
/// </summary>
Global,
}
}