跳转至

GFSaveSlotStorageAdapter

API Reference / Save / 类索引

  • 路径:addons/gf/extensions/save/slots/gf_save_slot_storage_adapter.gd
  • 模块:Save
  • 继承:Resource
  • API:public
  • 类别:运行时服务 (runtime_service)
  • 首次版本:8.0.0

Save 扩展的通用槽位存储适配器。 把逻辑槽位索引映射到可配置的数据/元数据文件名,并通过 GFStorageUtility 的通用字典事务 API 完成持久化。该类不定义项目存档字段,也不绑定 UI。

成员概览

类型 名称 签名
常量 DEFAULT_DATA_FILE_TEMPLATE const DEFAULT_DATA_FILE_TEMPLATE: String = "slot_{index}_data.sav"
常量 DEFAULT_METADATA_FILE_TEMPLATE const DEFAULT_METADATA_FILE_TEMPLATE: String = "slot_{index}_meta.sav"
属性 data_file_template var data_file_template: String = DEFAULT_DATA_FILE_TEMPLATE
属性 metadata_file_template var metadata_file_template: String = DEFAULT_METADATA_FILE_TEMPLATE
方法 setup func setup(storage: GFStorageUtility) -> GFSaveSlotStorageAdapter:
方法 get_storage func get_storage() -> GFStorageUtility:
方法 get_data_file_name func get_data_file_name(slot_index: int) -> String:
方法 get_metadata_file_name func get_metadata_file_name(slot_index: int) -> String:
方法 save_slot func save_slot(slot_index: int, data: Dictionary, metadata: Dictionary = {}) -> Error:
方法 load_slot func load_slot(slot_index: int) -> Dictionary:
方法 load_slot_metadata func load_slot_metadata(slot_index: int) -> Dictionary:
方法 has_slot func has_slot(slot_index: int) -> bool:
方法 delete_slot func delete_slot(slot_index: int) -> Error:
方法 list_slots func list_slots() -> Array[Dictionary]:

常量

DEFAULT_DATA_FILE_TEMPLATE

  • API:public
  • 首次版本:8.0.0
const DEFAULT_DATA_FILE_TEMPLATE: String = "slot_{index}_data.sav"

默认槽位数据文件模板。

DEFAULT_METADATA_FILE_TEMPLATE

  • API:public
  • 首次版本:8.0.0
const DEFAULT_METADATA_FILE_TEMPLATE: String = "slot_{index}_meta.sav"

默认槽位元数据文件模板。

属性

data_file_template

  • API:public
  • 首次版本:8.0.0
var data_file_template: String = DEFAULT_DATA_FILE_TEMPLATE

数据文件模板,支持 {index} 占位符。

metadata_file_template

  • API:public
  • 首次版本:8.0.0
var metadata_file_template: String = DEFAULT_METADATA_FILE_TEMPLATE

元数据文件模板,支持 {index} 占位符。

方法

setup

  • API:public
  • 首次版本:8.0.0
func setup(storage: GFStorageUtility) -> GFSaveSlotStorageAdapter:

设置底层存储工具。

参数:

名称 说明
storage 底层 GFStorageUtility。

返回:当前适配器。

get_storage

  • API:public
  • 首次版本:8.0.0
func get_storage() -> GFStorageUtility:

获取底层存储工具。

返回:当前 GFStorageUtility;未配置时返回 null。

get_data_file_name

  • API:public
  • 首次版本:8.0.0
func get_data_file_name(slot_index: int) -> String:

生成槽位数据文件名。

参数:

名称 说明
slot_index 槽位索引。

返回:数据文件名。

get_metadata_file_name

  • API:public
  • 首次版本:8.0.0
func get_metadata_file_name(slot_index: int) -> String:

生成槽位元数据文件名。

参数:

名称 说明
slot_index 槽位索引。

返回:元数据文件名。

save_slot

  • API:public
  • 首次版本:8.0.0
func save_slot(slot_index: int, data: Dictionary, metadata: Dictionary = {}) -> Error:

保存槽位数据和元数据。

参数:

名称 说明
slot_index 槽位索引;必须大于等于 0。
data 项目聚合后的存档载荷。
metadata 槽位摘要元数据。

返回:Godot 的 Error 结果码。

结构:

  • data: Dictionary,项目自定义存档载荷。
  • metadata: Dictionary,通常来自 GFSaveSlotMetadata.to_dict()。

load_slot

  • API:public
  • 首次版本:8.0.0
func load_slot(slot_index: int) -> Dictionary:

读取槽位数据。

参数:

名称 说明
slot_index 槽位索引。

返回:存档载荷;读取失败时为空字典。

结构:

  • return: Dictionary,项目自定义存档载荷。

load_slot_metadata

  • API:public
  • 首次版本:8.0.0
func load_slot_metadata(slot_index: int) -> Dictionary:

读取槽位元数据。

参数:

名称 说明
slot_index 槽位索引。

返回:槽位元数据;读取失败时为空字典。

结构:

  • return: Dictionary,通常兼容 GFSaveSlotMetadata.to_dict()。

has_slot

  • API:public
  • 首次版本:8.0.0
func has_slot(slot_index: int) -> bool:

检查槽位是否同时具备数据和元数据文件。

参数:

名称 说明
slot_index 槽位索引。

返回:同时存在数据和元数据时返回 true。

delete_slot

  • API:public
  • 首次版本:8.0.0
func delete_slot(slot_index: int) -> Error:

删除槽位数据和元数据文件。

参数:

名称 说明
slot_index 槽位索引。

返回:两个文件都成功删除时返回 OK;任一文件缺失时返回 ERR_FILE_NOT_FOUND。

list_slots

  • API:public
  • 首次版本:8.0.0
func list_slots() -> Array[Dictionary]:

枚举现有槽位摘要。

返回:槽位摘要数组。

结构:

  • return: Array[Dictionary],每项包含 slot_index、slot_id、metadata 和 modified_time。