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