Add filter for temporary mods

This commit is contained in:
Caraxi 2025-04-20 00:35:36 +09:30 committed by Ottermandias
parent 7595827d29
commit 363d115be8
2 changed files with 19 additions and 2 deletions

View file

@ -647,6 +647,20 @@ public sealed class ModFileSystemSelector : FileSystemSelector<Mod, ModFileSyste
|| !_stateFilter.HasFlag(ModFilter.NotFavorite) && !mod.Favorite)
return true;
// Handle Temporary
if (!_stateFilter.HasFlag(ModFilter.Temporary) || !_stateFilter.HasFlag(ModFilter.NotTemporary))
{
if (settings == null && _stateFilter.HasFlag(ModFilter.Temporary))
{
return true;
}
if (settings != null && settings.IsTemporary() != _stateFilter.HasFlag(ModFilter.Temporary))
{
return true;
}
}
// Handle Inheritance
if (collection == _collectionManager.Active.Current)
{

View file

@ -22,12 +22,14 @@ public enum ModFilter
NotNew = 1 << 16,
Inherited = 1 << 17,
Uninherited = 1 << 18,
Undefined = 1 << 19,
Temporary = 1 << 19,
NotTemporary = 1 << 20,
Undefined = 1 << 21,
};
public static class ModFilterExtensions
{
public const ModFilter UnfilteredStateMods = (ModFilter)((1 << 20) - 1);
public const ModFilter UnfilteredStateMods = (ModFilter)((1 << 22) - 1);
public static IReadOnlyList<(ModFilter On, ModFilter Off, string Name)> TriStatePairs =
[
@ -38,6 +40,7 @@ public static class ModFilterExtensions
(ModFilter.HasFiles, ModFilter.HasNoFiles, "Has Redirections"),
(ModFilter.HasMetaManipulations, ModFilter.HasNoMetaManipulations, "Has Meta Manipulations"),
(ModFilter.HasFileSwaps, ModFilter.HasNoFileSwaps, "Has File Swaps"),
(ModFilter.Temporary, ModFilter.NotTemporary, "Temporary"),
];
public static IReadOnlyList<IReadOnlyList<(ModFilter Filter, string Name)>> Groups =