mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-22 10:34:30 +08:00
refactor(setting): 优化设置模型中的数据类型获取方式
- 在IResetApplyAbleSettings接口中添加DataType属性定义 - 修改SettingsModel中数据存储逻辑,使用applicator.DataType替代typeof(T) - 为GodotAudioSettings、GodotGraphicsSettings和GodotLocalizationSettings实现DataType属性 - 统一通过DataType属性获取设置数据的类型信息 - [release ci]
This commit is contained in:
parent
f226a355b2
commit
829c7a3b06
@ -24,4 +24,10 @@ public interface IResetApplyAbleSettings : IResettable, IApplyAbleSettings
|
||||
/// </summary>
|
||||
/// <returns>ISettingsData类型的设置数据</returns>
|
||||
ISettingsData Data { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取数据类型信息
|
||||
/// </summary>
|
||||
/// <returns>表示数据类型的Type对象</returns>
|
||||
Type DataType { get; }
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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>
|
||||
/// 设置指定音频总线的音量
|
||||
|
||||
@ -52,4 +52,5 @@ public class GodotGraphicsSettings(ISettingsModel model) : IResetApplyAbleSettin
|
||||
}
|
||||
|
||||
public ISettingsData Data { get; } = model.GetData<GraphicsSettings>();
|
||||
public Type DataType { get; } = typeof(GraphicsSettings);
|
||||
}
|
||||
@ -49,4 +49,5 @@ public class GodotLocalizationSettings(ISettingsModel model, LocalizationMap loc
|
||||
}
|
||||
|
||||
public ISettingsData Data { get; } = model.GetData<LocalizationSettings>();
|
||||
public Type DataType { get; } = typeof(LocalizationSettings);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user