Add updating of changed items to mod changes.

This commit is contained in:
Ottermandias 2022-06-05 18:38:32 +02:00
parent 40a6ec6010
commit 513a2780f1

View file

@ -331,20 +331,29 @@ public sealed partial class Mod
} }
} }
bool ComputeChangedItems()
{
mod.ComputeChangedItems();
return true;
}
// State can not change on adding groups, as they have no immediate options. // State can not change on adding groups, as they have no immediate options.
var unused = type switch var unused = type switch
{ {
ModOptionChangeType.GroupAdded => mod.SetCounts(), ModOptionChangeType.GroupAdded => ComputeChangedItems() & mod.SetCounts(),
ModOptionChangeType.GroupDeleted => mod.SetCounts(), ModOptionChangeType.GroupDeleted => ComputeChangedItems() & mod.SetCounts(),
ModOptionChangeType.GroupMoved => false, ModOptionChangeType.GroupMoved => false,
ModOptionChangeType.GroupTypeChanged => mod.HasOptions = mod.Groups.Any( o => o.IsOption ), ModOptionChangeType.GroupTypeChanged => mod.HasOptions = mod.Groups.Any( o => o.IsOption ),
ModOptionChangeType.PriorityChanged => false, ModOptionChangeType.PriorityChanged => false,
ModOptionChangeType.OptionAdded => mod.SetCounts(), ModOptionChangeType.OptionAdded => ComputeChangedItems() & mod.SetCounts(),
ModOptionChangeType.OptionDeleted => mod.SetCounts(), ModOptionChangeType.OptionDeleted => ComputeChangedItems() & mod.SetCounts(),
ModOptionChangeType.OptionMoved => false, ModOptionChangeType.OptionMoved => false,
ModOptionChangeType.OptionFilesChanged => 0 < ( mod.TotalFileCount = mod.AllSubMods.Sum( s => s.Files.Count ) ), ModOptionChangeType.OptionFilesChanged => ComputeChangedItems()
ModOptionChangeType.OptionSwapsChanged => 0 < ( mod.TotalSwapCount = mod.AllSubMods.Sum( s => s.FileSwaps.Count ) ), & ( 0 < ( mod.TotalFileCount = mod.AllSubMods.Sum( s => s.Files.Count ) ) ),
ModOptionChangeType.OptionMetaChanged => 0 < ( mod.TotalManipulations = mod.AllSubMods.Sum( s => s.Manipulations.Count ) ), ModOptionChangeType.OptionSwapsChanged => ComputeChangedItems()
& ( 0 < ( mod.TotalSwapCount = mod.AllSubMods.Sum( s => s.FileSwaps.Count ) ) ),
ModOptionChangeType.OptionMetaChanged => ComputeChangedItems()
& ( 0 < ( mod.TotalManipulations = mod.AllSubMods.Sum( s => s.Manipulations.Count ) ) ),
ModOptionChangeType.DisplayChange => false, ModOptionChangeType.DisplayChange => false,
_ => false, _ => false,
}; };