From 829c7a3b06c54cc42655676130d35cd393fef7b6 Mon Sep 17 00:00:00 2001 From: GeWuYou <95328647+GeWuYou@users.noreply.github.com> Date: Sat, 31 Jan 2026 23:11:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(setting):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=A8=A1=E5=9E=8B=E4=B8=AD=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在IResetApplyAbleSettings接口中添加DataType属性定义 - 修改SettingsModel中数据存储逻辑,使用applicator.DataType替代typeof(T) - 为GodotAudioSettings、GodotGraphicsSettings和GodotLocalizationSettings实现DataType属性 - 统一通过DataType属性获取设置数据的类型信息 - [release ci] --- .../setting/IResetApplyAbleSettings.cs | 6 ++++++ GFramework.Game/setting/SettingsModel.cs | 2 +- GFramework.Godot/setting/GodotAudioSettings.cs | 1 + GFramework.Godot/setting/GodotGraphicsSettings.cs | 1 + GFramework.Godot/setting/GodotLocalizationSettings.cs | 1 + 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs b/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs index 61797ca..9d9fcce 100644 --- a/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs +++ b/GFramework.Game.Abstractions/setting/IResetApplyAbleSettings.cs @@ -24,4 +24,10 @@ public interface IResetApplyAbleSettings : IResettable, IApplyAbleSettings /// /// ISettingsData类型的设置数据 ISettingsData Data { get; } + + /// + /// 获取数据类型信息 + /// + /// 表示数据类型的Type对象 + Type DataType { get; } } \ No newline at end of file diff --git a/GFramework.Game/setting/SettingsModel.cs b/GFramework.Game/setting/SettingsModel.cs index 0e223b9..7ea4d67 100644 --- a/GFramework.Game/setting/SettingsModel.cs +++ b/GFramework.Game/setting/SettingsModel.cs @@ -67,7 +67,7 @@ public class SettingsModel(IDataLocationProvider? locationProvider, where T : class, IResetApplyAbleSettings { _applicators[typeof(T)] = applicator; - _data[typeof(T)] = applicator.Data; + _data[applicator.DataType] = applicator.Data; return this; } diff --git a/GFramework.Godot/setting/GodotAudioSettings.cs b/GFramework.Godot/setting/GodotAudioSettings.cs index f8756c4..485ee8a 100644 --- a/GFramework.Godot/setting/GodotAudioSettings.cs +++ b/GFramework.Godot/setting/GodotAudioSettings.cs @@ -35,6 +35,7 @@ public class GodotAudioSettings(ISettingsModel model, AudioBusMap audioBusMap) } public ISettingsData Data { get; } = model.GetData(); + public Type DataType { get; } = typeof(AudioSettings); /// /// 设置指定音频总线的音量 diff --git a/GFramework.Godot/setting/GodotGraphicsSettings.cs b/GFramework.Godot/setting/GodotGraphicsSettings.cs index 10ec22b..2e43023 100644 --- a/GFramework.Godot/setting/GodotGraphicsSettings.cs +++ b/GFramework.Godot/setting/GodotGraphicsSettings.cs @@ -52,4 +52,5 @@ public class GodotGraphicsSettings(ISettingsModel model) : IResetApplyAbleSettin } public ISettingsData Data { get; } = model.GetData(); + public Type DataType { get; } = typeof(GraphicsSettings); } \ No newline at end of file diff --git a/GFramework.Godot/setting/GodotLocalizationSettings.cs b/GFramework.Godot/setting/GodotLocalizationSettings.cs index 36fe4bb..36665a7 100644 --- a/GFramework.Godot/setting/GodotLocalizationSettings.cs +++ b/GFramework.Godot/setting/GodotLocalizationSettings.cs @@ -49,4 +49,5 @@ public class GodotLocalizationSettings(ISettingsModel model, LocalizationMap loc } public ISettingsData Data { get; } = model.GetData(); + public Type DataType { get; } = typeof(LocalizationSettings); } \ No newline at end of file