mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-13 12:14:17 +01:00
Force saves independent of manipulations for swaps and merges.
This commit is contained in:
parent
b1a0590382
commit
ec207bdba2
3 changed files with 17 additions and 8 deletions
|
|
@ -189,7 +189,8 @@ public class ModMerger : IDisposable
|
||||||
|
|
||||||
_editor.SetFiles(option, redirections, SaveType.None);
|
_editor.SetFiles(option, redirections, SaveType.None);
|
||||||
_editor.SetFileSwaps(option, swaps, SaveType.None);
|
_editor.SetFileSwaps(option, swaps, SaveType.None);
|
||||||
_editor.SetManipulations(option, manips, SaveType.ImmediateSync);
|
_editor.SetManipulations(option, manips, SaveType.None);
|
||||||
|
_editor.ForceSave(option, SaveType.ImmediateSync);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool GetFullPath(FullPath input, out FullPath ret)
|
bool GetFullPath(FullPath input, out FullPath ret)
|
||||||
|
|
@ -263,9 +264,10 @@ public class ModMerger : IDisposable
|
||||||
if (mods.Count == 1)
|
if (mods.Count == 1)
|
||||||
{
|
{
|
||||||
var files = CopySubModFiles(mods[0], dir);
|
var files = CopySubModFiles(mods[0], dir);
|
||||||
_editor.SetFiles(result.Default, files);
|
_editor.SetFiles(result.Default, files, SaveType.None);
|
||||||
_editor.SetFileSwaps(result.Default, mods[0].FileSwaps);
|
_editor.SetFileSwaps(result.Default, mods[0].FileSwaps, SaveType.None);
|
||||||
_editor.SetManipulations(result.Default, mods[0].Manipulations);
|
_editor.SetManipulations(result.Default, mods[0].Manipulations, SaveType.None);
|
||||||
|
_editor.ForceSave(result.Default);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -277,6 +279,7 @@ public class ModMerger : IDisposable
|
||||||
_editor.SetFiles(result.Default, files);
|
_editor.SetFiles(result.Default, files);
|
||||||
_editor.SetFileSwaps(result.Default, mods[0].FileSwaps);
|
_editor.SetFileSwaps(result.Default, mods[0].FileSwaps);
|
||||||
_editor.SetManipulations(result.Default, mods[0].Manipulations);
|
_editor.SetManipulations(result.Default, mods[0].Manipulations);
|
||||||
|
_editor.ForceSave(result.Default);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -285,9 +288,10 @@ public class ModMerger : IDisposable
|
||||||
var (option, _, _) = _editor.FindOrAddOption(group!, originalOption.GetName());
|
var (option, _, _) = _editor.FindOrAddOption(group!, originalOption.GetName());
|
||||||
var folder = Path.Combine(dir.FullName, group!.Name, option!.Name);
|
var folder = Path.Combine(dir.FullName, group!.Name, option!.Name);
|
||||||
var files = CopySubModFiles(originalOption, new DirectoryInfo(folder));
|
var files = CopySubModFiles(originalOption, new DirectoryInfo(folder));
|
||||||
_editor.SetFiles((IModDataContainer)option, files);
|
_editor.SetFiles((IModDataContainer)option, files, SaveType.None);
|
||||||
_editor.SetFileSwaps((IModDataContainer)option, originalOption.FileSwaps);
|
_editor.SetFileSwaps((IModDataContainer)option, originalOption.FileSwaps, SaveType.None);
|
||||||
_editor.SetManipulations((IModDataContainer)option, originalOption.Manipulations);
|
_editor.SetManipulations((IModDataContainer)option, originalOption.Manipulations, SaveType.None);
|
||||||
|
_editor.ForceSave((IModDataContainer)option);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,8 @@ public class ItemSwapContainer
|
||||||
|
|
||||||
manager.OptionEditor.SetFiles(container, convertedFiles, SaveType.None);
|
manager.OptionEditor.SetFiles(container, convertedFiles, SaveType.None);
|
||||||
manager.OptionEditor.SetFileSwaps(container, convertedSwaps, SaveType.None);
|
manager.OptionEditor.SetFileSwaps(container, convertedSwaps, SaveType.None);
|
||||||
manager.OptionEditor.SetManipulations(container, convertedManips, SaveType.ImmediateSync);
|
manager.OptionEditor.SetManipulations(container, convertedManips, SaveType.None);
|
||||||
|
manager.OptionEditor.ForceSave(container, SaveType.ImmediateSync);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,10 @@ public class ModGroupEditor(
|
||||||
communicator.ModOptionChanged.Invoke(ModOptionChangeType.OptionFilesChanged, (Mod)subMod.Mod, subMod.Group, null, subMod, -1);
|
communicator.ModOptionChanged.Invoke(ModOptionChangeType.OptionFilesChanged, (Mod)subMod.Mod, subMod.Group, null, subMod, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary> Forces a file save of the given container's group. </summary>
|
||||||
|
public void ForceSave(IModDataContainer subMod, SaveType saveType = SaveType.Queue)
|
||||||
|
=> saveService.Save(saveType, new ModSaveGroup(subMod, Config.ReplaceNonAsciiOnImport));
|
||||||
|
|
||||||
/// <summary> Add additional file redirections to a given option, keeping already existing ones. Only fires an event if anything is actually added.</summary>
|
/// <summary> Add additional file redirections to a given option, keeping already existing ones. Only fires an event if anything is actually added.</summary>
|
||||||
public void AddFiles(IModDataContainer subMod, IReadOnlyDictionary<Utf8GamePath, FullPath> additions)
|
public void AddFiles(IModDataContainer subMod, IReadOnlyDictionary<Utf8GamePath, FullPath> additions)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue