using GFramework.Game.Abstractions.setting;
namespace GFramework.Game.setting.events;
///
/// 表示设置应用完成事件
///
/// 设置节类型,必须实现ISettingsSection接口
public class SettingsAppliedEvent(T settings, bool success, Exception? error = null) : ISettingsChangedEvent
where T : ISettingsSection
{
///
/// 获取类型化的设置节实例
///
public T TypedSettings => (T)Settings;
///
/// 获取设置应用是否成功的状态
///
public bool Success { get; } = success;
///
/// 获取设置应用过程中发生的错误异常(如果有的话)
///
public Exception? Error { get; } = error;
///
/// 获取设置类型的Type信息
///
public Type SettingsType => typeof(T);
///
/// 获取应用的设置节实例
///
public ISettingsSection Settings { get; } = settings;
///
/// 获取设置变更的时间戳(UTC时间)
///
public DateTime ChangedAt { get; } = DateTime.UtcNow;
}