跳转至

GFSaveProfile

API Reference / Save / 类索引

  • 路径:addons/gf/extensions/save/profile/gf_save_profile.gd
  • 模块:Save
  • 继承:Resource
  • API:public
  • 类别:资源定义 (resource_definition)
  • 首次版本:unreleased

多 section 存档的项目级声明。 Profile 从 provider 列表派生唯一文档 schema,避免项目同时维护重复的 section 版本清单。运行时数据仍由 provider 持有,Profile 不解释业务字段。

成员概览

类型 名称 签名
常量 UNKNOWN_SECTION_REJECT const UNKNOWN_SECTION_REJECT: StringName = &"reject"
常量 UNKNOWN_SECTION_PRESERVE const UNKNOWN_SECTION_PRESERVE: StringName = &"preserve"
常量 UNKNOWN_SECTION_DROP const UNKNOWN_SECTION_DROP: StringName = &"drop"
属性 profile_id var profile_id: StringName = &""
属性 schema_id var schema_id: StringName = &""
属性 file_name var file_name: String = ""
属性 schema_version var schema_version: int = 1
属性 providers var providers: Array[GFSaveSectionProvider] = []
属性 recovery_policy var recovery_policy: GFSaveRecoveryPolicy = GFSaveRecoveryPolicy.new()
属性 save_enabled var save_enabled: bool = true
属性 load_enabled var load_enabled: bool = true
属性 unknown_section_policy var unknown_section_policy: StringName = UNKNOWN_SECTION_REJECT
方法 validate_profile func validate_profile() -> Dictionary:
方法 build_schema func build_schema() -> GFSaveDocumentSchema:
方法 get_effective_schema_id func get_effective_schema_id() -> StringName:
方法 get_provider func get_provider(section_id: StringName) -> GFSaveSectionProvider:
方法 get_providers func get_providers() -> Array[GFSaveSectionProvider]:

常量

UNKNOWN_SECTION_REJECT

  • API:public
  • 首次版本:unreleased
const UNKNOWN_SECTION_REJECT: StringName = &"reject"

拒绝当前 Profile 未声明的 section。

UNKNOWN_SECTION_PRESERVE

  • API:public
  • 首次版本:unreleased
const UNKNOWN_SECTION_PRESERVE: StringName = &"preserve"

读取时接受未知 section,并在后续保存中原样保留。

UNKNOWN_SECTION_DROP

  • API:public
  • 首次版本:unreleased
const UNKNOWN_SECTION_DROP: StringName = &"drop"

读取时接受未知 section,并在后续保存中显式丢弃。

属性

profile_id

  • API:public
  • 首次版本:unreleased
var profile_id: StringName = &""

稳定运行时 Profile ID。

schema_id

  • API:public
  • 首次版本:unreleased
var schema_id: StringName = &""

稳定文档 schema ID;为空时使用 profile_id。 将它与运行时 ID 分离后,同一文档定义可用于多个槽位或存储目标。

file_name

  • API:public
  • 首次版本:unreleased
var file_name: String = ""

GFStorageUtility 管理的相对文件名。

schema_version

  • API:public
  • 首次版本:unreleased
var schema_version: int = 1

当前文档 schema 版本。

providers

  • API:public
  • 首次版本:unreleased
var providers: Array[GFSaveSectionProvider] = []

拥有各 section 的 provider,顺序决定采集与应用顺序。

recovery_policy

  • API:public
  • 首次版本:unreleased
var recovery_policy: GFSaveRecoveryPolicy = GFSaveRecoveryPolicy.new()

缺失、损坏和临时 IO 失败的显式政策。

save_enabled

  • API:public
  • 首次版本:unreleased
var save_enabled: bool = true

Profile 是否接受保存和 flush 请求。

load_enabled

  • API:public
  • 首次版本:unreleased
var load_enabled: bool = true

Profile 是否接受读取请求。

unknown_section_policy

  • API:public
  • 首次版本:unreleased
var unknown_section_policy: StringName = UNKNOWN_SECTION_REJECT

未声明 section 的处理政策。 默认拒绝,避免一次读取后再保存时静默删除未知数据。

方法

validate_profile

  • API:public
  • 首次版本:unreleased
func validate_profile() -> Dictionary:

校验 profile、恢复政策和全部 provider。

返回:结构化校验报告。

结构:

  • return: GFValidationReportDictionary-compatible report with issues, counts, summary, and next_actions.

build_schema

  • API:public
  • 首次版本:unreleased
func build_schema() -> GFSaveDocumentSchema:

从当前 provider 清单派生文档 schema。

返回:当前文档 schema;profile 无效时仍返回可诊断对象。

get_effective_schema_id

  • API:public
  • 首次版本:unreleased
func get_effective_schema_id() -> StringName:

获取写入文档使用的 schema ID。

返回:schema_id 非空时返回它,否则返回 profile_id

get_provider

  • API:public
  • 首次版本:unreleased
func get_provider(section_id: StringName) -> GFSaveSectionProvider:

获取指定 section 的唯一 provider。

参数:

名称 说明
section_id 目标 section ID。

返回:匹配 provider;不存在时返回 null。

get_providers

  • API:public
  • 首次版本:unreleased
func get_providers() -> Array[GFSaveSectionProvider]:

获取 provider 引用的隔离数组。

返回:按声明顺序排列的 provider。