mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-23 03:04:29 +08:00
- 将SettingsModel内部存储分离为_dataSettings和_applicators两个字典 - 添加IDataSettings接口用于标识纯数据设置 - 修改Get方法为GetData以明确区分数据获取 - 添加RegisterApplicator和GetApplicator方法管理可应用设置 - 更新TryGet方法支持从数据和应用器中查找设置 - 扩展SettingsPersistence支持批量保存和加载所有设置数据 - 将AudioBusMap重命名为AudioBusMapSettings并实现ISettingsData接口 - 修改Godot音频和图形设置适配新的接口变更 - [skip ci]
42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace GFramework.Game.Abstractions.setting;
|
|
|
|
/// <summary>
|
|
/// 设置持久化接口
|
|
/// 定义了设置数据的异步加载、保存、检查存在性和删除操作
|
|
/// </summary>
|
|
public interface ISettingsPersistence
|
|
{
|
|
/// <summary>
|
|
/// 异步加载指定类型的设置数据
|
|
/// </summary>
|
|
Task<T> LoadAsync<T>() where T : class, ISettingsData, new();
|
|
|
|
/// <summary>
|
|
/// 异步保存指定的设置数据
|
|
/// </summary>
|
|
Task SaveAsync<T>(T section) where T : class, ISettingsData;
|
|
|
|
/// <summary>
|
|
/// 异步检查指定类型的设置数据是否存在
|
|
/// </summary>
|
|
Task<bool> ExistsAsync<T>() where T : class, ISettingsData;
|
|
|
|
/// <summary>
|
|
/// 异步删除指定类型的设置数据
|
|
/// </summary>
|
|
Task DeleteAsync<T>() where T : class, ISettingsData;
|
|
|
|
/// <summary>
|
|
/// 保存所有设置数据
|
|
/// </summary>
|
|
Task SaveAllAsync(IEnumerable<ISettingsData> allData);
|
|
|
|
/// <summary>
|
|
/// 加载所有已知类型的设置数据
|
|
/// </summary>
|
|
Task<IDictionary<Type, ISettingsData>> LoadAllAsync(IEnumerable<Type> knownTypes);
|
|
} |