Skip to content

Commit

Permalink
Move editors into folder.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ottermandias committed Apr 26, 2024
1 parent 1e5ed1c commit cff6172
Show file tree
Hide file tree
Showing 18 changed files with 74 additions and 62 deletions.
2 changes: 1 addition & 1 deletion OtterGui
1 change: 1 addition & 0 deletions Penumbra/Api/Api/ModSettingsApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using Penumbra.Mods.Editor;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.Settings;
using Penumbra.Mods.SubMods;
using Penumbra.Services;
Expand Down
1 change: 1 addition & 0 deletions Penumbra/Collections/Cache/CollectionCacheManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
using Penumbra.Mods;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.Settings;
using Penumbra.Mods.SubMods;
using Penumbra.Services;
Expand Down
1 change: 1 addition & 0 deletions Penumbra/Collections/Manager/CollectionStorage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Penumbra.Mods.Editor;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.Settings;
using Penumbra.Mods.SubMods;
using Penumbra.Services;
Expand Down
1 change: 1 addition & 0 deletions Penumbra/Communication/ModOptionChanged.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Penumbra.Mods;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.SubMods;
using static Penumbra.Communication.ModOptionChanged;

Expand Down
1 change: 1 addition & 0 deletions Penumbra/Mods/Editor/ModMerger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Penumbra.Api.Enums;
using Penumbra.Communication;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.SubMods;
using Penumbra.Services;
using Penumbra.String.Classes;
Expand Down
1 change: 1 addition & 0 deletions Penumbra/Mods/Manager/ModCacheManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Penumbra.GameData.Enums;
using Penumbra.Meta.Manipulations;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.SubMods;
using Penumbra.Services;

Expand Down
1 change: 1 addition & 0 deletions Penumbra/Mods/Manager/ModManager.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Penumbra.Communication;
using Penumbra.Mods.Editor;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Services;

namespace Penumbra.Mods.Manager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
using Penumbra.Mods.SubMods;
using Penumbra.Services;

namespace Penumbra.Mods.Manager;
namespace Penumbra.Mods.Manager.OptionEditor;

public sealed class ImcModGroupEditor(CommunicatorService communicator, SaveService saveService, Configuration config)
: ModOptionEditor<ImcModGroup, ImcSubMod>(communicator, saveService, config), IService
{
protected override ImcModGroup CreateGroup(Mod mod, string newName, ModPriority priority, SaveType saveType = SaveType.ImmediateSync)
=> new(mod)
{
Name = newName,
Name = newName,
Priority = priority,
};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
using System.Text.RegularExpressions;
using Dalamud.Interface.Internal.Notifications;
using OtterGui.Classes;
using OtterGui.Filesystem;
using OtterGui.Services;
using Penumbra.Api.Enums;
using Penumbra.GameData.Data;
using Penumbra.Meta.Manipulations;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Settings;
using Penumbra.Mods.SubMods;
using Penumbra.Services;
using Penumbra.String.Classes;
using Penumbra.Util;
using static FFXIVClientStructs.FFXIV.Client.UI.Misc.ConfigModule;

namespace Penumbra.Mods.Manager;
namespace Penumbra.Mods.Manager.OptionEditor;

public enum ModOptionChangeType
{
Expand Down Expand Up @@ -91,7 +88,7 @@ public void DeleteModGroup(IModGroup group)
/// <summary> Move the index of a given option group. </summary>
public void MoveModGroup(IModGroup group, int groupIdxTo)
{
var mod = group.Mod;
var mod = group.Mod;
var idxFrom = group.GetIndex();
if (!mod.Groups.Move(idxFrom, groupIdxTo))
return;
Expand Down Expand Up @@ -230,45 +227,45 @@ public void DeleteOption(IModOption option)
=> group switch
{
SingleModGroup s => SingleEditor.AddOption(s, option),
MultiModGroup m => MultiEditor.AddOption(m, option),
ImcModGroup i => ImcEditor.AddOption(i, option),
_ => null,
MultiModGroup m => MultiEditor.AddOption(m, option),
ImcModGroup i => ImcEditor.AddOption(i, option),
_ => null,
};

public IModOption? AddOption(IModGroup group, string newName)
=> group switch
{
SingleModGroup s => SingleEditor.AddOption(s, newName),
MultiModGroup m => MultiEditor.AddOption(m, newName),
ImcModGroup i => ImcEditor.AddOption(i, newName),
_ => null,
MultiModGroup m => MultiEditor.AddOption(m, newName),
ImcModGroup i => ImcEditor.AddOption(i, newName),
_ => null,
};

public IModGroup? AddModGroup(Mod mod, GroupType type, string newName, SaveType saveType = SaveType.ImmediateSync)
=> type switch
{
GroupType.Single => SingleEditor.AddModGroup(mod, newName, saveType),
GroupType.Multi => MultiEditor.AddModGroup(mod, newName, saveType),
GroupType.Imc => ImcEditor.AddModGroup(mod, newName, saveType),
_ => null,
GroupType.Multi => MultiEditor.AddModGroup(mod, newName, saveType),
GroupType.Imc => ImcEditor.AddModGroup(mod, newName, saveType),
_ => null,
};

public (IModGroup?, int, bool) FindOrAddModGroup(Mod mod, GroupType type, string name, SaveType saveType = SaveType.ImmediateSync)
=> type switch
{
GroupType.Single => SingleEditor.FindOrAddModGroup(mod, name, saveType),
GroupType.Multi => MultiEditor.FindOrAddModGroup(mod, name, saveType),
GroupType.Imc => ImcEditor.FindOrAddModGroup(mod, name, saveType),
_ => (null, -1, false),
GroupType.Multi => MultiEditor.FindOrAddModGroup(mod, name, saveType),
GroupType.Imc => ImcEditor.FindOrAddModGroup(mod, name, saveType),
_ => (null, -1, false),
};

public (IModOption?, int, bool) FindOrAddOption(IModGroup group, string name, SaveType saveType = SaveType.ImmediateSync)
=> group switch
{
SingleModGroup s => SingleEditor.FindOrAddOption(s, name, saveType),
MultiModGroup m => MultiEditor.FindOrAddOption(m, name, saveType),
ImcModGroup i => ImcEditor.FindOrAddOption(i, name, saveType),
_ => (null, -1, false),
MultiModGroup m => MultiEditor.FindOrAddOption(m, name, saveType),
ImcModGroup i => ImcEditor.FindOrAddOption(i, name, saveType),
_ => (null, -1, false),
};

public void MoveOption(IModOption option, int toIdx)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using Penumbra.Mods.SubMods;
using Penumbra.Services;

namespace Penumbra.Mods.Manager;
namespace Penumbra.Mods.Manager.OptionEditor;

public abstract class ModOptionEditor<TGroup, TOption>(
CommunicatorService communicator,
Expand All @@ -15,8 +15,8 @@ public abstract class ModOptionEditor<TGroup, TOption>(
where TOption : class, IModOption
{
protected readonly CommunicatorService Communicator = communicator;
protected readonly SaveService SaveService = saveService;
protected readonly Configuration Config = config;
protected readonly SaveService SaveService = saveService;
protected readonly Configuration Config = config;

/// <summary> Add a new, empty option group of the given type and name. </summary>
public TGroup? AddModGroup(Mod mod, string newName, SaveType saveType = SaveType.ImmediateSync)
Expand All @@ -25,7 +25,7 @@ public abstract class ModOptionEditor<TGroup, TOption>(
return null;

var maxPriority = mod.Groups.Count == 0 ? ModPriority.Default : mod.Groups.Max(o => o.Priority) + 1;
var group = CreateGroup(mod, newName, maxPriority);
var group = CreateGroup(mod, newName, maxPriority);
mod.Groups.Add(group);
SaveService.Save(saveType, new ModSaveGroup(group, Config.ReplaceNonAsciiOnImport));
Communicator.ModOptionChanged.Invoke(ModOptionChangeType.GroupAdded, mod, group, null, null, -1);
Expand Down Expand Up @@ -92,8 +92,8 @@ public abstract class ModOptionEditor<TGroup, TOption>(
/// <summary> Delete the given option from the given group. </summary>
public void DeleteOption(TOption option)
{
var mod = option.Mod;
var group = option.Group;
var mod = option.Mod;
var group = option.Group;
var optionIdx = option.GetIndex();
Communicator.ModOptionChanged.Invoke(ModOptionChangeType.PrepareChange, mod, group, option, null, -1);
RemoveOption((TGroup)group, optionIdx);
Expand All @@ -104,7 +104,7 @@ public void DeleteOption(TOption option)
/// <summary> Move an option inside the given option group. </summary>
public void MoveOption(TOption option, int optionIdxTo)
{
var idx = option.GetIndex();
var idx = option.GetIndex();
var group = (TGroup)option.Group;
if (!MoveOption(group, idx, optionIdxTo))
return;
Expand All @@ -113,10 +113,10 @@ public void MoveOption(TOption option, int optionIdxTo)
Communicator.ModOptionChanged.Invoke(ModOptionChangeType.OptionMoved, group.Mod, group, option, null, idx);
}

protected abstract TGroup CreateGroup(Mod mod, string newName, ModPriority priority, SaveType saveType = SaveType.ImmediateSync);
protected abstract TGroup CreateGroup(Mod mod, string newName, ModPriority priority, SaveType saveType = SaveType.ImmediateSync);
protected abstract TOption? CloneOption(TGroup group, IModOption option);
protected abstract void RemoveOption(TGroup group, int optionIndex);
protected abstract bool MoveOption(TGroup group, int optionIdxFrom, int optionIdxTo);
protected abstract void RemoveOption(TGroup group, int optionIndex);
protected abstract bool MoveOption(TGroup group, int optionIdxFrom, int optionIdxTo);
}

public static class ModOptionChangeTypeExtension
Expand All @@ -132,22 +132,22 @@ public static void HandlingInfo(this ModOptionChangeType type, out bool requires
{
(requiresSaving, requiresReloading, wasPrepared) = type switch
{
ModOptionChangeType.GroupRenamed => (true, false, false),
ModOptionChangeType.GroupAdded => (true, false, false),
ModOptionChangeType.GroupDeleted => (true, true, false),
ModOptionChangeType.GroupMoved => (true, false, false),
ModOptionChangeType.GroupTypeChanged => (true, true, true),
ModOptionChangeType.PriorityChanged => (true, true, true),
ModOptionChangeType.OptionAdded => (true, true, true),
ModOptionChangeType.OptionDeleted => (true, true, false),
ModOptionChangeType.OptionMoved => (true, false, false),
ModOptionChangeType.OptionFilesChanged => (false, true, false),
ModOptionChangeType.OptionFilesAdded => (false, true, true),
ModOptionChangeType.OptionSwapsChanged => (false, true, false),
ModOptionChangeType.OptionMetaChanged => (false, true, false),
ModOptionChangeType.DisplayChange => (false, false, false),
ModOptionChangeType.GroupRenamed => (true, false, false),
ModOptionChangeType.GroupAdded => (true, false, false),
ModOptionChangeType.GroupDeleted => (true, true, false),
ModOptionChangeType.GroupMoved => (true, false, false),
ModOptionChangeType.GroupTypeChanged => (true, true, true),
ModOptionChangeType.PriorityChanged => (true, true, true),
ModOptionChangeType.OptionAdded => (true, true, true),
ModOptionChangeType.OptionDeleted => (true, true, false),
ModOptionChangeType.OptionMoved => (true, false, false),
ModOptionChangeType.OptionFilesChanged => (false, true, false),
ModOptionChangeType.OptionFilesAdded => (false, true, true),
ModOptionChangeType.OptionSwapsChanged => (false, true, false),
ModOptionChangeType.OptionMetaChanged => (false, true, false),
ModOptionChangeType.DisplayChange => (false, false, false),
ModOptionChangeType.DefaultOptionChanged => (true, false, false),
_ => (false, false, false),
_ => (false, false, false),
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
using Penumbra.Mods.SubMods;
using Penumbra.Services;

namespace Penumbra.Mods.Manager;
namespace Penumbra.Mods.Manager.OptionEditor;

public sealed class MultiModGroupEditor(CommunicatorService communicator, SaveService saveService, Configuration config)
: ModOptionEditor<MultiModGroup, MultiSubMod>(communicator, saveService, config), IService
{
public void ChangeToSingle(MultiModGroup group)
{
var idx = group.GetIndex();
var idx = group.GetIndex();
var singleGroup = group.ConvertToSingle();
group.Mod.Groups[idx] = singleGroup;
SaveService.QueueSave(new ModSaveGroup(group, Config.ReplaceNonAsciiOnImport));
Expand All @@ -34,7 +34,7 @@ public void ChangeOptionPriority(MultiSubMod option, ModPriority newPriority)
protected override MultiModGroup CreateGroup(Mod mod, string newName, ModPriority priority, SaveType saveType = SaveType.ImmediateSync)
=> new(mod)
{
Name = newName,
Name = newName,
Priority = priority,
};

Expand All @@ -50,7 +50,7 @@ protected override MultiModGroup CreateGroup(Mod mod, string newName, ModPriorit

var newOption = new MultiSubMod(group)
{
Name = option.Name,
Name = option.Name,
Description = option.Description,
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
using Penumbra.Mods.SubMods;
using Penumbra.Services;

namespace Penumbra.Mods.Manager;
namespace Penumbra.Mods.Manager.OptionEditor;

public sealed class SingleModGroupEditor(CommunicatorService communicator, SaveService saveService, Configuration config)
: ModOptionEditor<SingleModGroup, SingleSubMod>(communicator, saveService, config), IService
{
public void ChangeToMulti(SingleModGroup group)
{
var idx = group.GetIndex();
var idx = group.GetIndex();
var multiGroup = group.ConvertToMulti();
group.Mod.Groups[idx] = multiGroup;
SaveService.QueueSave(new ModSaveGroup(group, Config.ReplaceNonAsciiOnImport));
Expand All @@ -23,15 +23,15 @@ public void ChangeToMulti(SingleModGroup group)
protected override SingleModGroup CreateGroup(Mod mod, string newName, ModPriority priority, SaveType saveType = SaveType.ImmediateSync)
=> new(mod)
{
Name = newName,
Name = newName,
Priority = priority,
};

protected override SingleSubMod CloneOption(SingleModGroup group, IModOption option)
{
var newOption = new SingleSubMod(group)
{
Name = option.Name,
Name = option.Name,
Description = option.Description,
};
if (option is IModDataContainer data)
Expand Down
2 changes: 1 addition & 1 deletion Penumbra/Mods/Settings/ModSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using Penumbra.Api.Enums;
using Penumbra.Mods.Editor;
using Penumbra.Mods.Groups;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.SubMods;

namespace Penumbra.Mods.Settings;
Expand Down
2 changes: 1 addition & 1 deletion Penumbra/Penumbra.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@

<ItemGroup>
<PackageReference Include="EmbedIO" Version="3.4.3" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.3" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.4" />
<PackageReference Include="SharpCompress" Version="0.33.0" />
<PackageReference Include="SharpGLTF.Core" Version="1.0.0-alpha0030" />
<PackageReference Include="SharpGLTF.Toolkit" Version="1.0.0-alpha0030" />
Expand Down
1 change: 1 addition & 0 deletions Penumbra/UI/AdvancedWindow/ItemSwapTab.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
using Penumbra.Mods.Groups;
using Penumbra.Mods.ItemSwap;
using Penumbra.Mods.Manager;
using Penumbra.Mods.Manager.OptionEditor;
using Penumbra.Mods.Settings;
using Penumbra.Mods.SubMods;
using Penumbra.Services;
Expand Down
1 change: 1 addition & 0 deletions Penumbra/UI/ModsTab/ModPanelEditTab.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
using Penumbra.Mods.Groups;
using Penumbra.Mods.Settings;
using Penumbra.Mods.SubMods;
using Penumbra.Mods.Manager.OptionEditor;

namespace Penumbra.UI.ModsTab;

Expand Down
Loading

0 comments on commit cff6172

Please sign in to comment.