跳转至

GFAccessGenerator

API Reference / Kernel / 类索引

  • 路径:addons/gf/kernel/editor/gf_access_generator.gd
  • 模块:Kernel
  • 继承:RefCounted
  • API:public
  • 类别:编辑器 API (editor_api)
  • 首次版本:3.17.0

生成强类型 GF 访问器脚本。 生成结果用于减少 Gf.get_model(Type) as Type 这类重复样板, 并为 Model / System / Utility / Command / Query 提供稳定的 IDE 补全入口。

成员概览

类型 名称 签名
枚举 TargetKind enum TargetKind
常量 DEFAULT_OUTPUT_PATH const DEFAULT_OUTPUT_PATH: String = "res://gf/generated/gf_access.gd"
常量 DEFAULT_PROJECT_OUTPUT_PATH const DEFAULT_PROJECT_OUTPUT_PATH: String = "res://gf/generated/gf_project_access.gd"
方法 generate func generate(output_path: String = DEFAULT_OUTPUT_PATH, overwrite_existing: bool = true) -> Error:
方法 generate_project_access func generate_project_access(output_path: String = DEFAULT_PROJECT_OUTPUT_PATH, overwrite_existing: bool = true) -> Error:
方法 collect_records func collect_records() -> Array[Dictionary]:
方法 collect_project_records func collect_project_records() -> Dictionary:
方法 build_source func build_source(records: Array) -> String:
方法 build_project_source func build_project_source(records: Dictionary) -> String:
方法 save_source func save_source(output_path: String, source: String, overwrite_existing: bool = true) -> Error:

枚举

TargetKind

  • API:public
enum TargetKind { ## Model 访问器目标。 MODEL, ## System 访问器目标。 SYSTEM, ## Utility 访问器目标。 UTILITY, ## Command 访问器目标。 COMMAND, ## Query 访问器目标。 QUERY, ## Capability 访问器目标。 CAPABILITY, }

访问器目标类型。

常量

DEFAULT_OUTPUT_PATH

  • API:public
const DEFAULT_OUTPUT_PATH: String = "res://gf/generated/gf_access.gd"

默认强类型访问器输出路径。

DEFAULT_PROJECT_OUTPUT_PATH

  • API:public
const DEFAULT_PROJECT_OUTPUT_PATH: String = "res://gf/generated/gf_project_access.gd"

默认项目常量访问器输出路径。

方法

generate

  • API:public
func generate(output_path: String = DEFAULT_OUTPUT_PATH, overwrite_existing: bool = true) -> Error:

扫描项目 class_name 脚本并生成访问器。

参数:

名称 说明
output_path 生成文件输出路径。
overwrite_existing 为 false 时目标已存在会返回 ERR_ALREADY_EXISTS。

返回:写入结果错误码。

generate_project_access

  • API:public
func generate_project_access(output_path: String = DEFAULT_PROJECT_OUTPUT_PATH, overwrite_existing: bool = true) -> Error:

生成项目常量访问器。

参数:

名称 说明
output_path 生成文件输出路径。
overwrite_existing 为 false 时目标已存在会返回 ERR_ALREADY_EXISTS。

返回:写入结果错误码。

collect_records

  • API:public
func collect_records() -> Array[Dictionary]:

收集当前项目中可生成访问器的 GF 类型记录。

返回:类型记录列表。

结构:

  • return: Array of Dictionary type records with class_name, path, script, kind, and access metadata.

collect_project_records

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

收集项目层常量记录,包括命名层、InputMap 动作和 GF ProjectSettings。

返回:项目常量记录。

结构:

  • return: Dictionary with layers, input_actions, and settings arrays.

build_source

  • API:public
func build_source(records: Array) -> String:

根据记录生成访问器源码。测试可直接调用该方法验证输出。

参数:

名称 说明
records 生成访问器时使用的类型记录列表。

返回:GDScript 源码。

结构:

  • records: Array of Dictionary type records containing class_name, path, and kind.

build_project_source

  • API:public
func build_project_source(records: Dictionary) -> String:

根据项目常量记录生成访问器源码。

参数:

名称 说明
records 生成访问器时使用的类型记录列表。

返回:GDScript 源码。

结构:

  • records: Dictionary with layers, input_actions, and settings arrays.

save_source

  • API:public
func save_source(output_path: String, source: String, overwrite_existing: bool = true) -> Error:

保存生成源码到指定路径。

参数:

名称 说明
output_path 生成文件输出路径。
source 源对象或资源。
overwrite_existing 为 false 时目标已存在会返回 ERR_ALREADY_EXISTS。

返回:写入结果错误码。