/// <summary> /// Mimics the same method in SettingsUtils, but it registers every action in URS /// </summary> /// <param name="urs"></param> /// <param name="current"></param> /// <param name="new"></param> public static void OverrideValues(UndoRedoStack urs, BaseSettings current, BaseSettings @new) { foreach (var newSettingPropertyGroup in @new.GetAllSettingPropertyGroupDefinitions()) { var settingPropertyGroup = current.GetAllSettingPropertyGroupDefinitions() .FirstOrDefault(x => x.GroupName == newSettingPropertyGroup.GroupName); if (settingPropertyGroup is not null) { OverrideValues(urs, settingPropertyGroup, newSettingPropertyGroup); } else { MCMUISubModule.Logger.LogWarning("{NewId}::{GroupName} was not found on, {CurrentId}", @new.Id, newSettingPropertyGroup.GroupName, current.Id); } } }
/// <summary> /// Mimics the same method in SettingsUtils, but it registers every action in URS /// </summary> /// <param name="urs"></param> /// <param name="current"></param> /// <param name="new"></param> public static void OverrideValues(UndoRedoStack urs, BaseSettings current, BaseSettings @new) { var currentDict = current.GetUnsortedSettingPropertyGroups().ToDictionary(x => x.GroupName, x => x); foreach (var nspg in @new.GetAllSettingPropertyGroupDefinitions()) { if (currentDict.TryGetValue(nspg.GroupName, out var spg)) { OverrideValues(urs, spg, nspg); } else { MCMUISubModule.Logger.LogWarning("{NewId}::{GroupName} was not found on, {CurrentId}", @new.Id, nspg.GroupName, current.Id); } } }