From af536b34236f73d62c4894b6f0d2bc7df1665f3f Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Thu, 10 Aug 2023 18:10:26 +0200 Subject: [PATCH] Update some Dalamud Services. --- OtterGui | 2 +- Penumbra.GameData | 2 +- Penumbra/CommandHandler.cs | 6 +++--- Penumbra/Import/Textures/TextureManager.cs | 11 +++++------ .../PathResolving/AnimationHookService.cs | 7 +++---- .../PathResolving/CollectionResolver.cs | 9 ++++----- .../Interop/PathResolving/CutsceneService.cs | 6 +++--- .../Interop/PathResolving/DrawObjectState.cs | 6 +++--- .../PathResolving/IdentifiedCollectionCache.cs | 6 +++--- .../ResourceTree/ResourceTreeFactory.cs | 9 ++++----- .../Interop/ResourceTree/TreeBuildCache.cs | 9 ++++----- Penumbra/Interop/Services/RedrawService.cs | 8 ++++---- Penumbra/Meta/MetaFileManager.cs | 6 +++--- Penumbra/Services/ChatService.cs | 3 +-- Penumbra/Services/DalamudServices.cs | 17 +++++++---------- Penumbra/Services/StainService.cs | 4 ++-- Penumbra/Services/Wrappers.cs | 13 +++++-------- Penumbra/UI/AdvancedWindow/FileEditor.cs | 6 +++--- Penumbra/UI/AdvancedWindow/ModEditWindow.cs | 4 ++-- Penumbra/UI/ChangedItemDrawer.cs | 18 +++++++++--------- Penumbra/UI/CollectionTab/CollectionPanel.cs | 4 ++-- Penumbra/UI/Tabs/CollectionsTab.cs | 2 +- Penumbra/UI/Tabs/ModsTab.cs | 6 +++--- Penumbra/UI/Tabs/ResourceTab.cs | 5 ++--- 24 files changed, 78 insertions(+), 91 deletions(-) diff --git a/OtterGui b/OtterGui index 9dad9558..863d08bd 160000 --- a/OtterGui +++ b/OtterGui @@ -1 +1 @@ -Subproject commit 9dad955808831a5d154d778d1123acbe648c42ac +Subproject commit 863d08bd83381bb7fe4a8d5c514f0ba55379336f diff --git a/Penumbra.GameData b/Penumbra.GameData index e5b733c6..d84508ea 160000 --- a/Penumbra.GameData +++ b/Penumbra.GameData @@ -1 +1 @@ -Subproject commit e5b733c6fcc5436c8f767dd99a37e5e8c16b4fc8 +Subproject commit d84508ea1a607976525265e8f75a329667eec0e5 diff --git a/Penumbra/CommandHandler.cs b/Penumbra/CommandHandler.cs index 4ef04e77..a78c4da7 100644 --- a/Penumbra/CommandHandler.cs +++ b/Penumbra/CommandHandler.cs @@ -5,6 +5,7 @@ using Dalamud.Game; using Dalamud.Game.Command; using Dalamud.Game.Gui; using Dalamud.Game.Text.SeStringHandling; +using Dalamud.Plugin.Services; using ImGuiNET; using OtterGui.Classes; using Penumbra.Api.Enums; @@ -16,7 +17,6 @@ using Penumbra.Mods; using Penumbra.Mods.Manager; using Penumbra.Services; using Penumbra.UI; -using Penumbra.Util; namespace Penumbra; @@ -24,7 +24,7 @@ public class CommandHandler : IDisposable { private const string CommandName = "/penumbra"; - private readonly CommandManager _commandManager; + private readonly ICommandManager _commandManager; private readonly RedrawService _redrawService; private readonly ChatGui _chat; private readonly Configuration _config; @@ -35,7 +35,7 @@ public class CommandHandler : IDisposable private readonly Penumbra _penumbra; private readonly CollectionEditor _collectionEditor; - public CommandHandler(Framework framework, CommandManager commandManager, ChatGui chat, RedrawService redrawService, Configuration config, + public CommandHandler(Framework framework, ICommandManager commandManager, ChatGui chat, RedrawService redrawService, Configuration config, ConfigWindow configWindow, ModManager modManager, CollectionManager collectionManager, ActorService actors, Penumbra penumbra, CollectionEditor collectionEditor) { diff --git a/Penumbra/Import/Textures/TextureManager.cs b/Penumbra/Import/Textures/TextureManager.cs index 76604e84..3b4c7f67 100644 --- a/Penumbra/Import/Textures/TextureManager.cs +++ b/Penumbra/Import/Textures/TextureManager.cs @@ -6,8 +6,8 @@ using System.Linq; using System.Numerics; using System.Threading; using System.Threading.Tasks; -using Dalamud.Data; using Dalamud.Interface; +using Dalamud.Plugin.Services; using ImGuiScene; using Lumina.Data.Files; using OtterGui.Log; @@ -16,21 +16,20 @@ using OtterTex; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Formats.Png; using SixLabors.ImageSharp.PixelFormats; -using Swan; using Image = SixLabors.ImageSharp.Image; namespace Penumbra.Import.Textures; public sealed class TextureManager : SingleTaskQueue, IDisposable { - private readonly Logger _logger; - private readonly UiBuilder _uiBuilder; - private readonly DataManager _gameData; + private readonly Logger _logger; + private readonly UiBuilder _uiBuilder; + private readonly IDataManager _gameData; private readonly ConcurrentDictionary _tasks = new(); private bool _disposed = false; - public TextureManager(UiBuilder uiBuilder, DataManager gameData, Logger logger) + public TextureManager(UiBuilder uiBuilder, IDataManager gameData, Logger logger) { _uiBuilder = uiBuilder; _gameData = gameData; diff --git a/Penumbra/Interop/PathResolving/AnimationHookService.cs b/Penumbra/Interop/PathResolving/AnimationHookService.cs index 130c0926..b1efb1b9 100644 --- a/Penumbra/Interop/PathResolving/AnimationHookService.cs +++ b/Penumbra/Interop/PathResolving/AnimationHookService.cs @@ -1,10 +1,9 @@ using System; using System.Threading; using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects; using Dalamud.Hooking; +using Dalamud.Plugin.Services; using Dalamud.Utility.Signatures; -using FFXIVClientStructs.FFXIV.Client.Game.Event; using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; using Penumbra.Collections; using Penumbra.GameData; @@ -20,7 +19,7 @@ namespace Penumbra.Interop.PathResolving; public unsafe class AnimationHookService : IDisposable { private readonly PerformanceTracker _performance; - private readonly ObjectTable _objects; + private readonly IObjectTable _objects; private readonly CollectionResolver _collectionResolver; private readonly DrawObjectState _drawObjectState; private readonly CollectionResolver _resolver; @@ -29,7 +28,7 @@ public unsafe class AnimationHookService : IDisposable private readonly ThreadLocal _animationLoadData = new(() => ResolveData.Invalid, true); private readonly ThreadLocal _characterSoundData = new(() => ResolveData.Invalid, true); - public AnimationHookService(PerformanceTracker performance, ObjectTable objects, CollectionResolver collectionResolver, + public AnimationHookService(PerformanceTracker performance, IObjectTable objects, CollectionResolver collectionResolver, DrawObjectState drawObjectState, CollectionResolver resolver, Condition conditions) { _performance = performance; diff --git a/Penumbra/Interop/PathResolving/CollectionResolver.cs b/Penumbra/Interop/PathResolving/CollectionResolver.cs index 67d9e96d..a795b46b 100644 --- a/Penumbra/Interop/PathResolving/CollectionResolver.cs +++ b/Penumbra/Interop/PathResolving/CollectionResolver.cs @@ -1,6 +1,5 @@ using System; -using Dalamud.Game.ClientState; -using Dalamud.Game.Gui; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; using Penumbra.Collections; using Penumbra.Collections.Manager; @@ -21,8 +20,8 @@ public unsafe class CollectionResolver private readonly IdentifiedCollectionCache _cache; private readonly HumanModelList _humanModels; - private readonly ClientState _clientState; - private readonly GameGui _gameGui; + private readonly IClientState _clientState; + private readonly IGameGui _gameGui; private readonly ActorService _actors; private readonly CutsceneService _cutscenes; @@ -31,7 +30,7 @@ public unsafe class CollectionResolver private readonly TempCollectionManager _tempCollections; private readonly DrawObjectState _drawObjectState; - public CollectionResolver(PerformanceTracker performance, IdentifiedCollectionCache cache, ClientState clientState, GameGui gameGui, + public CollectionResolver(PerformanceTracker performance, IdentifiedCollectionCache cache, IClientState clientState, IGameGui gameGui, ActorService actors, CutsceneService cutscenes, Configuration config, CollectionManager collectionManager, TempCollectionManager tempCollections, DrawObjectState drawObjectState, HumanModelList humanModels) { diff --git a/Penumbra/Interop/PathResolving/CutsceneService.cs b/Penumbra/Interop/PathResolving/CutsceneService.cs index 2c59a086..4273ae01 100644 --- a/Penumbra/Interop/PathResolving/CutsceneService.cs +++ b/Penumbra/Interop/PathResolving/CutsceneService.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using Dalamud.Game.ClientState.Objects; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Character; using Penumbra.GameData.Actors; using Penumbra.Interop.Services; @@ -16,7 +16,7 @@ public class CutsceneService : IDisposable public const int CutsceneSlots = CutsceneEndIdx - CutsceneStartIdx; private readonly GameEventManager _events; - private readonly ObjectTable _objects; + private readonly IObjectTable _objects; private readonly short[] _copiedCharacters = Enumerable.Repeat((short)-1, CutsceneSlots).ToArray(); public IEnumerable> Actors @@ -24,7 +24,7 @@ public class CutsceneService : IDisposable .Where(i => _objects[i] != null) .Select(i => KeyValuePair.Create(i, this[i] ?? _objects[i]!)); - public unsafe CutsceneService(ObjectTable objects, GameEventManager events) + public unsafe CutsceneService(IObjectTable objects, GameEventManager events) { _objects = objects; _events = events; diff --git a/Penumbra/Interop/PathResolving/DrawObjectState.cs b/Penumbra/Interop/PathResolving/DrawObjectState.cs index 88e600b8..12f867b4 100644 --- a/Penumbra/Interop/PathResolving/DrawObjectState.cs +++ b/Penumbra/Interop/PathResolving/DrawObjectState.cs @@ -4,7 +4,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Threading; -using Dalamud.Game.ClientState.Objects; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Object; using Penumbra.GameData; using Penumbra.Interop.Services; @@ -14,7 +14,7 @@ namespace Penumbra.Interop.PathResolving; public class DrawObjectState : IDisposable, IReadOnlyDictionary { - private readonly ObjectTable _objects; + private readonly IObjectTable _objects; private readonly GameEventManager _gameEvents; private readonly Dictionary _drawObjectToGameObject = new(); @@ -24,7 +24,7 @@ public class DrawObjectState : IDisposable, IReadOnlyDictionary _lastGameObject.IsValueCreated && _lastGameObject.Value!.Count > 0 ? _lastGameObject.Value.Peek() : nint.Zero; - public DrawObjectState(ObjectTable objects, GameEventManager gameEvents) + public DrawObjectState(IObjectTable objects, GameEventManager gameEvents) { SignatureHelper.Initialise(this); _enableDrawHook.Enable(); diff --git a/Penumbra/Interop/PathResolving/IdentifiedCollectionCache.cs b/Penumbra/Interop/PathResolving/IdentifiedCollectionCache.cs index 67ab584e..2bf165c1 100644 --- a/Penumbra/Interop/PathResolving/IdentifiedCollectionCache.cs +++ b/Penumbra/Interop/PathResolving/IdentifiedCollectionCache.cs @@ -1,7 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; -using Dalamud.Game.ClientState; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.Object; using Penumbra.Collections; @@ -17,11 +17,11 @@ public unsafe class IdentifiedCollectionCache : IDisposable, IEnumerable<(nint A { private readonly CommunicatorService _communicator; private readonly GameEventManager _events; - private readonly ClientState _clientState; + private readonly IClientState _clientState; private readonly Dictionary _cache = new(317); private bool _dirty; - public IdentifiedCollectionCache(ClientState clientState, CommunicatorService communicator, GameEventManager events) + public IdentifiedCollectionCache(IClientState clientState, CommunicatorService communicator, GameEventManager events) { _clientState = clientState; _communicator = communicator; diff --git a/Penumbra/Interop/ResourceTree/ResourceTreeFactory.cs b/Penumbra/Interop/ResourceTree/ResourceTreeFactory.cs index 965769a7..98c1b305 100644 --- a/Penumbra/Interop/ResourceTree/ResourceTreeFactory.cs +++ b/Penumbra/Interop/ResourceTree/ResourceTreeFactory.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using System.Linq; -using Dalamud.Data; -using Dalamud.Game.ClientState.Objects; +using Dalamud.Plugin.Services; using FFXIVClientStructs.FFXIV.Client.Game.Character; using FFXIVClientStructs.FFXIV.Client.Game.Object; using Penumbra.GameData.Actors; @@ -12,14 +11,14 @@ namespace Penumbra.Interop.ResourceTree; public class ResourceTreeFactory { - private readonly DataManager _gameData; - private readonly ObjectTable _objects; + private readonly IDataManager _gameData; + private readonly IObjectTable _objects; private readonly CollectionResolver _collectionResolver; private readonly IdentifierService _identifier; private readonly Configuration _config; private readonly ActorService _actors; - public ResourceTreeFactory(DataManager gameData, ObjectTable objects, CollectionResolver resolver, IdentifierService identifier, + public ResourceTreeFactory(IDataManager gameData, IObjectTable objects, CollectionResolver resolver, IdentifierService identifier, Configuration config, ActorService actors) { _gameData = gameData; diff --git a/Penumbra/Interop/ResourceTree/TreeBuildCache.cs b/Penumbra/Interop/ResourceTree/TreeBuildCache.cs index 4e432dd4..e9939496 100644 --- a/Penumbra/Interop/ResourceTree/TreeBuildCache.cs +++ b/Penumbra/Interop/ResourceTree/TreeBuildCache.cs @@ -2,9 +2,8 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Dalamud.Data; -using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Plugin.Services; using Penumbra.GameData.Files; using Penumbra.String.Classes; @@ -12,13 +11,13 @@ namespace Penumbra.Interop.ResourceTree; internal class TreeBuildCache { - private readonly DataManager _dataManager; + private readonly IDataManager _dataManager; private readonly Dictionary _materials = new(); private readonly Dictionary _shaderPackages = new(); public readonly List Characters; public readonly Dictionary CharactersById; - public TreeBuildCache(ObjectTable objects, DataManager dataManager) + public TreeBuildCache(IObjectTable objects, IDataManager dataManager) { _dataManager = dataManager; Characters = objects.Where(c => c is Character ch && ch.IsValid()).Cast().ToList(); @@ -36,7 +35,7 @@ internal class TreeBuildCache public ShpkFile? ReadShaderPackage(FullPath path) => ReadFile(_dataManager, path, _shaderPackages, bytes => new ShpkFile(bytes)); - private static T? ReadFile(DataManager dataManager, FullPath path, Dictionary cache, Func parseFile) + private static T? ReadFile(IDataManager dataManager, FullPath path, Dictionary cache, Func parseFile) where T : class { if (path.FullName.Length == 0) diff --git a/Penumbra/Interop/Services/RedrawService.cs b/Penumbra/Interop/Services/RedrawService.cs index 825eda5c..38b7de1c 100644 --- a/Penumbra/Interop/Services/RedrawService.cs +++ b/Penumbra/Interop/Services/RedrawService.cs @@ -7,12 +7,12 @@ using Dalamud.Game.ClientState.Objects; using Dalamud.Game.ClientState.Objects.Enums; using Dalamud.Game.ClientState.Objects.SubKinds; using Dalamud.Game.ClientState.Objects.Types; +using Dalamud.Plugin.Services; using Penumbra.Api; using Penumbra.Api.Enums; using Penumbra.GameData; using Penumbra.GameData.Actors; using Penumbra.Interop.Structs; -using Penumbra.Services; namespace Penumbra.Interop.Services; @@ -104,8 +104,8 @@ public unsafe partial class RedrawService public sealed unsafe partial class RedrawService : IDisposable { private readonly Framework _framework; - private readonly ObjectTable _objects; - private readonly TargetManager _targets; + private readonly IObjectTable _objects; + private readonly ITargetManager _targets; private readonly Condition _conditions; private readonly List _queue = new(100); @@ -114,7 +114,7 @@ public sealed unsafe partial class RedrawService : IDisposable public event GameObjectRedrawnDelegate? GameObjectRedrawn; - public RedrawService(Framework framework, ObjectTable objects, TargetManager targets, Condition conditions) + public RedrawService(Framework framework, IObjectTable objects, ITargetManager targets, Condition conditions) { _framework = framework; _objects = objects; diff --git a/Penumbra/Meta/MetaFileManager.cs b/Penumbra/Meta/MetaFileManager.cs index 1cb3319e..7287204c 100644 --- a/Penumbra/Meta/MetaFileManager.cs +++ b/Penumbra/Meta/MetaFileManager.cs @@ -1,7 +1,7 @@ using System; using System.Linq; using System.Runtime.CompilerServices; -using Dalamud.Data; +using Dalamud.Plugin.Services; using Dalamud.Utility.Signatures; using FFXIVClientStructs.FFXIV.Client.System.Memory; using Penumbra.Collections; @@ -22,12 +22,12 @@ public unsafe class MetaFileManager internal readonly Configuration Config; internal readonly CharacterUtility CharacterUtility; internal readonly ResidentResourceManager ResidentResources; - internal readonly DataManager GameData; + internal readonly IDataManager GameData; internal readonly ActiveCollectionData ActiveCollections; internal readonly ValidityChecker ValidityChecker; internal readonly IdentifierService Identifier; - public MetaFileManager(CharacterUtility characterUtility, ResidentResourceManager residentResources, DataManager gameData, + public MetaFileManager(CharacterUtility characterUtility, ResidentResourceManager residentResources, IDataManager gameData, ActiveCollectionData activeCollections, Configuration config, ValidityChecker validityChecker, IdentifierService identifier) { CharacterUtility = characterUtility; diff --git a/Penumbra/Services/ChatService.cs b/Penumbra/Services/ChatService.cs index f4d4ead0..9ea52cac 100644 --- a/Penumbra/Services/ChatService.cs +++ b/Penumbra/Services/ChatService.cs @@ -3,7 +3,6 @@ using Dalamud.Game.Gui; using Dalamud.Game.Text; using Dalamud.Game.Text.SeStringHandling; using Dalamud.Game.Text.SeStringHandling.Payloads; -using Dalamud.Interface; using Dalamud.Plugin; using Lumina.Excel.GeneratedSheets; using OtterGui.Log; @@ -14,7 +13,7 @@ public class ChatService : OtterGui.Classes.ChatService { private readonly ChatGui _chat; - public ChatService(Logger log, DalamudPluginInterface pi, ChatGui chat, UiBuilder uiBuilder) + public ChatService(Logger log, DalamudPluginInterface pi, ChatGui chat) : base(log, pi) => _chat = chat; diff --git a/Penumbra/Services/DalamudServices.cs b/Penumbra/Services/DalamudServices.cs index 491e2161..03978566 100644 --- a/Penumbra/Services/DalamudServices.cs +++ b/Penumbra/Services/DalamudServices.cs @@ -1,11 +1,8 @@ using System; -using Dalamud.Data; using Dalamud.Game; -using Dalamud.Game.ClientState; using Dalamud.Game.ClientState.Conditions; using Dalamud.Game.ClientState.Keys; using Dalamud.Game.ClientState.Objects; -using Dalamud.Game.Command; using Dalamud.Game.Gui; using Dalamud.Interface; using Dalamud.IoC; @@ -86,18 +83,18 @@ public class DalamudServices // TODO remove static // @formatter:off [PluginService][RequiredVersion("1.0")] public DalamudPluginInterface PluginInterface { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public CommandManager Commands { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public DataManager GameData { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public ClientState ClientState { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public ICommandManager Commands { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public IDataManager GameData { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public IClientState ClientState { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public ChatGui Chat { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public Framework Framework { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public Condition Conditions { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public TargetManager Targets { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public ObjectTable Objects { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public ITargetManager Targets { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public IObjectTable Objects { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public TitleScreenMenu TitleScreenMenu { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public GameGui GameGui { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public IGameGui GameGui { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public KeyState KeyState { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public SigScanner SigScanner { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public ISigScanner SigScanner { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public IDragDropManager DragDropManager { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public ITextureProvider TextureProvider { get; private set; } = null!; [PluginService][RequiredVersion("1.0")] public ITextureSubstitutionProvider TextureSubstitutionProvider { get; private set; } = null!; diff --git a/Penumbra/Services/StainService.cs b/Penumbra/Services/StainService.cs index d795062c..56893d70 100644 --- a/Penumbra/Services/StainService.cs +++ b/Penumbra/Services/StainService.cs @@ -1,8 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; -using Dalamud.Data; using Dalamud.Plugin; +using Dalamud.Plugin.Services; using OtterGui.Widgets; using Penumbra.GameData.Data; using Penumbra.GameData.Files; @@ -24,7 +24,7 @@ public class StainService : IDisposable public readonly StmFile StmFile; public readonly StainTemplateCombo TemplateCombo; - public StainService(StartTracker timer, DalamudPluginInterface pluginInterface, DataManager dataManager) + public StainService(StartTracker timer, DalamudPluginInterface pluginInterface, IDataManager dataManager) { using var t = timer.Measure(StartTimeType.Stains); StainData = new StainData(pluginInterface, dataManager, dataManager.Language); diff --git a/Penumbra/Services/Wrappers.cs b/Penumbra/Services/Wrappers.cs index c0ffec79..d9bef172 100644 --- a/Penumbra/Services/Wrappers.cs +++ b/Penumbra/Services/Wrappers.cs @@ -1,9 +1,6 @@ -using Dalamud.Data; using Dalamud.Game; -using Dalamud.Game.ClientState; -using Dalamud.Game.ClientState.Objects; -using Dalamud.Game.Gui; using Dalamud.Plugin; +using Dalamud.Plugin.Services; using Penumbra.GameData; using Penumbra.GameData.Actors; using Penumbra.GameData.Data; @@ -14,22 +11,22 @@ namespace Penumbra.Services; public sealed class IdentifierService : AsyncServiceWrapper { - public IdentifierService(StartTracker tracker, DalamudPluginInterface pi, DataManager data, ItemService items) + public IdentifierService(StartTracker tracker, DalamudPluginInterface pi, IDataManager data, ItemService items) : base(nameof(IdentifierService), tracker, StartTimeType.Identifier, () => GameData.GameData.GetIdentifier(pi, data, items.AwaitedService)) { } } public sealed class ItemService : AsyncServiceWrapper { - public ItemService(StartTracker tracker, DalamudPluginInterface pi, DataManager gameData) + public ItemService(StartTracker tracker, DalamudPluginInterface pi, IDataManager gameData) : base(nameof(ItemService), tracker, StartTimeType.Items, () => new ItemData(pi, gameData, gameData.Language)) { } } public sealed class ActorService : AsyncServiceWrapper { - public ActorService(StartTracker tracker, DalamudPluginInterface pi, ObjectTable objects, ClientState clientState, - Framework framework, DataManager gameData, GameGui gui, CutsceneService cutscene) + public ActorService(StartTracker tracker, DalamudPluginInterface pi, IObjectTable objects, IClientState clientState, + Framework framework, IDataManager gameData, IGameGui gui, CutsceneService cutscene) : base(nameof(ActorService), tracker, StartTimeType.Actors, () => new ActorManager(pi, objects, clientState, framework, gameData, gui, idx => (short)cutscene.GetParentIndex(idx))) { } diff --git a/Penumbra/UI/AdvancedWindow/FileEditor.cs b/Penumbra/UI/AdvancedWindow/FileEditor.cs index 0f163994..acead332 100644 --- a/Penumbra/UI/AdvancedWindow/FileEditor.cs +++ b/Penumbra/UI/AdvancedWindow/FileEditor.cs @@ -3,9 +3,9 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Numerics; -using Dalamud.Data; using Dalamud.Interface; using Dalamud.Interface.Internal.Notifications; +using Dalamud.Plugin.Services; using ImGuiNET; using OtterGui; using OtterGui.Classes; @@ -21,10 +21,10 @@ namespace Penumbra.UI.AdvancedWindow; public class FileEditor where T : class, IWritable { private readonly FileDialogService _fileDialog; - private readonly DataManager _gameData; + private readonly IDataManager _gameData; private readonly ModEditWindow _owner; - public FileEditor(ModEditWindow owner, DataManager gameData, Configuration config, FileDialogService fileDialog, string tabName, + public FileEditor(ModEditWindow owner, IDataManager gameData, Configuration config, FileDialogService fileDialog, string tabName, string fileType, Func> getFiles, Func drawEdit, Func getInitialPath, Func parseFile) { diff --git a/Penumbra/UI/AdvancedWindow/ModEditWindow.cs b/Penumbra/UI/AdvancedWindow/ModEditWindow.cs index 93d28b85..a36dcf14 100644 --- a/Penumbra/UI/AdvancedWindow/ModEditWindow.cs +++ b/Penumbra/UI/AdvancedWindow/ModEditWindow.cs @@ -3,10 +3,10 @@ using System.IO; using System.Linq; using System.Numerics; using System.Text; -using Dalamud.Data; using Dalamud.Interface; using Dalamud.Interface.Components; using Dalamud.Interface.Windowing; +using Dalamud.Plugin.Services; using ImGuiNET; using OtterGui; using OtterGui.Raii; @@ -518,7 +518,7 @@ public partial class ModEditWindow : Window, IDisposable return new FullPath(path); } - public ModEditWindow(PerformanceTracker performance, FileDialogService fileDialog, ItemSwapTab itemSwapTab, DataManager gameData, + public ModEditWindow(PerformanceTracker performance, FileDialogService fileDialog, ItemSwapTab itemSwapTab, IDataManager gameData, Configuration config, ModEditor editor, ResourceTreeFactory resourceTreeFactory, MetaFileManager metaFileManager, StainService stainService, ActiveCollections activeCollections, UiBuilder uiBuilder, DalamudServices dalamud, ModMergeTab modMergeTab, CommunicatorService communicator, TextureManager textures) diff --git a/Penumbra/UI/ChangedItemDrawer.cs b/Penumbra/UI/ChangedItemDrawer.cs index b2f13e51..7a81ec60 100644 --- a/Penumbra/UI/ChangedItemDrawer.cs +++ b/Penumbra/UI/ChangedItemDrawer.cs @@ -2,8 +2,8 @@ using System; using System.Collections.Generic; using System.Linq; using System.Numerics; -using Dalamud.Data; using Dalamud.Interface; +using Dalamud.Plugin.Services; using Dalamud.Utility; using FFXIVClientStructs.FFXIV.Client.Graphics.Scene; using ImGuiNET; @@ -54,10 +54,10 @@ public class ChangedItemDrawer : IDisposable private readonly Dictionary _icons = new(16); private float _smallestIconWidth; - public ChangedItemDrawer(UiBuilder uiBuilder, DataManager gameData, CommunicatorService communicator, Configuration config) + public ChangedItemDrawer(UiBuilder uiBuilder, IDataManager gameData, ITextureProvider textureProvider, CommunicatorService communicator, Configuration config) { _items = gameData.GetExcelSheet()!; - uiBuilder.RunWhenUiPrepared(() => CreateEquipSlotIcons(uiBuilder, gameData), true); + uiBuilder.RunWhenUiPrepared(() => CreateEquipSlotIcons(uiBuilder, gameData, textureProvider), true); _communicator = communicator; _config = config; } @@ -321,7 +321,7 @@ public class ChangedItemDrawer : IDisposable }; /// Initialize the icons. - private bool CreateEquipSlotIcons(UiBuilder uiBuilder, DataManager gameData) + private bool CreateEquipSlotIcons(UiBuilder uiBuilder, IDataManager gameData, ITextureProvider textureProvider) { using var equipTypeIcons = uiBuilder.LoadUld("ui/uld/ArmouryBoard.uld"); @@ -345,11 +345,11 @@ public class ChangedItemDrawer : IDisposable Add(ChangedItemIcon.Neck, equipTypeIcons.LoadTexturePart("ui/uld/ArmouryBoard_hr1.tex", 9)); Add(ChangedItemIcon.Wrists, equipTypeIcons.LoadTexturePart("ui/uld/ArmouryBoard_hr1.tex", 10)); Add(ChangedItemIcon.Finger, equipTypeIcons.LoadTexturePart("ui/uld/ArmouryBoard_hr1.tex", 11)); - Add(ChangedItemIcon.Monster, gameData.GetImGuiTexture("ui/icon/062000/062042_hr1.tex")); - Add(ChangedItemIcon.Demihuman, gameData.GetImGuiTexture("ui/icon/062000/062041_hr1.tex")); - Add(ChangedItemIcon.Customization, gameData.GetImGuiTexture("ui/icon/062000/062043_hr1.tex")); - Add(ChangedItemIcon.Action, gameData.GetImGuiTexture("ui/icon/062000/062001_hr1.tex")); - Add(AllFlags, gameData.GetImGuiTexture("ui/icon/114000/114052_hr1.tex")); + Add(ChangedItemIcon.Monster, textureProvider.GetTextureFromGame("ui/icon/062000/062042_hr1.tex", true)); + Add(ChangedItemIcon.Demihuman, textureProvider.GetTextureFromGame("ui/icon/062000/062041_hr1.tex", true)); + Add(ChangedItemIcon.Customization, textureProvider.GetTextureFromGame("ui/icon/062000/062043_hr1.tex", true)); + Add(ChangedItemIcon.Action, textureProvider.GetTextureFromGame("ui/icon/062000/062001_hr1.tex", true)); + Add(AllFlags, textureProvider.GetTextureFromGame("ui/icon/114000/114052_hr1.tex", true)); var unk = gameData.GetFile("ui/uld/levelup2_hr1.tex"); if (unk == null) diff --git a/Penumbra/UI/CollectionTab/CollectionPanel.cs b/Penumbra/UI/CollectionTab/CollectionPanel.cs index 1774cf1d..b5e60380 100644 --- a/Penumbra/UI/CollectionTab/CollectionPanel.cs +++ b/Penumbra/UI/CollectionTab/CollectionPanel.cs @@ -26,7 +26,7 @@ public sealed class CollectionPanel : IDisposable private readonly ActiveCollections _active; private readonly CollectionSelector _selector; private readonly ActorService _actors; - private readonly TargetManager _targets; + private readonly ITargetManager _targets; private readonly IndividualAssignmentUi _individualAssignmentUi; private readonly InheritanceUi _inheritanceUi; private readonly ModStorage _mods; @@ -40,7 +40,7 @@ public sealed class CollectionPanel : IDisposable private int _draggedIndividualAssignment = -1; public CollectionPanel(DalamudPluginInterface pi, CommunicatorService communicator, CollectionManager manager, - CollectionSelector selector, ActorService actors, TargetManager targets, ModStorage mods) + CollectionSelector selector, ActorService actors, ITargetManager targets, ModStorage mods) { _collections = manager.Storage; _active = manager.Active; diff --git a/Penumbra/UI/Tabs/CollectionsTab.cs b/Penumbra/UI/Tabs/CollectionsTab.cs index d6941ba0..d0f227c8 100644 --- a/Penumbra/UI/Tabs/CollectionsTab.cs +++ b/Penumbra/UI/Tabs/CollectionsTab.cs @@ -41,7 +41,7 @@ public class CollectionsTab : IDisposable, ITab } public CollectionsTab(DalamudPluginInterface pi, Configuration configuration, CommunicatorService communicator, - CollectionManager collectionManager, ModStorage modStorage, ActorService actors, TargetManager targets, TutorialService tutorial) + CollectionManager collectionManager, ModStorage modStorage, ActorService actors, ITargetManager targets, TutorialService tutorial) { _config = configuration; _tutorial = tutorial; diff --git a/Penumbra/UI/Tabs/ModsTab.cs b/Penumbra/UI/Tabs/ModsTab.cs index 36bf9c7d..10e4be1d 100644 --- a/Penumbra/UI/Tabs/ModsTab.cs +++ b/Penumbra/UI/Tabs/ModsTab.cs @@ -5,8 +5,8 @@ using Penumbra.UI.Classes; using System; using System.Linq; using System.Numerics; -using Dalamud.Game.ClientState; using Dalamud.Interface; +using Dalamud.Plugin.Services; using OtterGui.Widgets; using Penumbra.Api.Enums; using Penumbra.Interop.Services; @@ -27,11 +27,11 @@ public class ModsTab : ITab private readonly ActiveCollections _activeCollections; private readonly RedrawService _redrawService; private readonly Configuration _config; - private readonly ClientState _clientState; + private readonly IClientState _clientState; private readonly CollectionSelectHeader _collectionHeader; public ModsTab(ModManager modManager, CollectionManager collectionManager, ModFileSystemSelector selector, ModPanel panel, - TutorialService tutorial, RedrawService redrawService, Configuration config, ClientState clientState, + TutorialService tutorial, RedrawService redrawService, Configuration config, IClientState clientState, CollectionSelectHeader collectionHeader) { _modManager = modManager; diff --git a/Penumbra/UI/Tabs/ResourceTab.cs b/Penumbra/UI/Tabs/ResourceTab.cs index 95ff0d2a..db1236bb 100644 --- a/Penumbra/UI/Tabs/ResourceTab.cs +++ b/Penumbra/UI/Tabs/ResourceTab.cs @@ -2,7 +2,6 @@ using System; using System.Linq; using System.Numerics; using Dalamud.Game; -using Dalamud.Interface; using FFXIVClientStructs.FFXIV.Client.System.Resource; using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle; using FFXIVClientStructs.Interop; @@ -20,9 +19,9 @@ public class ResourceTab : ITab { private readonly Configuration _config; private readonly ResourceManagerService _resourceManager; - private readonly SigScanner _sigScanner; + private readonly ISigScanner _sigScanner; - public ResourceTab(Configuration config, ResourceManagerService resourceManager, SigScanner sigScanner) + public ResourceTab(Configuration config, ResourceManagerService resourceManager, ISigScanner sigScanner) { _config = config; _resourceManager = resourceManager;