mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-03-25 21:34:28 +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>
|
/// </summary>
|
||||||
/// <returns>ISettingsData类型的设置数据</returns>
|
/// <returns>ISettingsData类型的设置数据</returns>
|
||||||
ISettingsData Data { get; }
|
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
|
where T : class, IResetApplyAbleSettings
|
||||||
{
|
{
|
||||||
_applicators[typeof(T)] = applicator;
|
_applicators[typeof(T)] = applicator;
|
||||||
_data[typeof(T)] = applicator.Data;
|
_data[applicator.DataType] = applicator.Data;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -35,6 +35,7 @@ public class GodotAudioSettings(ISettingsModel model, AudioBusMap audioBusMap)
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ISettingsData Data { get; } = model.GetData<AudioSettings>();
|
public ISettingsData Data { get; } = model.GetData<AudioSettings>();
|
||||||
|
public Type DataType { get; } = typeof(AudioSettings);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设置指定音频总线的音量
|
/// 设置指定音频总线的音量
|
||||||
|
|||||||
@ -52,4 +52,5 @@ public class GodotGraphicsSettings(ISettingsModel model) : IResetApplyAbleSettin
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ISettingsData Data { get; } = model.GetData<GraphicsSettings>();
|
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 ISettingsData Data { get; } = model.GetData<LocalizationSettings>();
|
||||||
|
public Type DataType { get; } = typeof(LocalizationSettings);
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user