init commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
using StandardScene.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static StandardScene.Chained.AbstractLoopMission;
|
||||
|
||||
namespace StandardScene.Chained.Loop
|
||||
{
|
||||
/// <summary>
|
||||
/// 进入点规则:返回是否允许进入。
|
||||
/// </summary>
|
||||
public interface IEnterRule
|
||||
{
|
||||
bool CanEnter(LoopPoint point, LoopTask task, object context = null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 离开点规则:返回是否允许离开。
|
||||
/// </summary>
|
||||
public interface IExitRule
|
||||
{
|
||||
bool CanExit(LoopPoint point, LoopTask task, object context = null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 合流规则:从候选任务中选择一个
|
||||
/// </summary>
|
||||
public interface IJoinRule
|
||||
{
|
||||
LoopTask SelectJoin(IEnumerable<LoopTask> candidates, LoopPoint point);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分流规则:为任务选取下一分支标识
|
||||
/// </summary>
|
||||
public interface IBranchRule
|
||||
{
|
||||
string SelectBranch(LoopPoint point, LoopTask task, object context = null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 任务策略接口:提供任务数据来源与基础策略决策(由 LoopViewer 或其它组件实现/替换)。
|
||||
/// </summary>
|
||||
public interface ITaskStrategy
|
||||
{
|
||||
/// <summary>
|
||||
/// 返回当前策略下的任务集合(策略负责数据来源,例如读取 LoopViewer 的 JSON)。
|
||||
/// </summary>
|
||||
IEnumerable<LoopTask> GetTasks();
|
||||
|
||||
/// <summary>
|
||||
/// 刷新策略数据(例如重新加载 JSON)。
|
||||
/// </summary>
|
||||
void Refresh();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user