mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 10:17:22 +01:00
Fix collections not correctly building on first launch.
This commit is contained in:
parent
2c22e37666
commit
12d483e010
3 changed files with 34 additions and 5 deletions
|
|
@ -54,6 +54,24 @@ namespace Penumbra.Mods
|
|||
public bool ResetActiveCollection()
|
||||
=> SetActiveCollection( DefaultCollection, string.Empty );
|
||||
|
||||
public void CreateNecessaryCaches()
|
||||
{
|
||||
if( !_manager.TempWritable )
|
||||
{
|
||||
PluginLog.Error( "No temporary directory available." );
|
||||
return;
|
||||
}
|
||||
|
||||
if( DefaultCollection.Cache == null )
|
||||
DefaultCollection.CreateCache( _manager.TempPath, _manager.StructuredMods.AllMods( _manager.Config.SortFoldersFirst ));
|
||||
|
||||
if( ForcedCollection.Cache == null )
|
||||
ForcedCollection.CreateCache( _manager.TempPath, _manager.StructuredMods.AllMods( _manager.Config.SortFoldersFirst ) );
|
||||
|
||||
foreach (var (_, collection) in CharacterCollection.Where( kvp => kvp.Value.Cache == null ))
|
||||
collection.CreateCache( _manager.TempPath, _manager.StructuredMods.AllMods( _manager.Config.SortFoldersFirst ) );
|
||||
}
|
||||
|
||||
public void RecreateCaches()
|
||||
{
|
||||
if( !_manager.TempWritable )
|
||||
|
|
@ -66,6 +84,8 @@ namespace Penumbra.Mods
|
|||
{
|
||||
collection.CreateCache( _manager.TempPath, _manager.StructuredMods.AllMods( _manager.Config.SortFoldersFirst ) );
|
||||
}
|
||||
|
||||
CreateNecessaryCaches();
|
||||
}
|
||||
|
||||
public void RemoveModFromCaches( DirectoryInfo modDir )
|
||||
|
|
|
|||
|
|
@ -129,6 +129,8 @@ namespace Penumbra.Mods
|
|||
TempWritable = false;
|
||||
}
|
||||
}
|
||||
|
||||
Collections?.RecreateCaches();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,15 +145,22 @@ namespace Penumbra.UI
|
|||
|
||||
var manager = Service< ModManager >.Get();
|
||||
PrintValue( "Active Collection", manager.Collections.ActiveCollection.Name );
|
||||
PrintValue( "Mod Manager BasePath", manager.BasePath.Name );
|
||||
PrintValue( "Mod Manager BasePath-Full", manager.BasePath.FullName );
|
||||
PrintValue( " has Cache", (manager.Collections.ActiveCollection.Cache != null).ToString() );
|
||||
PrintValue( "Current Collection", manager.Collections.CurrentCollection.Name );
|
||||
PrintValue( " has Cache", ( manager.Collections.CurrentCollection.Cache != null ).ToString() );
|
||||
PrintValue( "Default Collection", manager.Collections.DefaultCollection.Name );
|
||||
PrintValue( " has Cache", ( manager.Collections.DefaultCollection.Cache != null ).ToString() );
|
||||
PrintValue( "Forced Collection", manager.Collections.ForcedCollection.Name );
|
||||
PrintValue( " has Cache", ( manager.Collections.ForcedCollection.Cache != null ).ToString() );
|
||||
PrintValue( "Mod Manager BasePath", manager.BasePath?.Name ?? "NULL" );
|
||||
PrintValue( "Mod Manager BasePath-Full", manager.BasePath?.FullName ?? "NULL" );
|
||||
PrintValue( "Mod Manager BasePath IsRooted", Path.IsPathRooted( Penumbra.Config.ModDirectory ).ToString() );
|
||||
PrintValue( "Mod Manager BasePath Exists", Directory.Exists( manager.BasePath.FullName ).ToString() );
|
||||
PrintValue( "Mod Manager BasePath Exists", manager.BasePath != null ? Directory.Exists( manager.BasePath.FullName ).ToString() : false.ToString() );
|
||||
PrintValue( "Mod Manager Valid", manager.Valid.ToString() );
|
||||
PrintValue( "Mod Manager Temp Path", manager.TempPath.FullName );
|
||||
PrintValue( "Mod Manager Temp Path", manager.TempPath?.FullName ?? "NULL" );
|
||||
PrintValue( "Mod Manager Temp Path IsRooted",
|
||||
( !Penumbra.Config.TempDirectory.Any() || Path.IsPathRooted( Penumbra.Config.TempDirectory ) ).ToString() );
|
||||
PrintValue( "Mod Manager Temp Path Exists", Directory.Exists( manager.TempPath.FullName ).ToString() );
|
||||
PrintValue( "Mod Manager Temp Path Exists", manager.TempPath != null ? Directory.Exists( manager.TempPath.FullName ).ToString() : false.ToString() );
|
||||
PrintValue( "Mod Manager Temp Path IsWritable", manager.TempWritable.ToString() );
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue