using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using GFramework.Core.Abstractions.system;
namespace GFramework.Game.Abstractions.setting;
///
/// 定义设置系统的接口,提供应用各种设置的方法
///
public interface ISettingsSystem : ISystem
{
///
/// 应用所有可应用的设置
///
Task ApplyAll();
///
/// 应用指定类型的设置
///
Task Apply(Type settingsType);
///
/// 应用指定类型的设置(泛型版本)
///
Task Apply() where T : class, ISettingsSection;
///
/// 批量应用多个设置类型
///
/// 设置配置类型集合
Task Apply(IEnumerable settingsTypes);
///
/// 重置指定类型的设置
///
/// 设置类型
Task ResetAsync(Type settingsType);
///
/// 重置指定类型的设置(泛型版本)
///
/// 设置类型
Task ResetAsync() where T : class, ISettingsData, new();
///
/// 重置所有设置
///
Task ResetAllAsync();
}