跳转至

GFDialogueLine

API Reference / Dialogue / 类索引

  • 路径:addons/gf/extensions/dialogue/resources/gf_dialogue_line.gd
  • 模块:Dialogue
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:3.17.0

通用对话流程行。 行可以表示可展示文本、跳转、mutation 请求或结束点。它不规定剧本语法、 对话框 UI、角色表或项目状态字段。

成员概览

类型 名称 签名
枚举 LineKind enum LineKind
属性 line_id var line_id: StringName = &""
属性 kind var kind: LineKind = LineKind.TEXT
属性 speaker_id var speaker_id: StringName = &""
属性 text var text: String = ""
属性 next_line_id var next_line_id: StringName = &""
属性 jump_line_id var jump_line_id: StringName = &""
属性 condition_id var condition_id: StringName = &""
属性 condition_payload var condition_payload: Variant = null
属性 fallback_line_id var fallback_line_id: StringName = &""
属性 mutation_id var mutation_id: StringName = &""
属性 mutation_payload var mutation_payload: Variant = null
属性 responses var responses: Array[GFDialogueResponse] = []
属性 tags var tags: PackedStringArray = PackedStringArray()
属性 metadata var metadata: Dictionary = {}
方法 has_responses func has_responses() -> bool:
方法 get_available_responses func get_available_responses(context: GFDialogueContext = null) -> Array[GFDialogueResponse]:
方法 get_response func get_response(response_id: StringName) -> GFDialogueResponse:
方法 can_enter func can_enter(context: GFDialogueContext) -> bool:
方法 get_default_next_line_id func get_default_next_line_id() -> StringName:
方法 duplicate_line func duplicate_line() -> GFDialogueLine:
方法 to_dictionary func to_dictionary() -> Dictionary:

枚举

LineKind

  • API:public
enum LineKind { ## 可展示文本行。 TEXT, ## 请求执行上下文 mutation 后继续。 MUTATION, ## 直接跳转到另一行。 JUMP, ## 结束当前对话。 END, }

对话行类型。

属性

line_id

  • API:public
var line_id: StringName = &""

行 ID。

kind

  • API:public
var kind: LineKind = LineKind.TEXT

行类型。

speaker_id

  • API:public
var speaker_id: StringName = &""

说话者 ID 或项目自定义主体键。

text

  • API:public
var text: String = ""

文本或项目自定义文本键。

next_line_id

  • API:public
var next_line_id: StringName = &""

默认后继行 ID。

jump_line_id

  • API:public
var jump_line_id: StringName = &""

跳转行 ID。kind == JUMP 时优先使用。

condition_id

  • API:public
var condition_id: StringName = &""

条件 ID。为空表示不需要条件判断。

condition_payload

  • API:public
var condition_payload: Variant = null

条件载荷。框架只透传给上下文处理器。

结构:

  • condition_payload: 条件处理器接收的任意项目载荷;框架只透传,不解释其中结构。

fallback_line_id

  • API:public
var fallback_line_id: StringName = &""

条件不通过时的后继行 ID。为空时由 Runner 按策略跳过或结束。

mutation_id

  • API:public
var mutation_id: StringName = &""

mutation ID。kind == MUTATION 时由 Runner 请求上下文处理。

mutation_payload

  • API:public
var mutation_payload: Variant = null

mutation 载荷。框架只透传给上下文处理器。

结构:

  • mutation_payload: mutation 处理器接收的任意项目载荷;框架只透传,不解释其中结构。

responses

  • API:public
var responses: Array[GFDialogueResponse] = []

响应选项。

tags

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

语义标签。框架不解释标签含义。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。框架不解释该字段。

结构:

  • metadata: 项目自定义元数据 Dictionary;框架保留并复制该字段,但不解释其中键值。

方法

has_responses

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

检查行是否有响应。

返回:存在响应时返回 true。

get_available_responses

  • API:public
func get_available_responses(context: GFDialogueContext = null) -> Array[GFDialogueResponse]:

获取可用响应。

参数:

名称 说明
context 对话上下文。

返回:可用响应列表。

get_response

  • API:public
func get_response(response_id: StringName) -> GFDialogueResponse:

按 ID 获取响应。

参数:

名称 说明
response_id 响应 ID。

返回:响应;不存在时返回 null。

can_enter

  • API:public
func can_enter(context: GFDialogueContext) -> bool:

检查行是否可进入。

参数:

名称 说明
context 对话上下文。

返回:可进入时返回 true。

get_default_next_line_id

  • API:public
func get_default_next_line_id() -> StringName:

获取默认后继行 ID。

返回:后继行 ID。

duplicate_line

  • API:public
func duplicate_line() -> GFDialogueLine:

创建深拷贝。

返回:行副本。

to_dictionary

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

转换为字典。

返回:行快照。

结构:

  • return: 包含 line_id、kind、speaker_id、text、next_line_id、jump_line_id、condition_id、condition_payload、fallback_line_id、mutation_id、mutation_payload、responses、tags 和 metadata 字段的 Dictionary。