跳转至

GFContentPackageManifest

API Reference / Extensions / Content Package / 类索引

  • 路径:addons/gf/extensions/content_package/resources/gf_content_package_manifest.gd
  • 模块:Extensions / Content Package
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:4.4.0

通用内容包 manifest。 描述一个内容包的稳定包 ID、版本、依赖和资源键映射。GF 只校验结构、路径安全和依赖关系, 不解释内容类型的业务语义,也不负责下载、启用策略或具体玩法规则。

成员概览

类型 名称 签名
常量 FILE_NAME const FILE_NAME: String = "gf_content_package.json"
常量 SCHEMA_VERSION const SCHEMA_VERSION: int = 1
属性 package_id var package_id: StringName = &""
属性 display_name var display_name: String = ""
属性 version var version: String = ""
属性 content_types var content_types: PackedStringArray = PackedStringArray()
属性 dependencies var dependencies: PackedStringArray = PackedStringArray()
属性 resources var resources: Array[Dictionary] = []
属性 metadata var metadata: Dictionary = {}
属性 root_path var root_path: String = ""
属性 source_path var source_path: String = ""
方法 configure func configure( p_package_id: StringName, p_version: String, p_resources: Array[Dictionary] = [], p_display_name: String = "", p_content_types: PackedStringArray = PackedStringArray(), p_dependencies: PackedStringArray = PackedStringArray(), p_metadata: Dictionary = {}, p_root_path: String = "", p_source_path: String = "" ) -> GFContentPackageManifest:
方法 apply_dictionary func apply_dictionary(data: Dictionary, p_root_path: String = "", p_source_path: String = "") -> void:
方法 to_dictionary func to_dictionary() -> Dictionary:
方法 duplicate_manifest func duplicate_manifest() -> GFContentPackageManifest:
方法 is_valid func is_valid(options: Dictionary = {}) -> bool:
方法 get_validation_report func get_validation_report(options: Dictionary = {}) -> Dictionary:
方法 get_validation_errors func get_validation_errors(options: Dictionary = {}) -> Array[String]:
方法 get_normalized_resources func get_normalized_resources() -> Array[Dictionary]:
方法 get_resource_keys func get_resource_keys() -> PackedStringArray:
方法 from_dictionary static func from_dictionary( data: Dictionary, p_root_path: String = "", p_source_path: String = "" ) -> GFContentPackageManifest:
方法 load_from_path static func load_from_path(path: String) -> GFContentPackageManifest:

常量

FILE_NAME

  • API:public
const FILE_NAME: String = "gf_content_package.json"

内容包 JSON manifest 默认文件名。

SCHEMA_VERSION

  • API:public
const SCHEMA_VERSION: int = 1

当前 manifest schema 版本。

属性

package_id

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

稳定内容包 ID。

display_name

  • API:public
var display_name: String = ""

编辑器或诊断显示名。

version

  • API:public
var version: String = ""

内容包版本字符串。

content_types

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

内容类型标签。GF 只做归一化和诊断,不解释业务语义。

dependencies

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

依赖内容包 ID 列表。

resources

  • API:public
var resources: Array[Dictionary] = []

资源键映射列表。

结构:

  • resources: Array[Dictionary],每项包含 key、path、可选 type_hint、priority 和 metadata。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。GF 不解释其中业务字段。

结构:

  • metadata: Dictionary project-defined content package metadata.

root_path

  • API:public
var root_path: String = ""

manifest 所在内容包根目录。通常由加载路径推导。

source_path

  • API:public
var source_path: String = ""

manifest 文件路径。通常指向 gf_content_package.json

方法

configure

  • API:public
func configure( p_package_id: StringName, p_version: String, p_resources: Array[Dictionary] = [], p_display_name: String = "", p_content_types: PackedStringArray = PackedStringArray(), p_dependencies: PackedStringArray = PackedStringArray(), p_metadata: Dictionary = {}, p_root_path: String = "", p_source_path: String = "" ) -> GFContentPackageManifest:

配置 manifest。

参数:

名称 说明
p_package_id 稳定内容包 ID。
p_version 内容包版本。
p_resources 资源键映射列表。
p_display_name 可选显示名。
p_content_types 内容类型标签。
p_dependencies 依赖内容包 ID 列表。
p_metadata 项目自定义元数据。
p_root_path 内容包根目录。
p_source_path manifest 文件路径。

返回:当前 manifest。

结构:

  • p_resources: Array[Dictionary],每项包含 key、path、可选 type_hint、priority 和 metadata。
  • p_metadata: Dictionary project-defined content package metadata.

apply_dictionary

  • API:public
func apply_dictionary(data: Dictionary, p_root_path: String = "", p_source_path: String = "") -> void:

从字典应用 manifest 字段。

参数:

名称 说明
data manifest 字典。
p_root_path 内容包根目录。
p_source_path manifest 文件路径。

结构:

  • data: Dictionary,支持 package_id/id、display_name/name、version、content_types、dependencies、resources 和 metadata。

to_dictionary

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

转换为内容包 manifest 字典。

返回:manifest 字典副本。

结构:

  • return: Dictionary,包含 schema_version、package_id、display_name、version、content_types、dependencies、resources 和 metadata。

duplicate_manifest

  • API:public
func duplicate_manifest() -> GFContentPackageManifest:

创建 manifest 深拷贝。

返回:新 manifest。

is_valid

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

检查 manifest 是否有效。

参数:

名称 说明
options 校验选项。check_resource_exists 默认为 false。

返回:无 error issue 时返回 true。

结构:

  • options: Dictionary,可包含 check_resource_exists: bool。

get_validation_report

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

获取 manifest 校验报告。

参数:

名称 说明
options 校验选项。check_resource_exists 默认为 false。

返回:GFValidationReportDictionary 兼容报告。

结构:

  • options: Dictionary,可包含 check_resource_exists: bool。
  • return: GFValidationReportDictionary.finalize_report() 生成的 Dictionary,包含 ok、healthy、summary、issues、next_action、error_count、warning_count、issue_count、package_id、source_path 和 resource_count。

get_validation_errors

  • API:public
func get_validation_errors(options: Dictionary = {}) -> Array[String]:

获取校验错误文本列表。

参数:

名称 说明
options 校验选项。check_resource_exists 默认为 false。

返回:错误文本列表。

结构:

  • options: Dictionary,可包含 check_resource_exists: bool。

get_normalized_resources

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

获取归一化资源键映射。

返回:资源映射副本。

结构:

  • return: Array[Dictionary],每项包含 key、path、type_hint、priority、metadata 和 package_id。

get_resource_keys

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

获取 manifest 中声明的资源键列表。

返回:排序后的资源键列表。

from_dictionary

  • API:public
static func from_dictionary( data: Dictionary, p_root_path: String = "", p_source_path: String = "" ) -> GFContentPackageManifest:

从字典创建 manifest。

参数:

名称 说明
data manifest 字典。
p_root_path 内容包根目录。
p_source_path manifest 文件路径。

返回:新 manifest。

结构:

  • data: Dictionary,支持 package_id/id、display_name/name、version、content_types、dependencies、resources 和 metadata。

load_from_path

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

从 JSON manifest 文件加载内容包。

参数:

名称 说明
path manifest 文件路径。

返回:加载成功返回 manifest;解析失败返回 null。