refactor(setting): 优化设置模型中的数据类型获取方式

- 在IResetApplyAbleSettings接口中添加DataType属性定义
- 修改SettingsModel中数据存储逻辑,使用applicator.DataType替代typeof(T)
- 为GodotAudioSettings、GodotGraphicsSettings和GodotLocalizationSettings实现DataType属性
- 统一通过DataType属性获取设置数据的类型信息
- [release ci]
This commit is contained in:
GeWuYou 2026-01-31 23:11:55 +08:00
parent f226a355b2
commit 829c7a3b06
5 changed files with 10 additions and 1 deletions

View File

@ -24,4 +24,10 @@ public interface IResetApplyAbleSettings : IResettable, IApplyAbleSettings
/// </summary>
/// <returns>ISettingsData类型的设置数据</returns>
ISettingsData Data { get; }
/// <summary>
/// 获取数据类型信息
/// </summary>
/// <returns>表示数据类型的Type对象</returns>
Type DataType { get; }
}

View File

@ -67,7 +67,7 @@ public class SettingsModel<TRepository>(IDataLocationProvider? locationProvider,
where T : class, IResetApplyAbleSettings
{
_applicators[typeof(T)] = applicator;
_data[typeof(T)] = applicator.Data;
_data[applicator.DataType] = applicator.Data;
return this;
}

View File

@ -35,6 +35,7 @@ public class GodotAudioSettings(ISettingsModel model, AudioBusMap audioBusMap)
}
public ISettingsData Data { get; } = model.GetData<AudioSettings>();
public Type DataType { get; } = typeof(AudioSettings);
/// <summary>
/// 设置指定音频总线的音量

View File

@ -52,4 +52,5 @@ public class GodotGraphicsSettings(ISettingsModel model) : IResetApplyAbleSettin
}
public ISettingsData Data { get; } = model.GetData<GraphicsSettings>();
public Type DataType { get; } = typeof(GraphicsSettings);
}

View File

@ -49,4 +49,5 @@ public class GodotLocalizationSettings(ISettingsModel model, LocalizationMap loc
}
public ISettingsData Data { get; } = model.GetData<LocalizationSettings>();
public Type DataType { get; } = typeof(LocalizationSettings);
}