GFFlowRunner¶
API Reference / Flow / 类索引
- 路径:
addons/gf/extensions/flow/runtime/gf_flow_runner.gd - 模块:
Flow - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
3.17.0
通用流程图执行器。 按节点后继关系执行 GFFlowGraph,支持 Signal 等待、取消和简单循环保护。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 信号 | flow_started |
signal flow_started(graph: GFFlowGraph) |
| 信号 | node_started |
signal node_started(node_id: StringName, node: GFFlowNode) |
| 信号 | node_completed |
signal node_completed(node_id: StringName, node: GFFlowNode) |
| 信号 | flow_completed |
signal flow_completed(report: Dictionary) |
| 信号 | flow_cancelled |
signal flow_cancelled(report: Dictionary) |
| 常量 | OUTCOME_COMPLETED |
const OUTCOME_COMPLETED: StringName = &"completed" |
| 常量 | OUTCOME_CANCELLED |
const OUTCOME_CANCELLED: StringName = &"cancelled" |
| 常量 | OUTCOME_ABORTED |
const OUTCOME_ABORTED: StringName = &"aborted" |
| 常量 | OUTCOME_REJECTED |
const OUTCOME_REJECTED: StringName = &"rejected" |
| 属性 | is_running |
var is_running: bool = false |
| 属性 | max_executed_nodes |
var max_executed_nodes: int = 1024 |
| 属性 | signal_timeout_seconds |
var signal_timeout_seconds: float = 30.0 |
| 属性 | signal_timeout_respects_time_scale |
var signal_timeout_respects_time_scale: bool = true |
| 属性 | isolate_graph_runtime_state |
var isolate_graph_runtime_state: bool = true |
| 属性 | max_report_trace_entries |
var max_report_trace_entries: int = 128: |
| 方法 | run |
func run(graph: GFFlowGraph, context: GFFlowContext = null) -> Dictionary: |
| 方法 | cancel |
func cancel() -> void: |
| 方法 | with_signal_timeout |
func with_signal_timeout(seconds: float, respect_time_scale: bool = true) -> GFFlowRunner: |
| 方法 | get_last_run_report |
func get_last_run_report() -> Dictionary: |
信号¶
flow_started¶
- API:
public - 首次版本:
3.17.0
流程开始时发出。
参数:
| 名称 | 说明 |
|---|---|
graph |
流程图资源。 |
node_started¶
- API:
public - 首次版本:
3.17.0
节点开始执行时发出。
参数:
| 名称 | 说明 |
|---|---|
node_id |
节点 ID。 |
node |
节点资源。 |
node_completed¶
- API:
public - 首次版本:
3.17.0
节点完成执行时发出。
参数:
| 名称 | 说明 |
|---|---|
node_id |
节点 ID。 |
node |
节点资源。 |
flow_completed¶
- API:
public - 首次版本:
3.17.0
流程完成时发出。
参数:
| 名称 | 说明 |
|---|---|
report |
本次有界结构化运行报告。 |
结构:
report: Dictionary,与 get_last_run_report() 返回结构相同。
flow_cancelled¶
- API:
public - 首次版本:
3.17.0
流程取消时发出。
参数:
| 名称 | 说明 |
|---|---|
report |
本次取消或中止的有界结构化运行报告。 |
结构:
report: Dictionary,与 get_last_run_report() 返回结构相同。
常量¶
OUTCOME_COMPLETED¶
- API:
public - 首次版本:
9.0.0
流程正常完成。
OUTCOME_CANCELLED¶
- API:
public - 首次版本:
9.0.0
流程收到显式取消请求。
OUTCOME_ABORTED¶
- API:
public - 首次版本:
9.0.0
流程因运行时保护条件中止。
OUTCOME_REJECTED¶
- API:
public - 首次版本:
9.0.0
run() 请求在开始执行前被拒绝。
属性¶
is_running¶
- API:
public - 首次版本:
3.17.0
当前是否正在执行。
max_executed_nodes¶
- API:
public - 首次版本:
3.17.0
最多执行节点数量,避免循环图无限运行。小于等于 0 表示不限制。
signal_timeout_seconds¶
- API:
public - 首次版本:
3.17.0
Signal 等待超时时间。小于等于 0 表示不启用超时。
signal_timeout_respects_time_scale¶
- API:
public - 首次版本:
3.17.0
Signal 超时计时是否跟随 GFTimeUtility 的暂停与 time_scale。
isolate_graph_runtime_state¶
- API:
public - 首次版本:
3.17.0
运行时是否把节点 runtime_state 隔离到 GFFlowContext,避免污染共享图资源。
max_report_trace_entries¶
- API:
public - 首次版本:
9.0.0
运行报告最多保留多少条节点 trace;总数与丢弃数始终单独统计。
方法¶
run¶
- API:
public - 首次版本:
3.17.0
运行流程图。
参数:
| 名称 | 说明 |
|---|---|
graph |
流程图资源。 |
context |
可选上下文。 |
返回:本次有界结构化运行报告;未开始时 outcome 为 rejected。
结构:
return: Dictionary,包含 schema_version、run_id、outcome、reason、单调时间、节点计数、pending_node_count、Signal 等待状态计数、trace 截断统计和有界 trace。
cancel¶
- API:
public - 首次版本:
3.17.0
请求取消流程。
with_signal_timeout¶
- API:
public - 首次版本:
3.17.0
设置 Signal 等待超时时间。
参数:
| 名称 | 说明 |
|---|---|
seconds |
秒数;小于等于 0 时表示不启用超时。 |
respect_time_scale |
是否跟随 GFTimeUtility 的暂停与 time_scale。 |
返回:当前执行器。
get_last_run_report¶
- API:
public - 首次版本:
9.0.0
获取最近一次已结束或被拒绝的运行报告副本。
返回:最近报告;尚未调用 run() 时为空字典。
结构:
return: Dictionary,与 run() 返回结构相同。