跳转至

GFFlowContext

API Reference / Flow / 类索引

  • 路径:addons/gf/extensions/flow/runtime/gf_flow_context.gd
  • 模块:Flow
  • 继承:RefCounted
  • API:public
  • 类别:运行时句柄 (runtime_handle)
  • 首次版本:3.17.0

通用流程图执行上下文。 用于在流程节点之间共享数据,并提供可选的 GFArchitecture 访问入口。

成员概览

类型 名称 签名
属性 values var values: Dictionary = {}
属性 next_node_ids var next_node_ids: PackedStringArray = PackedStringArray()
属性 has_next_node_override var has_next_node_override: bool = false
方法 set_architecture func set_architecture(architecture: GFArchitecture) -> void:
方法 get_architecture func get_architecture() -> GFArchitecture:
方法 set_value func set_value(key: StringName, value: Variant) -> GFFlowContext:
方法 get_value func get_value(key: StringName, default_value: Variant = null) -> Variant:
方法 set_next_nodes func set_next_nodes(node_ids: PackedStringArray) -> void:
方法 has_next_nodes_override func has_next_nodes_override() -> bool:
方法 clear_next_nodes func clear_next_nodes() -> void:
方法 register_condition_handler func register_condition_handler(condition_id: StringName, handler: Callable) -> bool:
方法 unregister_condition_handler func unregister_condition_handler(condition_id: StringName) -> void:
方法 has_condition_handler func has_condition_handler(condition_id: StringName) -> bool:
方法 clear_condition_handlers func clear_condition_handlers() -> void:
方法 query_condition func query_condition( condition_id: StringName, payload: Variant = null, default_value: Variant = false ) -> Dictionary:
方法 set_node_runtime_value func set_node_runtime_value(node_id: StringName, key: StringName, value: Variant) -> void:
方法 get_node_runtime_value func get_node_runtime_value(node_id: StringName, key: StringName, default_value: Variant = null) -> Variant:
方法 clear_node_runtime_state func clear_node_runtime_state(node_id: StringName = &"") -> void:
方法 serialize_runtime_state func serialize_runtime_state() -> Dictionary:
方法 deserialize_runtime_state func deserialize_runtime_state(data: Dictionary) -> void:

属性

values

  • API:public
var values: Dictionary = {}

共享数据表。

结构:

  • values: 流程执行期间共享的项目自定义 Dictionary;键通常为 StringName,值由项目决定。

next_node_ids

  • API:public
var next_node_ids: PackedStringArray = PackedStringArray()

下一个节点覆盖。流程节点可写入该列表动态控制分支。

has_next_node_override

  • API:public
var has_next_node_override: bool = false

是否显式覆盖了下一个节点。允许节点用空列表表达“停止继续推进”。

方法

set_architecture

  • API:public
func set_architecture(architecture: GFArchitecture) -> void:

设置上下文所属架构。

参数:

名称 说明
architecture 架构实例。

get_architecture

  • API:public
func get_architecture() -> GFArchitecture:

获取上下文所属架构。

返回:架构实例;不可用时返回 null。

set_value

  • API:public
func set_value(key: StringName, value: Variant) -> GFFlowContext:

写入共享值。

参数:

名称 说明
key 键。
value 值。

返回:当前上下文,便于链式构造。

结构:

  • value: 要写入 values 的任意项目值。

get_value

  • API:public
func get_value(key: StringName, default_value: Variant = null) -> Variant:

读取共享值。

参数:

名称 说明
key 键。
default_value 默认值。

返回:共享值或默认值。

结构:

  • default_value: key 缺失时返回的任意默认值。
  • return: values 中的项目值,或传入的 default_value。

set_next_nodes

  • API:public
func set_next_nodes(node_ids: PackedStringArray) -> void:

覆盖当前节点执行后的下一个节点列表。

参数:

名称 说明
node_ids 节点标识列表。

has_next_nodes_override

  • API:public
func has_next_nodes_override() -> bool:

检查当前节点是否显式覆盖了后继节点。

返回:已覆盖返回 true。

clear_next_nodes

  • API:public
func clear_next_nodes() -> void:

清空下一个节点覆盖。

register_condition_handler

  • API:public
func register_condition_handler(condition_id: StringName, handler: Callable) -> bool:

注册条件查询处理器。

参数:

名称 说明
condition_id 条件标识。
handler 查询回调,建议签名为 func(condition_id: StringName, payload: Variant, context: GFFlowContext) -> Variant。

返回:注册成功返回 true。

unregister_condition_handler

  • API:public
func unregister_condition_handler(condition_id: StringName) -> void:

注销条件查询处理器。

参数:

名称 说明
condition_id 条件标识。

has_condition_handler

  • API:public
func has_condition_handler(condition_id: StringName) -> bool:

检查条件查询处理器是否存在。

参数:

名称 说明
condition_id 条件标识。

返回:存在返回 true。

clear_condition_handlers

  • API:public
func clear_condition_handlers() -> void:

清空所有条件查询处理器。

query_condition

  • API:public
func query_condition( condition_id: StringName, payload: Variant = null, default_value: Variant = false ) -> Dictionary:

查询条件值。

参数:

名称 说明
condition_id 条件标识。
payload 调用方传入的载荷。
default_value 缺失处理器或处理器未返回值时使用的默认值。

返回:统一条件查询结果。

结构:

  • payload: 条件处理器接收的任意项目载荷;框架只透传。
  • default_value: 缺失处理器或处理器未返回值时使用的任意默认值。
  • return: 包含 ok、condition_id、value、reason 和 metadata 字段的 Dictionary。

set_node_runtime_value

  • API:public
func set_node_runtime_value(node_id: StringName, key: StringName, value: Variant) -> void:

写入指定流程节点的运行态值。

参数:

名称 说明
node_id 节点标识。
key 运行态键。
value 运行态值。

结构:

  • value: 要写入指定节点运行态的任意项目值。

get_node_runtime_value

  • API:public
func get_node_runtime_value(node_id: StringName, key: StringName, default_value: Variant = null) -> Variant:

读取指定流程节点的运行态值。

参数:

名称 说明
node_id 节点标识。
key 运行态键。
default_value 缺失时返回的默认值。

返回:运行态值或默认值。

结构:

  • default_value: 运行态缺失时返回的任意默认值。
  • return: 节点运行态中的项目值,或传入的 default_value。

clear_node_runtime_state

  • API:public
func clear_node_runtime_state(node_id: StringName = &"") -> void:

清空节点运行态。node_id 为空时清空全部节点运行态。

参数:

名称 说明
node_id 节点标识。

serialize_runtime_state

  • API:public
func serialize_runtime_state() -> Dictionary:

序列化上下文持有的节点运行态。

返回:运行态快照。

结构:

  • return: 包含 nodes 字段的 Dictionary;nodes 按 node_id 保存节点运行态 Dictionary。

deserialize_runtime_state

  • API:public
func deserialize_runtime_state(data: Dictionary) -> void:

反序列化节点运行态到当前上下文。

参数:

名称 说明
data 运行态快照。

结构:

  • data: serialize_runtime_state() 返回的运行态 Dictionary。