mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-03-03 00:00:49 +08:00
74 lines
1.9 KiB
C#
74 lines
1.9 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace Serein.NodeFlow
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
public enum DynamicNodeType
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 初始化
|
|||
|
|
/// </summary>
|
|||
|
|
Init,
|
|||
|
|
/// <summary>
|
|||
|
|
/// 开始载入
|
|||
|
|
/// </summary>
|
|||
|
|
Loading,
|
|||
|
|
/// <summary>
|
|||
|
|
/// 结束
|
|||
|
|
/// </summary>
|
|||
|
|
Exit,
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 触发器
|
|||
|
|
/// </summary>
|
|||
|
|
Flipflop,
|
|||
|
|
/// <summary>
|
|||
|
|
/// 条件节点
|
|||
|
|
/// </summary>
|
|||
|
|
Condition,
|
|||
|
|
/// <summary>
|
|||
|
|
/// 动作节点
|
|||
|
|
/// </summary>
|
|||
|
|
Action,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 用来判断一个类是否需要注册并构建实例(单例模式场景使用)
|
|||
|
|
/// </summary>
|
|||
|
|
[AttributeUsage(AttributeTargets.Class)]
|
|||
|
|
public class DynamicFlowAttribute(bool scan = true) : Attribute
|
|||
|
|
{
|
|||
|
|
public bool Scan { get; set; } = scan;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 标记一个方法是什么类型,加载dll后用来拖拽到画布中
|
|||
|
|
/// </summary>
|
|||
|
|
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
|
|||
|
|
public class MethodDetailAttribute(DynamicNodeType methodDynamicType,
|
|||
|
|
string methodTips = "",
|
|||
|
|
bool scan = true,
|
|||
|
|
string lockName = "") : Attribute
|
|||
|
|
{
|
|||
|
|
public bool Scan { get; set; } = scan;
|
|||
|
|
public string MethodTips { get; } = methodTips;
|
|||
|
|
public DynamicNodeType MethodDynamicType { get; } = methodDynamicType;
|
|||
|
|
public string LockName { get; } = lockName;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 是否为显式参数
|
|||
|
|
/// </summary>
|
|||
|
|
[AttributeUsage(AttributeTargets.Parameter)]
|
|||
|
|
public class ExplicitAttribute : Attribute // where TEnum : Enum
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|