Fix some caching issues.

This commit is contained in:
Ottermandias 2023-05-02 15:40:37 +02:00
parent 94a0864556
commit 9c0406ec9d
7 changed files with 54 additions and 24 deletions

View file

@ -51,6 +51,8 @@ public class CollectionCacheManager : IDisposable
_communicator.ModOptionChanged.Subscribe(OnModOptionChange, -100);
_communicator.ModSettingChanged.Subscribe(OnModSettingChange);
_communicator.CollectionInheritanceChanged.Subscribe(OnCollectionInheritanceChange);
_communicator.ModDiscoveryStarted.Subscribe(OnModDiscoveryStarted);
_communicator.ModDiscoveryFinished.Subscribe(OnModDiscoveryFinished, -100);
if (!MetaFileManager.CharacterUtility.Ready)
MetaFileManager.CharacterUtility.LoadingFinished += IncrementCounters;
@ -308,4 +310,20 @@ public class CollectionCacheManager : IDisposable
Penumbra.Log.Debug($"Creating {tasks.Length} necessary caches.");
Task.WaitAll(tasks);
}
private void OnModDiscoveryStarted()
{
foreach (var collection in Active)
{
collection._cache!.ResolvedFiles.Clear();
collection._cache!.Meta.Reset();
collection._cache!._conflicts.Clear();
}
}
private void OnModDiscoveryFinished()
{
var tasks = Active.Select(c => Task.Run(() => CalculateEffectiveFileListInternal(c))).ToArray();
Task.WaitAll(tasks);
}
}