跳转至

GFContentPackageUtility

API Reference / Extensions / Content Package / 类索引

  • 路径:addons/gf/extensions/content_package/runtime/gf_content_package_utility.gd
  • 模块:Extensions / Content Package
  • 继承:GFUtility
  • API:public
  • 类别:运行时服务 (runtime_service)
  • 首次版本:4.4.0

内容包发现、目录构建和资源解析注册服务。 维护显式 source root 列表,加载其中的 gf_content_package.json,构建 GFContentPackageCatalog, 并把内容包资源键映射同步到 GFResourceResolverUtility。它不下载内容、不扫描全项目、不决定包启用策略。

成员概览

类型 名称 签名
信号 catalog_rebuilt signal catalog_rebuilt(catalog: GFContentPackageCatalog)
方法 register_source_root func register_source_root(root_path: String) -> bool:
方法 unregister_source_root func unregister_source_root(root_path: String) -> bool:
方法 clear_source_roots func clear_source_roots() -> void:
方法 get_source_roots func get_source_roots() -> PackedStringArray:
方法 get_catalog func get_catalog() -> GFContentPackageCatalog:
方法 discover_manifest_paths func discover_manifest_paths(root_path: String = "") -> PackedStringArray:
方法 load_manifest func load_manifest(path: String) -> GFContentPackageManifest:
方法 rebuild_catalog func rebuild_catalog(options: Dictionary = {}) -> Dictionary:
方法 set_manifests func set_manifests( manifests: Array[GFContentPackageManifest], options: Dictionary = {} ) -> Dictionary:
方法 register_resources func register_resources(resolver: GFResourceResolverUtility, options: Dictionary = {}) -> Dictionary:
方法 get_debug_snapshot func get_debug_snapshot() -> Dictionary:

信号

catalog_rebuilt

  • API:public
signal catalog_rebuilt(catalog: GFContentPackageCatalog)

当内容包目录重建后发出。

参数:

名称 说明
catalog 当前内容包目录。

方法

register_source_root

  • API:public
func register_source_root(root_path: String) -> bool:

注册内容包 source root。

参数:

名称 说明
root_path res:// 下的内容包根目录。该目录自身或其直接子目录可包含 gf_content_package.json

返回:注册成功返回 true。

unregister_source_root

  • API:public
func unregister_source_root(root_path: String) -> bool:

注销内容包 source root。

参数:

名称 说明
root_path 已注册的 source root。

返回:注销成功返回 true。

clear_source_roots

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

清空内容包 source root。

get_source_roots

  • API:public
func get_source_roots() -> PackedStringArray:

获取内容包 source root 列表。

返回:source root 副本。

get_catalog

  • API:public
func get_catalog() -> GFContentPackageCatalog:

获取当前内容包目录。

返回:内容包目录。

discover_manifest_paths

  • API:public
func discover_manifest_paths(root_path: String = "") -> PackedStringArray:

发现 source root 中的内容包 manifest 路径。

参数:

名称 说明
root_path 可选 source root;为空时使用全部已注册 source root。

返回:manifest 路径列表。

load_manifest

  • API:public
func load_manifest(path: String) -> GFContentPackageManifest:

从 manifest 路径加载内容包。

参数:

名称 说明
path manifest 文件路径。

返回:内容包 manifest;加载失败返回 null。

rebuild_catalog

  • API:public
func rebuild_catalog(options: Dictionary = {}) -> Dictionary:

从已注册 source root 重建内容包目录。

参数:

名称 说明
options 校验选项,透传给 GFContentPackageCatalog。

返回:GFValidationReportDictionary 兼容报告。

结构:

  • options: Dictionary,可包含 check_resource_exists: bool。
  • return: GFValidationReportDictionary.finalize_report() 生成的 Dictionary,并包含 package_count、package_ids、ordered_package_ids 和 duplicate_package_ids。

set_manifests

  • API:public
func set_manifests( manifests: Array[GFContentPackageManifest], options: Dictionary = {} ) -> Dictionary:

手动替换内容包目录。

参数:

名称 说明
manifests 内容包 manifest 列表。
options 校验选项,透传给 GFContentPackageCatalog。

返回:GFValidationReportDictionary 兼容报告。

结构:

  • manifests: Array[GFContentPackageManifest],无效项会被忽略或进入诊断。
  • options: Dictionary,可包含 check_resource_exists: bool。
  • return: GFValidationReportDictionary.finalize_report() 生成的 Dictionary,并包含 package_count、package_ids、ordered_package_ids 和 duplicate_package_ids。

register_resources

  • API:public
func register_resources(resolver: GFResourceResolverUtility, options: Dictionary = {}) -> Dictionary:

把当前内容包目录同步到资源解析器。

参数:

名称 说明
resolver 标准资源解析器。
options 注册选项。base_priority 默认为 0;check_resource_exists 默认为 false。

返回:GFValidationReportDictionary 兼容报告,并包含 registered_count。

结构:

  • options: Dictionary,可包含 base_priority: int 和 check_resource_exists: bool。
  • return: GFValidationReportDictionary.finalize_report() 生成的 Dictionary,并包含 registered_count。

get_debug_snapshot

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

获取内容包服务调试快照。

返回:调试快照。

结构:

  • return: Dictionary,包含 source_roots 和 catalog。