diff --git a/Penumbra/Api/DalamudSubstitutionProvider.cs b/Penumbra/Api/DalamudSubstitutionProvider.cs index 498c25e3..0374e31a 100644 --- a/Penumbra/Api/DalamudSubstitutionProvider.cs +++ b/Penumbra/Api/DalamudSubstitutionProvider.cs @@ -3,6 +3,7 @@ using Penumbra.Collections; using Penumbra.Collections.Manager; using Penumbra.Communication; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.Services; using Penumbra.String.Classes; diff --git a/Penumbra/Collections/Cache/CollectionCache.cs b/Penumbra/Collections/Cache/CollectionCache.cs index a6e5fef5..9a0e525b 100644 --- a/Penumbra/Collections/Cache/CollectionCache.cs +++ b/Penumbra/Collections/Cache/CollectionCache.cs @@ -4,6 +4,7 @@ using Penumbra.Meta.Manipulations; using Penumbra.Mods; using Penumbra.Api.Enums; using Penumbra.Communication; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; using Penumbra.Mods.Manager; using Penumbra.Mods.Subclasses; diff --git a/Penumbra/Collections/Cache/CollectionModData.cs b/Penumbra/Collections/Cache/CollectionModData.cs index fcbccc96..3a3afad2 100644 --- a/Penumbra/Collections/Cache/CollectionModData.cs +++ b/Penumbra/Collections/Cache/CollectionModData.cs @@ -1,5 +1,6 @@ using Penumbra.Meta.Manipulations; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; namespace Penumbra.Collections.Cache; diff --git a/Penumbra/Collections/Cache/MetaCache.cs b/Penumbra/Collections/Cache/MetaCache.cs index b22aaa6e..4c147c3c 100644 --- a/Penumbra/Collections/Cache/MetaCache.cs +++ b/Penumbra/Collections/Cache/MetaCache.cs @@ -5,6 +5,7 @@ using Penumbra.Interop.Structs; using Penumbra.Meta; using Penumbra.Meta.Manipulations; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; namespace Penumbra.Collections.Cache; diff --git a/Penumbra/Collections/ModCollection.Cache.Access.cs b/Penumbra/Collections/ModCollection.Cache.Access.cs index 5d1d10e2..7c29676d 100644 --- a/Penumbra/Collections/ModCollection.Cache.Access.cs +++ b/Penumbra/Collections/ModCollection.Cache.Access.cs @@ -7,6 +7,7 @@ using Penumbra.Meta.Manipulations; using Penumbra.String.Classes; using Penumbra.Collections.Cache; using Penumbra.Interop.Services; +using Penumbra.Mods.Editor; namespace Penumbra.Collections; diff --git a/Penumbra/Communication/ResolvedFileChanged.cs b/Penumbra/Communication/ResolvedFileChanged.cs index 3211a26a..75444340 100644 --- a/Penumbra/Communication/ResolvedFileChanged.cs +++ b/Penumbra/Communication/ResolvedFileChanged.cs @@ -1,6 +1,7 @@ using OtterGui.Classes; using Penumbra.Collections; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; namespace Penumbra.Communication; diff --git a/Penumbra/Interop/Hooks/DebugHook.cs b/Penumbra/Interop/Hooks/DebugHook.cs index 67823e94..db14805c 100644 --- a/Penumbra/Interop/Hooks/DebugHook.cs +++ b/Penumbra/Interop/Hooks/DebugHook.cs @@ -1,5 +1,4 @@ using Dalamud.Hooking; -using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle; using OtterGui.Services; namespace Penumbra.Interop.Hooks; @@ -32,12 +31,12 @@ public sealed unsafe class DebugHook : IHookService public bool Finished => _task?.IsCompletedSuccessfully ?? true; - private delegate nint Delegate(ResourceHandle* resourceHandle); + private delegate void Delegate(nint a, int b, nint c, float* d); - private nint Detour(ResourceHandle* resourceHandle) + private void Detour(nint a, int b, nint c, float* d) { - Penumbra.Log.Information($"[Debug Hook] Triggered with 0x{(nint)resourceHandle:X}."); - return _task!.Result.Original(resourceHandle); + _task!.Result.Original(a, b, c, d); + Penumbra.Log.Information($"[Debug Hook] Results with 0x{a:X} {b} {c:X} {d[0]} {d[1]} {d[2]} {d[3]}."); } } #endif diff --git a/Penumbra/Mods/Editor/DuplicateManager.cs b/Penumbra/Mods/Editor/DuplicateManager.cs index 4773d840..dad05102 100644 --- a/Penumbra/Mods/Editor/DuplicateManager.cs +++ b/Penumbra/Mods/Editor/DuplicateManager.cs @@ -1,4 +1,3 @@ -using OtterGui.Services; using Penumbra.Mods.Manager; using Penumbra.Mods.Subclasses; using Penumbra.Services; diff --git a/Penumbra/Mods/Editor/IMod.cs b/Penumbra/Mods/Editor/IMod.cs index cd8a9594..78250341 100644 --- a/Penumbra/Mods/Editor/IMod.cs +++ b/Penumbra/Mods/Editor/IMod.cs @@ -1,7 +1,7 @@ using OtterGui.Classes; using Penumbra.Mods.Subclasses; -namespace Penumbra.Mods; +namespace Penumbra.Mods.Editor; public interface IMod { diff --git a/Penumbra/Mods/Editor/MdlMaterialEditor.cs b/Penumbra/Mods/Editor/MdlMaterialEditor.cs index 8881ac4b..738e606e 100644 --- a/Penumbra/Mods/Editor/MdlMaterialEditor.cs +++ b/Penumbra/Mods/Editor/MdlMaterialEditor.cs @@ -2,25 +2,19 @@ using OtterGui; using OtterGui.Compression; using Penumbra.GameData.Enums; using Penumbra.GameData.Files; -using Penumbra.Mods.Editor; -namespace Penumbra.Mods; +namespace Penumbra.Mods.Editor; -public partial class MdlMaterialEditor +public partial class MdlMaterialEditor(ModFileCollection files) { [GeneratedRegex(@"/mt_c(?'RaceCode'\d{4})b0001_(?'Suffix'.*?)\.mtrl", RegexOptions.ExplicitCapture | RegexOptions.NonBacktracking)] private static partial Regex MaterialRegex(); - private readonly ModFileCollection _files; - - private readonly List _modelFiles = new(); + private readonly List _modelFiles = []; public IReadOnlyList ModelFiles => _modelFiles; - public MdlMaterialEditor(ModFileCollection files) - => _files = files; - public void SaveAllModels(FileCompactor compactor) { foreach (var info in _modelFiles) @@ -73,7 +67,7 @@ public partial class MdlMaterialEditor public void ScanModels(Mod mod) { _modelFiles.Clear(); - foreach (var file in _files.Mdl) + foreach (var file in files.Mdl) { try { diff --git a/Penumbra/Mods/Editor/ModEditor.cs b/Penumbra/Mods/Editor/ModEditor.cs index 2f39970d..b22aea17 100644 --- a/Penumbra/Mods/Editor/ModEditor.cs +++ b/Penumbra/Mods/Editor/ModEditor.cs @@ -4,16 +4,25 @@ using Penumbra.Mods.Subclasses; namespace Penumbra.Mods.Editor; -public class ModEditor : IDisposable +public class ModEditor( + ModNormalizer modNormalizer, + ModMetaEditor metaEditor, + ModFileCollection files, + ModFileEditor fileEditor, + DuplicateManager duplicates, + ModSwapEditor swapEditor, + MdlMaterialEditor mdlMaterialEditor, + FileCompactor compactor) + : IDisposable { - public readonly ModNormalizer ModNormalizer; - public readonly ModMetaEditor MetaEditor; - public readonly ModFileEditor FileEditor; - public readonly DuplicateManager Duplicates; - public readonly ModFileCollection Files; - public readonly ModSwapEditor SwapEditor; - public readonly MdlMaterialEditor MdlMaterialEditor; - public readonly FileCompactor Compactor; + public readonly ModNormalizer ModNormalizer = modNormalizer; + public readonly ModMetaEditor MetaEditor = metaEditor; + public readonly ModFileEditor FileEditor = fileEditor; + public readonly DuplicateManager Duplicates = duplicates; + public readonly ModFileCollection Files = files; + public readonly ModSwapEditor SwapEditor = swapEditor; + public readonly MdlMaterialEditor MdlMaterialEditor = mdlMaterialEditor; + public readonly FileCompactor Compactor = compactor; public Mod? Mod { get; private set; } public int GroupIdx { get; private set; } @@ -22,20 +31,6 @@ public class ModEditor : IDisposable public IModGroup? Group { get; private set; } public ISubMod? Option { get; private set; } - public ModEditor(ModNormalizer modNormalizer, ModMetaEditor metaEditor, ModFileCollection files, - ModFileEditor fileEditor, DuplicateManager duplicates, ModSwapEditor swapEditor, MdlMaterialEditor mdlMaterialEditor, - FileCompactor compactor) - { - ModNormalizer = modNormalizer; - MetaEditor = metaEditor; - Files = files; - FileEditor = fileEditor; - Duplicates = duplicates; - SwapEditor = swapEditor; - MdlMaterialEditor = mdlMaterialEditor; - Compactor = compactor; - } - public void LoadMod(Mod mod) => LoadMod(mod, -1, 0); diff --git a/Penumbra/Mods/Editor/ModFileCollection.cs b/Penumbra/Mods/Editor/ModFileCollection.cs index e3862c90..2f8bdfb1 100644 --- a/Penumbra/Mods/Editor/ModFileCollection.cs +++ b/Penumbra/Mods/Editor/ModFileCollection.cs @@ -6,20 +6,20 @@ namespace Penumbra.Mods.Editor; public class ModFileCollection : IDisposable { - private readonly List _available = new(); - private readonly List _mtrl = new(); - private readonly List _mdl = new(); - private readonly List _tex = new(); - private readonly List _shpk = new(); + private readonly List _available = []; + private readonly List _mtrl = []; + private readonly List _mdl = []; + private readonly List _tex = []; + private readonly List _shpk = []; - private readonly SortedSet _missing = new(); - private readonly HashSet _usedPaths = new(); + private readonly SortedSet _missing = []; + private readonly HashSet _usedPaths = []; public IReadOnlySet Missing - => Ready ? _missing : new HashSet(); + => Ready ? _missing : []; public IReadOnlySet UsedPaths - => Ready ? _usedPaths : new HashSet(); + => Ready ? _usedPaths : []; public IReadOnlyList Available => Ready ? _available : Array.Empty(); @@ -38,9 +38,6 @@ public class ModFileCollection : IDisposable public bool Ready { get; private set; } = true; - public ModFileCollection() - { } - public void UpdateAll(Mod mod, ISubMod option) { UpdateFiles(mod, new CancellationToken()); diff --git a/Penumbra/Mods/Editor/ModFileEditor.cs b/Penumbra/Mods/Editor/ModFileEditor.cs index 82629971..5328b8fe 100644 --- a/Penumbra/Mods/Editor/ModFileEditor.cs +++ b/Penumbra/Mods/Editor/ModFileEditor.cs @@ -1,23 +1,13 @@ -using Penumbra.Mods.Editor; using Penumbra.Mods.Manager; using Penumbra.Mods.Subclasses; using Penumbra.String.Classes; -namespace Penumbra.Mods; +namespace Penumbra.Mods.Editor; -public class ModFileEditor +public class ModFileEditor(ModFileCollection files, ModManager modManager) { - private readonly ModFileCollection _files; - private readonly ModManager _modManager; - public bool Changes { get; private set; } - public ModFileEditor(ModFileCollection files, ModManager modManager) - { - _files = files; - _modManager = modManager; - } - public void Clear() { Changes = false; @@ -27,21 +17,21 @@ public class ModFileEditor { var dict = new Dictionary(); var num = 0; - foreach (var file in _files.Available) + foreach (var file in files.Available) { foreach (var path in file.SubModUsage.Where(p => p.Item1 == option)) num += dict.TryAdd(path.Item2, file.File) ? 0 : 1; } - _modManager.OptionEditor.OptionSetFiles(mod, option.GroupIdx, option.OptionIdx, dict); - _files.UpdatePaths(mod, option); + modManager.OptionEditor.OptionSetFiles(mod, option.GroupIdx, option.OptionIdx, dict); + files.UpdatePaths(mod, option); Changes = false; return num; } public void Revert(Mod mod, ISubMod option) { - _files.UpdateAll(mod, option); + files.UpdateAll(mod, option); Changes = false; } @@ -53,16 +43,16 @@ public class ModFileEditor var newDict = subMod.Files.Where(kvp => CheckAgainstMissing(mod, subMod, kvp.Value, kvp.Key, subMod == option)) .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); if (newDict.Count != subMod.Files.Count) - _modManager.OptionEditor.OptionSetFiles(mod, groupIdx, optionIdx, newDict); + modManager.OptionEditor.OptionSetFiles(mod, groupIdx, optionIdx, newDict); } ModEditor.ApplyToAllOptions(mod, HandleSubMod); - _files.ClearMissingFiles(); + files.ClearMissingFiles(); } /// Return whether the given path is already used in the current option. public bool CanAddGamePath(Utf8GamePath path) - => !_files.UsedPaths.Contains(path); + => !files.UsedPaths.Contains(path); /// /// Try to set a given path for a given file. @@ -72,17 +62,17 @@ public class ModFileEditor /// public bool SetGamePath(ISubMod option, int fileIdx, int pathIdx, Utf8GamePath path) { - if (!CanAddGamePath(path) || fileIdx < 0 || fileIdx > _files.Available.Count) + if (!CanAddGamePath(path) || fileIdx < 0 || fileIdx > files.Available.Count) return false; - var registry = _files.Available[fileIdx]; + var registry = files.Available[fileIdx]; if (pathIdx > registry.SubModUsage.Count) return false; if ((pathIdx == -1 || pathIdx == registry.SubModUsage.Count) && !path.IsEmpty) - _files.AddUsedPath(option, registry, path); + files.AddUsedPath(option, registry, path); else - _files.ChangeUsedPath(registry, pathIdx, path); + files.ChangeUsedPath(registry, pathIdx, path); Changes = true; @@ -93,10 +83,10 @@ public class ModFileEditor /// Transform a set of files to the appropriate game paths with the given number of folders skipped, /// and add them to the given option. /// - public int AddPathsToSelected(ISubMod option, IEnumerable files, int skipFolders = 0) + public int AddPathsToSelected(ISubMod option, IEnumerable files1, int skipFolders = 0) { var failed = 0; - foreach (var file in files) + foreach (var file in files1) { var gamePath = file.RelPath.ToGamePath(skipFolders); if (gamePath.IsEmpty) @@ -107,7 +97,7 @@ public class ModFileEditor if (CanAddGamePath(gamePath)) { - _files.AddUsedPath(option, file, gamePath); + files.AddUsedPath(option, file, gamePath); Changes = true; } else @@ -120,9 +110,9 @@ public class ModFileEditor } /// Remove all paths in the current option from the given files. - public void RemovePathsFromSelected(ISubMod option, IEnumerable files) + public void RemovePathsFromSelected(ISubMod option, IEnumerable files1) { - foreach (var file in files) + foreach (var file in files1) { for (var i = 0; i < file.SubModUsage.Count; ++i) { @@ -130,7 +120,7 @@ public class ModFileEditor if (option != opt) continue; - _files.RemoveUsedPath(option, file, path); + files.RemoveUsedPath(option, file, path); Changes = true; --i; } @@ -138,10 +128,10 @@ public class ModFileEditor } /// Delete all given files from your filesystem - public void DeleteFiles(Mod mod, ISubMod option, IEnumerable files) + public void DeleteFiles(Mod mod, ISubMod option, IEnumerable files1) { var deletions = 0; - foreach (var file in files) + foreach (var file in files1) { try { @@ -158,18 +148,18 @@ public class ModFileEditor if (deletions <= 0) return; - _modManager.Creator.ReloadMod(mod, false, out _); - _files.UpdateAll(mod, option); + modManager.Creator.ReloadMod(mod, false, out _); + files.UpdateAll(mod, option); } private bool CheckAgainstMissing(Mod mod, ISubMod option, FullPath file, Utf8GamePath key, bool removeUsed) { - if (!_files.Missing.Contains(file)) + if (!files.Missing.Contains(file)) return true; if (removeUsed) - _files.RemoveUsedPath(option, file, key); + files.RemoveUsedPath(option, file, key); Penumbra.Log.Debug($"[RemoveMissingPaths] Removing {key} -> {file} from {mod.Name}."); return false; diff --git a/Penumbra/Mods/Editor/ModMetaEditor.cs b/Penumbra/Mods/Editor/ModMetaEditor.cs index 09c5c77a..bbf0d4b5 100644 --- a/Penumbra/Mods/Editor/ModMetaEditor.cs +++ b/Penumbra/Mods/Editor/ModMetaEditor.cs @@ -4,16 +4,14 @@ using Penumbra.Mods.Subclasses; namespace Penumbra.Mods; -public class ModMetaEditor +public class ModMetaEditor(ModManager modManager) { - private readonly ModManager _modManager; - - private readonly HashSet _imc = new(); - private readonly HashSet _eqp = new(); - private readonly HashSet _eqdp = new(); - private readonly HashSet _gmp = new(); - private readonly HashSet _est = new(); - private readonly HashSet _rsp = new(); + private readonly HashSet _imc = []; + private readonly HashSet _eqp = []; + private readonly HashSet _eqdp = []; + private readonly HashSet _gmp = []; + private readonly HashSet _est = []; + private readonly HashSet _rsp = []; public int OtherImcCount { get; private set; } public int OtherEqpCount { get; private set; } @@ -22,11 +20,7 @@ public class ModMetaEditor public int OtherEstCount { get; private set; } public int OtherRspCount { get; private set; } - - public ModMetaEditor(ModManager modManager) - => _modManager = modManager; - - public bool Changes { get; private set; } = false; + public bool Changes { get; private set; } public IReadOnlySet Imc => _imc; @@ -156,7 +150,7 @@ public class ModMetaEditor if (!Changes) return; - _modManager.OptionEditor.OptionSetManipulations(mod, groupIdx, optionIdx, Recombine().ToHashSet()); + modManager.OptionEditor.OptionSetManipulations(mod, groupIdx, optionIdx, Recombine().ToHashSet()); Changes = false; } diff --git a/Penumbra/Mods/Editor/ModNormalizer.cs b/Penumbra/Mods/Editor/ModNormalizer.cs index c146b6f4..a9a31212 100644 --- a/Penumbra/Mods/Editor/ModNormalizer.cs +++ b/Penumbra/Mods/Editor/ModNormalizer.cs @@ -10,7 +10,7 @@ namespace Penumbra.Mods.Editor; public class ModNormalizer(ModManager _modManager, Configuration _config) { - private readonly List>> _redirections = new(); + private readonly List>> _redirections = []; public Mod Mod { get; private set; } = null!; private string _normalizationDirName = null!; @@ -141,7 +141,7 @@ public class ModNormalizer(ModManager _modManager, Configuration _config) { var directory = Directory.CreateDirectory(_normalizationDirName); for (var i = _redirections.Count; i < Mod.Groups.Count + 1; ++i) - _redirections.Add(new List>()); + _redirections.Add([]); if (_redirections[0].Count == 0) _redirections[0].Add(new Dictionary(Mod.Default.Files.Count)); @@ -169,7 +169,7 @@ public class ModNormalizer(ModManager _modManager, Configuration _config) { _redirections[groupIdx + 1].EnsureCapacity(group.Count); for (var i = _redirections[groupIdx + 1].Count; i < group.Count; ++i) - _redirections[groupIdx + 1].Add(new Dictionary()); + _redirections[groupIdx + 1].Add([]); var groupDir = ModCreator.CreateModFolder(directory, group.Name, _config.ReplaceNonAsciiOnImport, true); foreach (var option in group.OfType()) diff --git a/Penumbra/Mods/Editor/ModSwapEditor.cs b/Penumbra/Mods/Editor/ModSwapEditor.cs index b9834da8..ada06264 100644 --- a/Penumbra/Mods/Editor/ModSwapEditor.cs +++ b/Penumbra/Mods/Editor/ModSwapEditor.cs @@ -4,17 +4,13 @@ using Penumbra.Mods.Subclasses; using Penumbra.String.Classes; using Penumbra.Util; -public class ModSwapEditor +public class ModSwapEditor(ModManager modManager) { - private readonly ModManager _modManager; - private readonly Dictionary _swaps = new(); + private readonly Dictionary _swaps = []; public IReadOnlyDictionary Swaps => _swaps; - public ModSwapEditor(ModManager modManager) - => _modManager = modManager; - public void Revert(ISubMod option) { _swaps.SetTo(option.FileSwaps); @@ -26,7 +22,7 @@ public class ModSwapEditor if (!Changes) return; - _modManager.OptionEditor.OptionSetFileSwaps(mod, groupIdx, optionIdx, _swaps); + modManager.OptionEditor.OptionSetFileSwaps(mod, groupIdx, optionIdx, _swaps); Changes = false; } diff --git a/Penumbra/Mods/Mod.cs b/Penumbra/Mods/Mod.cs index 41cc023e..a9ef22cb 100644 --- a/Penumbra/Mods/Mod.cs +++ b/Penumbra/Mods/Mod.cs @@ -1,5 +1,6 @@ using OtterGui; using OtterGui.Classes; +using Penumbra.Mods.Editor; using Penumbra.Mods.Subclasses; using Penumbra.String.Classes; diff --git a/Penumbra/Mods/Subclasses/SubMod.cs b/Penumbra/Mods/Subclasses/SubMod.cs index a081f7bc..88c4e4ce 100644 --- a/Penumbra/Mods/Subclasses/SubMod.cs +++ b/Penumbra/Mods/Subclasses/SubMod.cs @@ -1,5 +1,6 @@ using Newtonsoft.Json.Linq; using Penumbra.Meta.Manipulations; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; namespace Penumbra.Mods.Subclasses; diff --git a/Penumbra/Mods/TemporaryMod.cs b/Penumbra/Mods/TemporaryMod.cs index 52159258..c80334aa 100644 --- a/Penumbra/Mods/TemporaryMod.cs +++ b/Penumbra/Mods/TemporaryMod.cs @@ -1,6 +1,7 @@ using OtterGui.Classes; using Penumbra.Collections; using Penumbra.Meta.Manipulations; +using Penumbra.Mods.Editor; using Penumbra.Mods.Manager; using Penumbra.Mods.Subclasses; using Penumbra.Services; diff --git a/Penumbra/Services/ServiceManagerA.cs b/Penumbra/Services/ServiceManagerA.cs index a81ae55b..2b2bbf95 100644 --- a/Penumbra/Services/ServiceManagerA.cs +++ b/Penumbra/Services/ServiceManagerA.cs @@ -33,6 +33,7 @@ using Penumbra.UI.ModsTab; using Penumbra.UI.ResourceWatcher; using Penumbra.UI.Tabs; using Penumbra.UI.Tabs.Debug; +using MdlMaterialEditor = Penumbra.Mods.Editor.MdlMaterialEditor; using ResidentResourceManager = Penumbra.Interop.Services.ResidentResourceManager; namespace Penumbra.Services; diff --git a/Penumbra/UI/AdvancedWindow/ModEditWindow.cs b/Penumbra/UI/AdvancedWindow/ModEditWindow.cs index 8b6ef331..6d406461 100644 --- a/Penumbra/UI/AdvancedWindow/ModEditWindow.cs +++ b/Penumbra/UI/AdvancedWindow/ModEditWindow.cs @@ -26,6 +26,7 @@ using Penumbra.String; using Penumbra.String.Classes; using Penumbra.UI.Classes; using Penumbra.Util; +using MdlMaterialEditor = Penumbra.Mods.Editor.MdlMaterialEditor; namespace Penumbra.UI.AdvancedWindow; diff --git a/Penumbra/UI/ModsTab/ModPanelConflictsTab.cs b/Penumbra/UI/ModsTab/ModPanelConflictsTab.cs index 926ba77b..9d57d3a8 100644 --- a/Penumbra/UI/ModsTab/ModPanelConflictsTab.cs +++ b/Penumbra/UI/ModsTab/ModPanelConflictsTab.cs @@ -8,6 +8,7 @@ using Penumbra.Collections.Cache; using Penumbra.Collections.Manager; using Penumbra.Meta.Manipulations; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; using Penumbra.UI.Classes; diff --git a/Penumbra/UI/Tabs/ChangedItemsTab.cs b/Penumbra/UI/Tabs/ChangedItemsTab.cs index f7e64125..76fb8c96 100644 --- a/Penumbra/UI/Tabs/ChangedItemsTab.cs +++ b/Penumbra/UI/Tabs/ChangedItemsTab.cs @@ -6,6 +6,7 @@ using OtterGui.Widgets; using Penumbra.Api.Enums; using Penumbra.Collections.Manager; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.Services; using Penumbra.UI.Classes; diff --git a/Penumbra/UI/Tabs/EffectiveTab.cs b/Penumbra/UI/Tabs/EffectiveTab.cs index 0cc2e5c1..8ef6c30e 100644 --- a/Penumbra/UI/Tabs/EffectiveTab.cs +++ b/Penumbra/UI/Tabs/EffectiveTab.cs @@ -9,6 +9,7 @@ using Penumbra.Collections.Cache; using Penumbra.Collections.Manager; using Penumbra.Meta.Manipulations; using Penumbra.Mods; +using Penumbra.Mods.Editor; using Penumbra.String.Classes; using Penumbra.UI.Classes;