mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-19 06:17:45 +01:00
Let SubMods know their location in a mod.
This commit is contained in:
parent
0b2b0d1beb
commit
d6c0362404
18 changed files with 223 additions and 121 deletions
|
|
@ -18,7 +18,7 @@ public partial class Mod
|
|||
public IReadOnlyList< IModGroup > Groups
|
||||
=> _groups;
|
||||
|
||||
private readonly SubMod _default = new();
|
||||
private readonly SubMod _default;
|
||||
private readonly List< IModGroup > _groups = new();
|
||||
|
||||
public int TotalFileCount { get; private set; }
|
||||
|
|
@ -70,7 +70,7 @@ public partial class Mod
|
|||
.ToList();
|
||||
}
|
||||
|
||||
private static IModGroup? LoadModGroup( FileInfo file, DirectoryInfo basePath )
|
||||
private static IModGroup? LoadModGroup( Mod mod, FileInfo file, int groupIdx )
|
||||
{
|
||||
if( !File.Exists( file.FullName ) )
|
||||
{
|
||||
|
|
@ -82,8 +82,8 @@ public partial class Mod
|
|||
var json = JObject.Parse( File.ReadAllText( file.FullName ) );
|
||||
switch( json[ nameof( Type ) ]?.ToObject< SelectType >() ?? SelectType.Single )
|
||||
{
|
||||
case SelectType.Multi: return MultiModGroup.Load( json, basePath );
|
||||
case SelectType.Single: return SingleModGroup.Load( json, basePath );
|
||||
case SelectType.Multi: return MultiModGroup.Load( mod, json, groupIdx );
|
||||
case SelectType.Single: return SingleModGroup.Load( mod, json, groupIdx );
|
||||
}
|
||||
}
|
||||
catch( Exception e )
|
||||
|
|
@ -100,7 +100,7 @@ public partial class Mod
|
|||
var changes = false;
|
||||
foreach( var file in GroupFiles )
|
||||
{
|
||||
var group = LoadModGroup( file, ModPath );
|
||||
var group = LoadModGroup( this, file, _groups.Count );
|
||||
if( group != null && _groups.All( g => g.Name != group.Name ) )
|
||||
{
|
||||
changes = changes || group.FileName( ModPath, _groups.Count ) != file.FullName;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue