mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
Remove single object change functions and update from mod manager.
This commit is contained in:
parent
4613461154
commit
ced5e344cf
2 changed files with 3 additions and 92 deletions
|
|
@ -266,7 +266,6 @@ public partial class ModCollection
|
||||||
ModOptionChangeType.OptionFilesChanged => ( false, true, false ),
|
ModOptionChangeType.OptionFilesChanged => ( false, true, false ),
|
||||||
ModOptionChangeType.OptionSwapsChanged => ( false, true, false ),
|
ModOptionChangeType.OptionSwapsChanged => ( false, true, false ),
|
||||||
ModOptionChangeType.OptionMetaChanged => ( false, true, true ),
|
ModOptionChangeType.OptionMetaChanged => ( false, true, true ),
|
||||||
ModOptionChangeType.OptionUpdated => ( false, true, true ),
|
|
||||||
ModOptionChangeType.DisplayChange => ( false, false, false ),
|
ModOptionChangeType.DisplayChange => ( false, false, false ),
|
||||||
_ => ( false, false, false ),
|
_ => ( false, false, false ),
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ public enum ModOptionChangeType
|
||||||
OptionFilesChanged,
|
OptionFilesChanged,
|
||||||
OptionSwapsChanged,
|
OptionSwapsChanged,
|
||||||
OptionMetaChanged,
|
OptionMetaChanged,
|
||||||
OptionUpdated,
|
|
||||||
DisplayChange,
|
DisplayChange,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -171,7 +170,7 @@ public sealed partial class Mod
|
||||||
}
|
}
|
||||||
|
|
||||||
option.Name = newName;
|
option.Name = newName;
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.DisplayChange, mod, groupIdx, optionIdx, -1 );
|
ModOptionChanged.Invoke( ModOptionChangeType.DisplayChange, mod, groupIdx, optionIdx, -1 );
|
||||||
|
|
@ -244,41 +243,11 @@ public sealed partial class Mod
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OptionSetManipulation( Mod mod, int groupIdx, int optionIdx, MetaManipulation manip, bool delete = false )
|
|
||||||
{
|
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
|
||||||
if( delete )
|
|
||||||
{
|
|
||||||
if( !subMod.ManipulationData.Remove( manip ) )
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( subMod.ManipulationData.TryGetValue( manip, out var oldManip ) )
|
|
||||||
{
|
|
||||||
if( manip.EntryEquals( oldManip ) )
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
subMod.ManipulationData.Remove( oldManip );
|
|
||||||
subMod.ManipulationData.Add( manip );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
subMod.ManipulationData.Add( manip );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.OptionMetaChanged, mod, groupIdx, optionIdx, -1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OptionSetManipulations( Mod mod, int groupIdx, int optionIdx, HashSet< MetaManipulation > manipulations )
|
public void OptionSetManipulations( Mod mod, int groupIdx, int optionIdx, HashSet< MetaManipulation > manipulations )
|
||||||
{
|
{
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
||||||
if( subMod.Manipulations.All( m => manipulations.TryGetValue( m, out var old ) && old.EntryEquals( m ) ) )
|
if( subMod.Manipulations.Count == manipulations.Count
|
||||||
|
&& subMod.Manipulations.All( m => manipulations.TryGetValue( m, out var old ) && old.EntryEquals( m ) ) )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -287,15 +256,6 @@ public sealed partial class Mod
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.OptionMetaChanged, mod, groupIdx, optionIdx, -1 );
|
ModOptionChanged.Invoke( ModOptionChangeType.OptionMetaChanged, mod, groupIdx, optionIdx, -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OptionSetFile( Mod mod, int groupIdx, int optionIdx, Utf8GamePath gamePath, FullPath? newPath )
|
|
||||||
{
|
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
|
||||||
if( OptionSetFile( subMod.FileData, gamePath, newPath ) )
|
|
||||||
{
|
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.OptionFilesChanged, mod, groupIdx, optionIdx, -1 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OptionSetFiles( Mod mod, int groupIdx, int optionIdx, Dictionary< Utf8GamePath, FullPath > replacements )
|
public void OptionSetFiles( Mod mod, int groupIdx, int optionIdx, Dictionary< Utf8GamePath, FullPath > replacements )
|
||||||
{
|
{
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
||||||
|
|
@ -319,15 +279,6 @@ public sealed partial class Mod
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OptionSetFileSwap( Mod mod, int groupIdx, int optionIdx, Utf8GamePath gamePath, FullPath? newPath )
|
|
||||||
{
|
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
|
||||||
if( OptionSetFile( subMod.FileSwapData, gamePath, newPath ) )
|
|
||||||
{
|
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.OptionSwapsChanged, mod, groupIdx, optionIdx, -1 );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OptionSetFileSwaps( Mod mod, int groupIdx, int optionIdx, Dictionary< Utf8GamePath, FullPath > swaps )
|
public void OptionSetFileSwaps( Mod mod, int groupIdx, int optionIdx, Dictionary< Utf8GamePath, FullPath > swaps )
|
||||||
{
|
{
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
||||||
|
|
@ -340,16 +291,6 @@ public sealed partial class Mod
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.OptionSwapsChanged, mod, groupIdx, optionIdx, -1 );
|
ModOptionChanged.Invoke( ModOptionChangeType.OptionSwapsChanged, mod, groupIdx, optionIdx, -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OptionUpdate( Mod mod, int groupIdx, int optionIdx, Dictionary< Utf8GamePath, FullPath > replacements,
|
|
||||||
HashSet< MetaManipulation > manipulations, Dictionary< Utf8GamePath, FullPath > swaps )
|
|
||||||
{
|
|
||||||
var subMod = GetSubMod( mod, groupIdx, optionIdx );
|
|
||||||
subMod.FileData = replacements;
|
|
||||||
subMod.ManipulationData = manipulations;
|
|
||||||
subMod.FileSwapData = swaps;
|
|
||||||
ModOptionChanged.Invoke( ModOptionChangeType.OptionUpdated, mod, groupIdx, optionIdx, -1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool VerifyFileName( Mod mod, IModGroup? group, string newName, bool message )
|
public static bool VerifyFileName( Mod mod, IModGroup? group, string newName, bool message )
|
||||||
{
|
{
|
||||||
var path = newName.RemoveInvalidPathSymbols();
|
var path = newName.RemoveInvalidPathSymbols();
|
||||||
|
|
@ -383,34 +324,6 @@ public sealed partial class Mod
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool OptionSetFile( IDictionary< Utf8GamePath, FullPath > dict, Utf8GamePath gamePath, FullPath? newPath )
|
|
||||||
{
|
|
||||||
if( dict.TryGetValue( gamePath, out var oldPath ) )
|
|
||||||
{
|
|
||||||
if( newPath == null )
|
|
||||||
{
|
|
||||||
dict.Remove( gamePath );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( newPath.Value.Equals( oldPath ) )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
dict[ gamePath ] = newPath.Value;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( newPath == null )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
dict.Add( gamePath, newPath.Value );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void OnModOptionChange( ModOptionChangeType type, Mod mod, int groupIdx, int _, int _2 )
|
private static void OnModOptionChange( ModOptionChangeType type, Mod mod, int groupIdx, int _, int _2 )
|
||||||
{
|
{
|
||||||
// File deletion is handled in the actual function.
|
// File deletion is handled in the actual function.
|
||||||
|
|
@ -444,7 +357,6 @@ public sealed partial class Mod
|
||||||
ModOptionChangeType.OptionFilesChanged => 0 < ( mod.TotalFileCount = mod.AllSubMods.Sum( s => s.Files.Count ) ),
|
ModOptionChangeType.OptionFilesChanged => 0 < ( mod.TotalFileCount = mod.AllSubMods.Sum( s => s.Files.Count ) ),
|
||||||
ModOptionChangeType.OptionSwapsChanged => 0 < ( mod.TotalSwapCount = mod.AllSubMods.Sum( s => s.FileSwaps.Count ) ),
|
ModOptionChangeType.OptionSwapsChanged => 0 < ( mod.TotalSwapCount = mod.AllSubMods.Sum( s => s.FileSwaps.Count ) ),
|
||||||
ModOptionChangeType.OptionMetaChanged => 0 < ( mod.TotalManipulations = mod.AllSubMods.Sum( s => s.Manipulations.Count ) ),
|
ModOptionChangeType.OptionMetaChanged => 0 < ( mod.TotalManipulations = mod.AllSubMods.Sum( s => s.Manipulations.Count ) ),
|
||||||
ModOptionChangeType.OptionUpdated => mod.SetCounts(),
|
|
||||||
ModOptionChangeType.DisplayChange => false,
|
ModOptionChangeType.DisplayChange => false,
|
||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue