diff --git a/Penumbra/Import/TexToolsImporter.ModPack.cs b/Penumbra/Import/TexToolsImporter.ModPack.cs
index 6de16612..0776faea 100644
--- a/Penumbra/Import/TexToolsImporter.ModPack.cs
+++ b/Penumbra/Import/TexToolsImporter.ModPack.cs
@@ -4,8 +4,9 @@ using System.IO;
using System.Linq;
using Newtonsoft.Json;
using Penumbra.Api.Enums;
-using Penumbra.Import.Structs;
+using Penumbra.Import.Structs;
using Penumbra.Mods;
+using Penumbra.Mods.Subclasses;
using Penumbra.Util;
using SharpCompress.Archives.Zip;
diff --git a/Penumbra/Mods/Editor/DuplicateManager.cs b/Penumbra/Mods/Editor/DuplicateManager.cs
index f4583f70..3a58d91a 100644
--- a/Penumbra/Mods/Editor/DuplicateManager.cs
+++ b/Penumbra/Mods/Editor/DuplicateManager.cs
@@ -7,6 +7,7 @@ using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.String.Classes;
diff --git a/Penumbra/Mods/Editor/IMod.cs b/Penumbra/Mods/Editor/IMod.cs
index 7741cf6a..88f04ef3 100644
--- a/Penumbra/Mods/Editor/IMod.cs
+++ b/Penumbra/Mods/Editor/IMod.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using OtterGui.Classes;
+using Penumbra.Mods.Subclasses;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/Editor/ModEditor.cs b/Penumbra/Mods/Editor/ModEditor.cs
index a874f629..bd774607 100644
--- a/Penumbra/Mods/Editor/ModEditor.cs
+++ b/Penumbra/Mods/Editor/ModEditor.cs
@@ -2,6 +2,7 @@ using System;
using System.IO;
using OtterGui;
using Penumbra.Mods.Editor;
+using Penumbra.Mods.Subclasses;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/Manager/ModMigration.cs b/Penumbra/Mods/Manager/ModMigration.cs
index 28c37175..d6c5e63f 100644
--- a/Penumbra/Mods/Manager/ModMigration.cs
+++ b/Penumbra/Mods/Manager/ModMigration.cs
@@ -7,6 +7,7 @@ using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using OtterGui;
using Penumbra.Api.Enums;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.Util;
diff --git a/Penumbra/Mods/Manager/ModOptionEditor.cs b/Penumbra/Mods/Manager/ModOptionEditor.cs
index ab6e839a..4bf774fb 100644
--- a/Penumbra/Mods/Manager/ModOptionEditor.cs
+++ b/Penumbra/Mods/Manager/ModOptionEditor.cs
@@ -6,6 +6,7 @@ using OtterGui;
using OtterGui.Filesystem;
using Penumbra.Api.Enums;
using Penumbra.Meta.Manipulations;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.Util;
@@ -127,11 +128,10 @@ public class ModOptionEditor
/// Delete a given option group. Fires an event to prepare before actually deleting.
public void DeleteModGroup(Mod mod, int groupIdx)
{
- var group = mod.Groups[groupIdx];
_communicator.ModOptionChanged.Invoke(ModOptionChangeType.PrepareChange, mod, groupIdx, -1, -1);
mod.Groups.RemoveAt(groupIdx);
UpdateSubModPositions(mod, groupIdx);
- _saveService.SaveAllOptionGroups(mod);
+ _saveService.SaveAllOptionGroups(mod, false);
_communicator.ModOptionChanged.Invoke(ModOptionChangeType.GroupDeleted, mod, groupIdx, -1, -1);
}
@@ -142,7 +142,7 @@ public class ModOptionEditor
return;
UpdateSubModPositions(mod, Math.Min(groupIdxFrom, groupIdxTo));
- _saveService.SaveAllOptionGroups(mod);
+ _saveService.SaveAllOptionGroups(mod, false);
_communicator.ModOptionChanged.Invoke(ModOptionChangeType.GroupMoved, mod, groupIdxFrom, -1, groupIdxTo);
}
diff --git a/Penumbra/Mods/Mod.cs b/Penumbra/Mods/Mod.cs
index 242ec260..6aac7e1e 100644
--- a/Penumbra/Mods/Mod.cs
+++ b/Penumbra/Mods/Mod.cs
@@ -7,6 +7,7 @@ using OtterGui.Classes;
using Penumbra.Collections.Cache;
using Penumbra.Import;
using Penumbra.Meta;
+using Penumbra.Mods.Subclasses;
using Penumbra.String.Classes;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/ModCreator.cs b/Penumbra/Mods/ModCreator.cs
index 527c658d..ce63fd42 100644
--- a/Penumbra/Mods/ModCreator.cs
+++ b/Penumbra/Mods/ModCreator.cs
@@ -15,6 +15,7 @@ using Penumbra.Import;
using Penumbra.Import.Structs;
using Penumbra.Meta;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.Util;
@@ -117,7 +118,9 @@ public partial class ModCreator
}
if (changes)
- _saveService.SaveAllOptionGroups(mod);
+ {
+ _saveService.SaveAllOptionGroups(mod, true);
+ }
}
/// Load the default option for a given mod.
@@ -182,7 +185,7 @@ public partial class ModCreator
if (!changes)
return;
- _saveService.SaveAllOptionGroups(mod);
+ _saveService.SaveAllOptionGroups(mod, false);
_saveService.ImmediateSave(new ModSaveGroup(mod.ModPath, mod.Default));
}
diff --git a/Penumbra/Mods/Subclasses/IModGroup.cs b/Penumbra/Mods/Subclasses/IModGroup.cs
index c5087711..f66f29ea 100644
--- a/Penumbra/Mods/Subclasses/IModGroup.cs
+++ b/Penumbra/Mods/Subclasses/IModGroup.cs
@@ -4,9 +4,8 @@ using System.IO;
using Newtonsoft.Json;
using Penumbra.Api.Enums;
using Penumbra.Services;
-using Penumbra.Util;
-namespace Penumbra.Mods;
+namespace Penumbra.Mods.Subclasses;
public interface IModGroup : IEnumerable
{
diff --git a/Penumbra/Mods/Subclasses/ISubMod.cs b/Penumbra/Mods/Subclasses/ISubMod.cs
index 2693fcad..bf11527f 100644
--- a/Penumbra/Mods/Subclasses/ISubMod.cs
+++ b/Penumbra/Mods/Subclasses/ISubMod.cs
@@ -2,6 +2,7 @@ using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
using Penumbra.Meta.Manipulations;
+using Penumbra.Mods.Subclasses;
using Penumbra.String.Classes;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/Subclasses/Mod.Files.SubMod.cs b/Penumbra/Mods/Subclasses/Mod.Files.SubMod.cs
index 24e9aafe..aad74a13 100644
--- a/Penumbra/Mods/Subclasses/Mod.Files.SubMod.cs
+++ b/Penumbra/Mods/Subclasses/Mod.Files.SubMod.cs
@@ -7,6 +7,7 @@ using Newtonsoft.Json.Linq;
using Penumbra.Import;
using Penumbra.Meta;
using Penumbra.Meta.Manipulations;
+using Penumbra.Mods.Subclasses;
using Penumbra.String.Classes;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/Subclasses/ModSettings.cs b/Penumbra/Mods/Subclasses/ModSettings.cs
index 441ffea9..ae06a082 100644
--- a/Penumbra/Mods/Subclasses/ModSettings.cs
+++ b/Penumbra/Mods/Subclasses/ModSettings.cs
@@ -7,6 +7,7 @@ using OtterGui.Filesystem;
using Penumbra.Api.Enums;
using Penumbra.Meta.Manipulations;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.String.Classes;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/Subclasses/MultiModGroup.cs b/Penumbra/Mods/Subclasses/MultiModGroup.cs
index 40f3d37e..facbacdc 100644
--- a/Penumbra/Mods/Subclasses/MultiModGroup.cs
+++ b/Penumbra/Mods/Subclasses/MultiModGroup.cs
@@ -9,6 +9,7 @@ using Newtonsoft.Json.Linq;
using OtterGui;
using OtterGui.Filesystem;
using Penumbra.Api.Enums;
+using Penumbra.Mods.Subclasses;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/Subclasses/SingleModGroup.cs b/Penumbra/Mods/Subclasses/SingleModGroup.cs
index b330c00d..a67ee1e5 100644
--- a/Penumbra/Mods/Subclasses/SingleModGroup.cs
+++ b/Penumbra/Mods/Subclasses/SingleModGroup.cs
@@ -7,6 +7,7 @@ using Newtonsoft.Json.Linq;
using OtterGui;
using OtterGui.Filesystem;
using Penumbra.Api.Enums;
+using Penumbra.Mods.Subclasses;
namespace Penumbra.Mods;
diff --git a/Penumbra/Mods/TemporaryMod.cs b/Penumbra/Mods/TemporaryMod.cs
index 6959194f..ef721414 100644
--- a/Penumbra/Mods/TemporaryMod.cs
+++ b/Penumbra/Mods/TemporaryMod.cs
@@ -6,6 +6,7 @@ using OtterGui.Classes;
using Penumbra.Collections;
using Penumbra.Meta.Manipulations;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.Util;
diff --git a/Penumbra/UI/AdvancedWindow/ItemSwapTab.cs b/Penumbra/UI/AdvancedWindow/ItemSwapTab.cs
index a705393d..726a83e1 100644
--- a/Penumbra/UI/AdvancedWindow/ItemSwapTab.cs
+++ b/Penumbra/UI/AdvancedWindow/ItemSwapTab.cs
@@ -20,6 +20,7 @@ using Penumbra.Meta;
using Penumbra.Mods;
using Penumbra.Mods.ItemSwap;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.UI.Classes;
diff --git a/Penumbra/UI/ModsTab/ModPanelEditTab.cs b/Penumbra/UI/ModsTab/ModPanelEditTab.cs
index 786a6130..c629de5b 100644
--- a/Penumbra/UI/ModsTab/ModPanelEditTab.cs
+++ b/Penumbra/UI/ModsTab/ModPanelEditTab.cs
@@ -14,6 +14,7 @@ using Penumbra.Api.Enums;
using Penumbra.Mods;
using Penumbra.Mods.Editor;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
using Penumbra.UI.AdvancedWindow;
diff --git a/Penumbra/UI/ModsTab/ModPanelSettingsTab.cs b/Penumbra/UI/ModsTab/ModPanelSettingsTab.cs
index 8d831279..0378d620 100644
--- a/Penumbra/UI/ModsTab/ModPanelSettingsTab.cs
+++ b/Penumbra/UI/ModsTab/ModPanelSettingsTab.cs
@@ -13,6 +13,7 @@ using Dalamud.Interface.Components;
using Dalamud.Interface;
using Penumbra.Collections.Manager;
using Penumbra.Mods.Manager;
+using Penumbra.Mods.Subclasses;
using Penumbra.Services;
namespace Penumbra.UI.ModsTab;