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
内容包 JSON manifest 默认文件名。
SCHEMA_VERSION¶
- API:
public
当前 manifest schema 版本。
属性¶
package_id¶
- API:
public
稳定内容包 ID。
display_name¶
- API:
public
编辑器或诊断显示名。
version¶
- API:
public
内容包版本字符串。
content_types¶
- API:
public
内容类型标签。GF 只做归一化和诊断,不解释业务语义。
dependencies¶
- API:
public
依赖内容包 ID 列表。
resources¶
- API:
public
资源键映射列表。
结构:
resources: Array[Dictionary],每项包含 key、path、可选 type_hint、priority 和 metadata。
metadata¶
- API:
public
项目自定义元数据。GF 不解释其中业务字段。
结构:
metadata: Dictionary project-defined content package metadata.
root_path¶
- API:
public
manifest 所在内容包根目录。通常由加载路径推导。
source_path¶
- API:
public
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
转换为内容包 manifest 字典。
返回:manifest 字典副本。
结构:
return: Dictionary,包含 schema_version、package_id、display_name、version、content_types、dependencies、resources 和 metadata。
duplicate_manifest¶
- API:
public
创建 manifest 深拷贝。
返回:新 manifest。
is_valid¶
- API:
public
检查 manifest 是否有效。
参数:
| 名称 | 说明 |
|---|---|
options |
校验选项。check_resource_exists 默认为 false。 |
返回:无 error issue 时返回 true。
结构:
options: Dictionary,可包含 check_resource_exists: bool。
get_validation_report¶
- API:
public
获取 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
获取校验错误文本列表。
参数:
| 名称 | 说明 |
|---|---|
options |
校验选项。check_resource_exists 默认为 false。 |
返回:错误文本列表。
结构:
options: Dictionary,可包含 check_resource_exists: bool。
get_normalized_resources¶
- API:
public
获取归一化资源键映射。
返回:资源映射副本。
结构:
return: Array[Dictionary],每项包含 key、path、type_hint、priority、metadata 和 package_id。
get_resource_keys¶
- API:
public
获取 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
从 JSON manifest 文件加载内容包。
参数:
| 名称 | 说明 |
|---|---|
path |
manifest 文件路径。 |
返回:加载成功返回 manifest;解析失败返回 null。