mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 10:17:22 +01:00
Switch mostly to Luna Services.
This commit is contained in:
parent
97c8d82b33
commit
3e4e3022d8
200 changed files with 348 additions and 481 deletions
4
.gitmodules
vendored
4
.gitmodules
vendored
|
|
@ -14,3 +14,7 @@
|
||||||
path = Penumbra.GameData
|
path = Penumbra.GameData
|
||||||
url = https://github.com/Ottermandias/Penumbra.GameData.git
|
url = https://github.com/Ottermandias/Penumbra.GameData.git
|
||||||
branch = main
|
branch = main
|
||||||
|
[submodule "Luna"]
|
||||||
|
path = Luna
|
||||||
|
url = git@github.com:Ottermandias/Luna.git
|
||||||
|
branch = main
|
||||||
|
|
|
||||||
1
Luna
Submodule
1
Luna
Submodule
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit ecbf3e0e8543a81111c71b98ed108b3c87810837
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit 27893a85adb57a301dd93fd2c7d318bfd4c12a0f
|
Subproject commit e50fa7044e35742e57cc694e7fb36a2fc225a661
|
||||||
12
Penumbra.sln
12
Penumbra.sln
|
|
@ -55,6 +55,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "structs", "structs", "{B03F
|
||||||
schemas\structs\option.json = schemas\structs\option.json
|
schemas\structs\option.json = schemas\structs\option.json
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Luna", "Luna\Luna\Luna.csproj", "{DEA936D7-1386-55A1-7451-E0C240F56E9D}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Luna.Generators", "Luna\Luna.Generators\Luna.Generators.csproj", "{744CE38E-DCA8-C17D-7B02-741F36243CF6}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|x64 = Debug|x64
|
Debug|x64 = Debug|x64
|
||||||
|
|
@ -85,6 +89,14 @@ Global
|
||||||
{EE834491-A98F-4395-BE0D-6861AE5AD953}.Debug|x64.Build.0 = Debug|x64
|
{EE834491-A98F-4395-BE0D-6861AE5AD953}.Debug|x64.Build.0 = Debug|x64
|
||||||
{EE834491-A98F-4395-BE0D-6861AE5AD953}.Release|x64.ActiveCfg = Release|x64
|
{EE834491-A98F-4395-BE0D-6861AE5AD953}.Release|x64.ActiveCfg = Release|x64
|
||||||
{EE834491-A98F-4395-BE0D-6861AE5AD953}.Release|x64.Build.0 = Release|x64
|
{EE834491-A98F-4395-BE0D-6861AE5AD953}.Release|x64.Build.0 = Release|x64
|
||||||
|
{DEA936D7-1386-55A1-7451-E0C240F56E9D}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{DEA936D7-1386-55A1-7451-E0C240F56E9D}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{DEA936D7-1386-55A1-7451-E0C240F56E9D}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{DEA936D7-1386-55A1-7451-E0C240F56E9D}.Release|x64.Build.0 = Release|x64
|
||||||
|
{744CE38E-DCA8-C17D-7B02-741F36243CF6}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{744CE38E-DCA8-C17D-7B02-741F36243CF6}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{744CE38E-DCA8-C17D-7B02-741F36243CF6}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{744CE38E-DCA8-C17D-7B02-741F36243CF6}.Release|x64.Build.0 = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Log;
|
using OtterGui.Log;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
|
|
@ -13,7 +12,7 @@ public class ApiHelpers(
|
||||||
CollectionManager collectionManager,
|
CollectionManager collectionManager,
|
||||||
ObjectManager objects,
|
ObjectManager objects,
|
||||||
CollectionResolver collectionResolver,
|
CollectionResolver collectionResolver,
|
||||||
ActorManager actors) : IApiService
|
ActorManager actors) : Luna.IApiService
|
||||||
{
|
{
|
||||||
/// <summary> Return the associated identifier for an object given by its index. </summary>
|
/// <summary> Return the associated identifier for an object given by its index. </summary>
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
|
|
@ -6,7 +5,7 @@ using Penumbra.Mods;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class CollectionApi(CollectionManager collections, ApiHelpers helpers) : IPenumbraApiCollection, IApiService
|
public class CollectionApi(CollectionManager collections, ApiHelpers helpers) : IPenumbraApiCollection, Luna.IApiService
|
||||||
{
|
{
|
||||||
public Dictionary<Guid, string> GetCollections()
|
public Dictionary<Guid, string> GetCollections()
|
||||||
=> collections.Storage.ToDictionary(c => c.Identity.Id, c => c.Identity.Name);
|
=> collections.Storage.ToDictionary(c => c.Identity.Id, c => c.Identity.Name);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Import.Textures;
|
using Penumbra.Import.Textures;
|
||||||
using TextureType = Penumbra.Api.Enums.TextureType;
|
using TextureType = Penumbra.Api.Enums.TextureType;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class EditingApi(TextureManager textureManager) : IPenumbraApiEditing, IApiService
|
public class EditingApi(TextureManager textureManager) : IPenumbraApiEditing, Luna.IApiService
|
||||||
{
|
{
|
||||||
public Task ConvertTextureFile(string inputFile, string outputFile, TextureType textureType, bool mipMaps)
|
public Task ConvertTextureFile(string inputFile, string outputFile, TextureType textureType, bool mipMaps)
|
||||||
=> textureType switch
|
=> textureType switch
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Interop.Hooks.ResourceLoading;
|
using Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
@ -10,7 +9,7 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class GameStateApi : IPenumbraApiGameState, IApiService, IDisposable
|
public class GameStateApi : IPenumbraApiGameState, Luna.IApiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
private readonly CollectionResolver _collectionResolver;
|
private readonly CollectionResolver _collectionResolver;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using Dalamud.Plugin.Services;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Cache;
|
using Penumbra.Collections.Cache;
|
||||||
using Penumbra.GameData.Files.AtchStructs;
|
using Penumbra.GameData.Files.AtchStructs;
|
||||||
|
|
@ -14,7 +13,7 @@ using Penumbra.Meta.Manipulations;
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class MetaApi(IFramework framework, CollectionResolver collectionResolver, ApiHelpers helpers)
|
public class MetaApi(IFramework framework, CollectionResolver collectionResolver, ApiHelpers helpers)
|
||||||
: IPenumbraApiMeta, IApiService
|
: IPenumbraApiMeta, Luna.IApiService
|
||||||
{
|
{
|
||||||
public string GetPlayerMetaManipulations()
|
public string GetPlayerMetaManipulations()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
|
|
@ -17,7 +16,7 @@ using Penumbra.Services;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class ModSettingsApi : IPenumbraApiModSettings, IApiService, IDisposable
|
public class ModSettingsApi : IPenumbraApiModSettings, Luna.IApiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly CollectionResolver _collectionResolver;
|
private readonly CollectionResolver _collectionResolver;
|
||||||
private readonly ModManager _modManager;
|
private readonly ModManager _modManager;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using OtterGui.Compression;
|
using OtterGui.Compression;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.Mods;
|
using Penumbra.Mods;
|
||||||
|
|
@ -9,7 +8,7 @@ using Penumbra.Services;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class ModsApi : IPenumbraApiMods, IApiService, IDisposable
|
public class ModsApi : IPenumbraApiMods, Luna.IApiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
private readonly ModManager _modManager;
|
private readonly ModManager _modManager;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class PenumbraApi(
|
public class PenumbraApi(
|
||||||
|
|
@ -14,7 +12,7 @@ public class PenumbraApi(
|
||||||
ResolveApi resolve,
|
ResolveApi resolve,
|
||||||
ResourceTreeApi resourceTree,
|
ResourceTreeApi resourceTree,
|
||||||
TemporaryApi temporary,
|
TemporaryApi temporary,
|
||||||
UiApi ui) : IDisposable, IApiService, IPenumbraApi
|
UiApi ui) : IDisposable, Luna.IApiService, IPenumbraApi
|
||||||
{
|
{
|
||||||
public const int BreakingVersion = 5;
|
public const int BreakingVersion = 5;
|
||||||
public const int FeatureVersion = 12;
|
public const int FeatureVersion = 12;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
using System.Collections.Frozen;
|
using System.Collections.Frozen;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.Mods;
|
using Penumbra.Mods;
|
||||||
using Penumbra.Services;
|
using Penumbra.Services;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class PluginStateApi(Configuration config, CommunicatorService communicator) : IPenumbraApiPluginState, IApiService
|
public class PluginStateApi(Configuration config, CommunicatorService communicator) : IPenumbraApiPluginState, Luna.IApiService
|
||||||
{
|
{
|
||||||
public string GetModDirectory()
|
public string GetModDirectory()
|
||||||
=> config.ModDirectory;
|
=> config.ModDirectory;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Interop.Services;
|
using Penumbra.Interop.Services;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class RedrawApi(RedrawService redrawService, IFramework framework) : IPenumbraApiRedraw, IApiService
|
public class RedrawApi(RedrawService redrawService, IFramework framework) : IPenumbraApiRedraw, Luna.IApiService
|
||||||
{
|
{
|
||||||
public void RedrawObject(int gameObjectIndex, RedrawType setting)
|
public void RedrawObject(int gameObjectIndex, RedrawType setting)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.Interop.PathResolving;
|
using Penumbra.Interop.PathResolving;
|
||||||
|
|
@ -14,7 +13,7 @@ public class ResolveApi(
|
||||||
Configuration config,
|
Configuration config,
|
||||||
CollectionResolver collectionResolver,
|
CollectionResolver collectionResolver,
|
||||||
ApiHelpers helpers,
|
ApiHelpers helpers,
|
||||||
IFramework framework) : IPenumbraApiResolve, IApiService
|
IFramework framework) : IPenumbraApiResolve, Luna.IApiService
|
||||||
{
|
{
|
||||||
public string ResolveDefaultPath(string gamePath)
|
public string ResolveDefaultPath(string gamePath)
|
||||||
=> ResolvePath(gamePath, modManager, collectionManager.Active.Default);
|
=> ResolvePath(gamePath, modManager, collectionManager.Active.Default);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
|
|
@ -8,7 +7,7 @@ using Penumbra.Interop.ResourceTree;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class ResourceTreeApi(ResourceTreeFactory resourceTreeFactory, ObjectManager objects) : IPenumbraApiResourceTree, IApiService
|
public class ResourceTreeApi(ResourceTreeFactory resourceTreeFactory, ObjectManager objects) : IPenumbraApiResourceTree, Luna.IApiService
|
||||||
{
|
{
|
||||||
public Dictionary<string, HashSet<string>>?[] GetGameObjectResourcePaths(params ushort[] gameObjects)
|
public Dictionary<string, HashSet<string>>?[] GetGameObjectResourcePaths(params ushort[] gameObjects)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Log;
|
using OtterGui.Log;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
|
|
@ -18,7 +17,7 @@ public class TemporaryApi(
|
||||||
CollectionManager collectionManager,
|
CollectionManager collectionManager,
|
||||||
TempModManager tempMods,
|
TempModManager tempMods,
|
||||||
ApiHelpers apiHelpers,
|
ApiHelpers apiHelpers,
|
||||||
ModManager modManager) : IPenumbraApiTemporary, IApiService
|
ModManager modManager) : IPenumbraApiTemporary, Luna.IApiService
|
||||||
{
|
{
|
||||||
public (PenumbraApiEc, Guid) CreateTemporaryCollection(string identity, string name)
|
public (PenumbraApiEc, Guid) CreateTemporaryCollection(string identity, string name)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.GameData.Data;
|
using Penumbra.GameData.Data;
|
||||||
|
|
@ -8,7 +7,7 @@ using Penumbra.UI;
|
||||||
|
|
||||||
namespace Penumbra.Api.Api;
|
namespace Penumbra.Api.Api;
|
||||||
|
|
||||||
public class UiApi : IPenumbraApiUi, IApiService, IDisposable
|
public class UiApi : IPenumbraApiUi, Luna.IApiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
private readonly ConfigWindow _configWindow;
|
private readonly ConfigWindow _configWindow;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Dalamud.Interface;
|
using Dalamud.Interface;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
|
|
@ -10,7 +9,7 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Api;
|
namespace Penumbra.Api;
|
||||||
|
|
||||||
public class DalamudSubstitutionProvider : IDisposable, IApiService
|
public class DalamudSubstitutionProvider : IDisposable, Luna.IApiService
|
||||||
{
|
{
|
||||||
private readonly ITextureSubstitutionProvider _substitution;
|
private readonly ITextureSubstitutionProvider _substitution;
|
||||||
private readonly IUiBuilder _uiBuilder;
|
private readonly IUiBuilder _uiBuilder;
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,12 @@ using Dalamud.Plugin.Services;
|
||||||
using EmbedIO;
|
using EmbedIO;
|
||||||
using EmbedIO.Routing;
|
using EmbedIO.Routing;
|
||||||
using EmbedIO.WebApi;
|
using EmbedIO.WebApi;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
|
|
||||||
namespace Penumbra.Api;
|
namespace Penumbra.Api;
|
||||||
|
|
||||||
public class HttpApi : IDisposable, IApiService
|
public class HttpApi : IDisposable, Luna.IApiService
|
||||||
{
|
{
|
||||||
private partial class Controller : WebApiController
|
private partial class Controller : WebApiController
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui.Log;
|
using OtterGui.Log;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
using Serilog.Events;
|
using Serilog.Events;
|
||||||
|
|
||||||
namespace Penumbra.Api;
|
namespace Penumbra.Api;
|
||||||
|
|
||||||
public sealed class IpcLaunchingProvider : IApiService
|
public sealed class IpcLaunchingProvider : Luna.IApiService
|
||||||
{
|
{
|
||||||
public IpcLaunchingProvider(IDalamudPluginInterface pi, Logger log)
|
public IpcLaunchingProvider(IDalamudPluginInterface pi, Logger log)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
|
|
@ -7,7 +6,7 @@ using CharacterUtility = Penumbra.Interop.Services.CharacterUtility;
|
||||||
|
|
||||||
namespace Penumbra.Api;
|
namespace Penumbra.Api;
|
||||||
|
|
||||||
public sealed class IpcProviders : IDisposable, IApiService
|
public sealed class IpcProviders : IDisposable, Luna.IApiService
|
||||||
{
|
{
|
||||||
private readonly List<IDisposable> _providers;
|
private readonly List<IDisposable> _providers;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
|
|
@ -13,7 +12,7 @@ using ImGuiClip = OtterGui.ImGuiClip;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class CollectionsIpcTester(IDalamudPluginInterface pi) : IUiService
|
public class CollectionsIpcTester(IDalamudPluginInterface pi) : Luna.IUiService
|
||||||
{
|
{
|
||||||
private int _objectIdx;
|
private int _objectIdx;
|
||||||
private string _collectionIdString = string.Empty;
|
private string _collectionIdString = string.Empty;
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,12 @@ using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class EditingIpcTester(IDalamudPluginInterface pi) : IUiService
|
public class EditingIpcTester(IDalamudPluginInterface pi) : Luna.IUiService
|
||||||
{
|
{
|
||||||
private string _inputPath = string.Empty;
|
private string _inputPath = string.Empty;
|
||||||
private string _inputPath2 = string.Empty;
|
private string _inputPath2 = string.Empty;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface;
|
using Dalamud.Interface;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
@ -10,7 +9,7 @@ using Penumbra.String;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class GameStateIpcTester : IUiService, IDisposable
|
public class GameStateIpcTester : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly IDalamudPluginInterface _pi;
|
private readonly IDalamudPluginInterface _pi;
|
||||||
public readonly EventSubscriber<nint, Guid, nint, nint, nint> CharacterBaseCreating;
|
public readonly EventSubscriber<nint, Guid, nint, nint, nint> CharacterBaseCreating;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
@ -21,7 +19,7 @@ public class IpcTester(
|
||||||
EditingIpcTester editingIpcTester,
|
EditingIpcTester editingIpcTester,
|
||||||
TemporaryIpcTester temporaryIpcTester,
|
TemporaryIpcTester temporaryIpcTester,
|
||||||
ResourceTreeIpcTester resourceTreeIpcTester,
|
ResourceTreeIpcTester resourceTreeIpcTester,
|
||||||
IFramework framework) : IUiService
|
IFramework framework) : Luna.IUiService
|
||||||
{
|
{
|
||||||
private readonly IpcProviders _ipcProviders = ipcProviders;
|
private readonly IpcProviders _ipcProviders = ipcProviders;
|
||||||
private DateTime _lastUpdate;
|
private DateTime _lastUpdate;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Text;
|
using OtterGui.Text;
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
@ -9,7 +8,7 @@ using Penumbra.Meta.Manipulations;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class MetaIpcTester(IDalamudPluginInterface pi) : IUiService
|
public class MetaIpcTester(IDalamudPluginInterface pi) : Luna.IUiService
|
||||||
{
|
{
|
||||||
private int _gameObjectIndex;
|
private int _gameObjectIndex;
|
||||||
private string _metaBase64 = string.Empty;
|
private string _metaBase64 = string.Empty;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Text;
|
using OtterGui.Text;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
|
|
@ -11,7 +10,7 @@ using Penumbra.UI;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class ModSettingsIpcTester : IUiService, IDisposable
|
public class ModSettingsIpcTester : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly IDalamudPluginInterface _pi;
|
private readonly IDalamudPluginInterface _pi;
|
||||||
public readonly EventSubscriber<ModSettingChange, Guid, string, bool> SettingChanged;
|
public readonly EventSubscriber<ModSettingChange, Guid, string, bool> SettingChanged;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using Dalamud.Bindings.ImGui;
|
||||||
using Dalamud.Interface.Utility;
|
using Dalamud.Interface.Utility;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Text;
|
using OtterGui.Text;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
|
|
@ -10,7 +9,7 @@ using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class ModsIpcTester : IUiService, IDisposable
|
public class ModsIpcTester : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly IDalamudPluginInterface _pi;
|
private readonly IDalamudPluginInterface _pi;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,13 @@ using Dalamud.Plugin;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Text;
|
using OtterGui.Text;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class PluginStateIpcTester : IUiService, IDisposable
|
public class PluginStateIpcTester : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly IDalamudPluginInterface _pi;
|
private readonly IDalamudPluginInterface _pi;
|
||||||
public readonly EventSubscriber<string, bool> ModDirectoryChanged;
|
public readonly EventSubscriber<string, bool> ModDirectoryChanged;
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Dalamud.Plugin.Services;
|
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
|
|
@ -11,7 +8,7 @@ using Penumbra.UI;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class RedrawingIpcTester : IUiService, IDisposable
|
public class RedrawingIpcTester : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly IDalamudPluginInterface _pi;
|
private readonly IDalamudPluginInterface _pi;
|
||||||
private readonly ObjectManager _objects;
|
private readonly ObjectManager _objects;
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
using Penumbra.String.Classes;
|
using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class ResolveIpcTester(IDalamudPluginInterface pi) : IUiService
|
public class ResolveIpcTester(IDalamudPluginInterface pi) : Luna.IUiService
|
||||||
{
|
{
|
||||||
private string _currentResolvePath = string.Empty;
|
private string _currentResolvePath = string.Empty;
|
||||||
private string _currentReversePath = string.Empty;
|
private string _currentReversePath = string.Empty;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ using Dalamud.Plugin;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
@ -16,7 +15,7 @@ using Penumbra.GameData.Structs;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class ResourceTreeIpcTester(IDalamudPluginInterface pi, ObjectManager objects) : IUiService
|
public class ResourceTreeIpcTester(IDalamudPluginInterface pi, ObjectManager objects) : Luna.IUiService
|
||||||
{
|
{
|
||||||
private readonly Stopwatch _stopwatch = new();
|
private readonly Stopwatch _stopwatch = new();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui;
|
using OtterGui;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Text;
|
using OtterGui.Text;
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
|
|
@ -24,7 +23,7 @@ public class TemporaryIpcTester(
|
||||||
TempCollectionManager tempCollections,
|
TempCollectionManager tempCollections,
|
||||||
SaveService saveService,
|
SaveService saveService,
|
||||||
Configuration config)
|
Configuration config)
|
||||||
: IUiService
|
: Luna.IUiService
|
||||||
{
|
{
|
||||||
public Guid LastCreatedCollectionId = Guid.Empty;
|
public Guid LastCreatedCollectionId = Guid.Empty;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Api.Helpers;
|
using Penumbra.Api.Helpers;
|
||||||
using Penumbra.Api.IpcSubscribers;
|
using Penumbra.Api.IpcSubscribers;
|
||||||
|
|
||||||
namespace Penumbra.Api.IpcTester;
|
namespace Penumbra.Api.IpcTester;
|
||||||
|
|
||||||
public class UiIpcTester : IUiService, IDisposable
|
public class UiIpcTester : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly IDalamudPluginInterface _pi;
|
private readonly IDalamudPluginInterface _pi;
|
||||||
public readonly EventSubscriber<string, float, float> PreSettingsTabBar;
|
public readonly EventSubscriber<string, float, float> PreSettingsTabBar;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Meta.Manipulations;
|
using Penumbra.Meta.Manipulations;
|
||||||
|
|
@ -19,7 +18,7 @@ public enum RedirectResult
|
||||||
FilteredGamePath = 3,
|
FilteredGamePath = 3,
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TempModManager : IDisposable, IService
|
public class TempModManager : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api;
|
using Penumbra.Api;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
|
|
@ -18,7 +17,7 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Collections.Cache;
|
namespace Penumbra.Collections.Cache;
|
||||||
|
|
||||||
public class CollectionCacheManager : IDisposable, IService
|
public class CollectionCacheManager : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly FrameworkManager _framework;
|
private readonly FrameworkManager _framework;
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
using Penumbra.Meta.Manipulations;
|
using Penumbra.Meta.Manipulations;
|
||||||
using Penumbra.Mods.Editor;
|
using Penumbra.Mods.Editor;
|
||||||
|
|
||||||
namespace Penumbra.Collections.Cache;
|
namespace Penumbra.Collections.Cache;
|
||||||
|
|
||||||
public class GlobalEqpCache : ReadWriteDictionary<GlobalEqpManipulation, IMod>, IService
|
public class GlobalEqpCache : ReadWriteDictionary<GlobalEqpManipulation, IMod>, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly HashSet<PrimaryId> _doNotHideEarrings = [];
|
private readonly HashSet<PrimaryId> _doNotHideEarrings = [];
|
||||||
private readonly HashSet<PrimaryId> _doNotHideNecklace = [];
|
private readonly HashSet<PrimaryId> _doNotHideNecklace = [];
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
using Penumbra.Interop.PathResolving;
|
using Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
namespace Penumbra.Collections;
|
namespace Penumbra.Collections;
|
||||||
|
|
||||||
public sealed class CollectionAutoSelector : IService, IDisposable
|
public sealed class CollectionAutoSelector : Luna.IService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly Configuration _config;
|
private readonly Configuration _config;
|
||||||
private readonly ActiveCollections _collections;
|
private readonly ActiveCollections _collections;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ using Newtonsoft.Json;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.GameData.Actors;
|
using Penumbra.GameData.Actors;
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
|
|
@ -12,7 +11,7 @@ using Penumbra.UI;
|
||||||
|
|
||||||
namespace Penumbra.Collections.Manager;
|
namespace Penumbra.Collections.Manager;
|
||||||
|
|
||||||
public class ActiveCollectionData : IService
|
public class ActiveCollectionData : Luna.IService
|
||||||
{
|
{
|
||||||
public ModCollection Current { get; internal set; } = ModCollection.Empty;
|
public ModCollection Current { get; internal set; } = ModCollection.Empty;
|
||||||
public ModCollection Default { get; internal set; } = ModCollection.Empty;
|
public ModCollection Default { get; internal set; } = ModCollection.Empty;
|
||||||
|
|
@ -21,7 +20,7 @@ public class ActiveCollectionData : IService
|
||||||
public readonly ModCollection?[] SpecialCollections = new ModCollection?[Enum.GetValues<Api.Enums.ApiCollectionType>().Length - 3];
|
public readonly ModCollection?[] SpecialCollections = new ModCollection?[Enum.GetValues<Api.Enums.ApiCollectionType>().Length - 3];
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ActiveCollections : ISavable, IDisposable, IService
|
public class ActiveCollections : ISavable, IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
public const int Version = 2;
|
public const int Version = 2;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Mods;
|
using Penumbra.Mods;
|
||||||
using Penumbra.Mods.Manager;
|
using Penumbra.Mods.Manager;
|
||||||
|
|
@ -8,7 +7,7 @@ using Penumbra.Services;
|
||||||
|
|
||||||
namespace Penumbra.Collections.Manager;
|
namespace Penumbra.Collections.Manager;
|
||||||
|
|
||||||
public class CollectionEditor(SaveService saveService, CommunicatorService communicator, ModStorage modStorage) : IService
|
public class CollectionEditor(SaveService saveService, CommunicatorService communicator, ModStorage modStorage) : Luna.IService
|
||||||
{
|
{
|
||||||
/// <summary> Enable or disable the mod inheritance of mod idx. </summary>
|
/// <summary> Enable or disable the mod inheritance of mod idx. </summary>
|
||||||
public bool SetModInheritance(ModCollection collection, Mod mod, bool inherit)
|
public bool SetModInheritance(ModCollection collection, Mod mod, bool inherit)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections.Cache;
|
using Penumbra.Collections.Cache;
|
||||||
|
|
||||||
namespace Penumbra.Collections.Manager;
|
namespace Penumbra.Collections.Manager;
|
||||||
|
|
@ -9,7 +8,7 @@ public class CollectionManager(
|
||||||
InheritanceManager inheritances,
|
InheritanceManager inheritances,
|
||||||
CollectionCacheManager caches,
|
CollectionCacheManager caches,
|
||||||
TempCollectionManager temp,
|
TempCollectionManager temp,
|
||||||
CollectionEditor editor) : IService
|
CollectionEditor editor) : Luna.IService
|
||||||
{
|
{
|
||||||
public readonly CollectionStorage Storage = storage;
|
public readonly CollectionStorage Storage = storage;
|
||||||
public readonly ActiveCollections Active = active;
|
public readonly ActiveCollections Active = active;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Interface.ImGuiNotification;
|
using Dalamud.Interface.ImGuiNotification;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.Mods;
|
using Penumbra.Mods;
|
||||||
using Penumbra.Mods.Editor;
|
using Penumbra.Mods.Editor;
|
||||||
|
|
@ -23,7 +22,7 @@ public readonly record struct LocalCollectionId(int Id) : IAdditionOperators<Loc
|
||||||
=> new(left.Id + right);
|
=> new(left.Id + right);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CollectionStorage : IReadOnlyList<ModCollection>, IDisposable, IService
|
public class CollectionStorage : IReadOnlyList<ModCollection>, IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
private readonly SaveService _saveService;
|
private readonly SaveService _saveService;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Interface.ImGuiNotification;
|
using Dalamud.Interface.ImGuiNotification;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.Mods.Manager;
|
using Penumbra.Mods.Manager;
|
||||||
using Penumbra.Services;
|
using Penumbra.Services;
|
||||||
|
|
@ -13,7 +12,7 @@ namespace Penumbra.Collections.Manager;
|
||||||
/// This is transitive, so a collection A inheriting from B also inherits from everything B inherits.
|
/// This is transitive, so a collection A inheriting from B also inherits from everything B inherits.
|
||||||
/// Circular dependencies are resolved by distinctness.
|
/// Circular dependencies are resolved by distinctness.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class InheritanceManager : IDisposable, IService
|
public class InheritanceManager : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
public enum ValidInheritance
|
public enum ValidInheritance
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api;
|
using Penumbra.Api;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.GameData.Actors;
|
using Penumbra.GameData.Actors;
|
||||||
|
|
@ -9,7 +8,7 @@ using Penumbra.String;
|
||||||
|
|
||||||
namespace Penumbra.Collections.Manager;
|
namespace Penumbra.Collections.Manager;
|
||||||
|
|
||||||
public class TempCollectionManager : IDisposable, IService
|
public class TempCollectionManager : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
public int GlobalChangeCounter { get; private set; }
|
public int GlobalChangeCounter { get; private set; }
|
||||||
public readonly IndividualCollections Collections;
|
public readonly IndividualCollections Collections;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ using Dalamud.Game.Text.SeStringHandling;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Api;
|
using Penumbra.Api.Api;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
|
|
@ -17,7 +16,7 @@ using Penumbra.UI.Knowledge;
|
||||||
|
|
||||||
namespace Penumbra;
|
namespace Penumbra;
|
||||||
|
|
||||||
public class CommandHandler : IDisposable, IApiService
|
public class CommandHandler : IDisposable, Luna.IApiService
|
||||||
{
|
{
|
||||||
private const string CommandName = "/penumbra";
|
private const string CommandName = "/penumbra";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ using Newtonsoft.Json;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Filesystem;
|
using OtterGui.Filesystem;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Widgets;
|
using OtterGui.Widgets;
|
||||||
using Penumbra.Import.Structs;
|
using Penumbra.Import.Structs;
|
||||||
using Penumbra.Interop.Services;
|
using Penumbra.Interop.Services;
|
||||||
|
|
@ -28,7 +27,7 @@ public record PcpSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class Configuration : IPluginConfiguration, ISavable, IService
|
public class Configuration : IPluginConfiguration, ISavable, Luna.IService
|
||||||
{
|
{
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
private readonly SaveService _saveService;
|
private readonly SaveService _saveService;
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
using Dalamud.Interface.ImGuiNotification;
|
using Dalamud.Interface.ImGuiNotification;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.FileSystem.Selector;
|
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.Enums;
|
using Penumbra.Enums;
|
||||||
|
|
@ -16,7 +14,7 @@ using ErrorEventArgs = Newtonsoft.Json.Serialization.ErrorEventArgs;
|
||||||
|
|
||||||
namespace Penumbra;
|
namespace Penumbra;
|
||||||
|
|
||||||
public class EphemeralConfig : ISavable, IDisposable, IService
|
public class EphemeralConfig : ISavable, IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
private readonly SaveService _saveService;
|
private readonly SaveService _saveService;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Lumina.Data.Parsing;
|
using Lumina.Data.Parsing;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Tasks;
|
using OtterGui.Tasks;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
|
|
@ -25,7 +24,7 @@ using Schema2 = SharpGLTF.Schema2;
|
||||||
using LuminaMaterial = Lumina.Models.Materials.Material;
|
using LuminaMaterial = Lumina.Models.Materials.Material;
|
||||||
|
|
||||||
public sealed class ModelManager(IFramework framework, MetaFileManager metaFileManager, ActiveCollections collections, GamePathParser parser)
|
public sealed class ModelManager(IFramework framework, MetaFileManager metaFileManager, ActiveCollections collections, GamePathParser parser)
|
||||||
: SingleTaskQueue, IDisposable, IService
|
: SingleTaskQueue, IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly IFramework _framework = framework;
|
private readonly IFramework _framework = framework;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ public partial struct MetaFileInfo
|
||||||
public MetaFileInfo(GamePathParser parser, string fileName)
|
public MetaFileInfo(GamePathParser parser, string fileName)
|
||||||
{
|
{
|
||||||
// Set the primary type from the gamePath start.
|
// Set the primary type from the gamePath start.
|
||||||
PrimaryType = parser.PathToObjectType(fileName);
|
PrimaryType = GamePathParser.PathToObjectType(fileName);
|
||||||
PrimaryId = 0;
|
PrimaryId = 0;
|
||||||
SecondaryType = BodySlot.Unknown;
|
SecondaryType = BodySlot.Unknown;
|
||||||
SecondaryId = 0;
|
SecondaryId = 0;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ using Dalamud.Interface.Textures.TextureWraps;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Lumina.Data.Files;
|
using Lumina.Data.Files;
|
||||||
using OtterGui.Log;
|
using OtterGui.Log;
|
||||||
using OtterGui.Services;
|
|
||||||
using OtterGui.Tasks;
|
using OtterGui.Tasks;
|
||||||
using OtterTex;
|
using OtterTex;
|
||||||
using SharpDX.Direct3D11;
|
using SharpDX.Direct3D11;
|
||||||
|
|
@ -18,7 +17,7 @@ using Image = SixLabors.ImageSharp.Image;
|
||||||
namespace Penumbra.Import.Textures;
|
namespace Penumbra.Import.Textures;
|
||||||
|
|
||||||
public sealed class TextureManager(IDataManager gameData, Logger logger, ITextureProvider textureProvider, IUiBuilder uiBuilder)
|
public sealed class TextureManager(IDataManager gameData, Logger logger, ITextureProvider textureProvider, IUiBuilder uiBuilder)
|
||||||
: SingleTaskQueue, IDisposable, IService
|
: SingleTaskQueue, IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly Logger _logger = logger;
|
private readonly Logger _logger = logger;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
|
|
||||||
namespace Penumbra.Interop;
|
namespace Penumbra.Interop;
|
||||||
|
|
||||||
public sealed unsafe class CharacterBaseVTables : IService
|
public sealed unsafe class CharacterBaseVTables : Luna.IService
|
||||||
{
|
{
|
||||||
[Signature(Sigs.HumanVTable, ScanType = ScanType.StaticAddress)]
|
[Signature(Sigs.HumanVTable, ScanType = ScanType.StaticAddress)]
|
||||||
public readonly nint* HumanVTable = null!;
|
public readonly nint* HumanVTable = null!;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Interop.PathResolving;
|
using Penumbra.Interop.PathResolving;
|
||||||
|
|
@ -7,7 +6,7 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Interop;
|
namespace Penumbra.Interop;
|
||||||
|
|
||||||
public class GameState : IService
|
public class GameState : Luna.IService
|
||||||
{
|
{
|
||||||
#region Last Game Object
|
#region Last Game Object
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using OtterGui.Services;
|
using Luna;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks;
|
namespace Penumbra.Interop.Hooks;
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
public sealed unsafe class DebugHook : IHookService
|
public sealed unsafe class DebugHook : Luna.IHookService
|
||||||
{
|
{
|
||||||
public const string Signature = "";
|
public const string Signature = "";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Objects;
|
namespace Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
public sealed unsafe class CharacterBaseDestructor : EventWrapperPtr<CharacterBase, CharacterBaseDestructor.Priority>, IHookService
|
public sealed unsafe class CharacterBaseDestructor : EventWrapperPtr<CharacterBase, CharacterBaseDestructor.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -16,7 +15,7 @@ public sealed unsafe class CharacterBaseDestructor : EventWrapperPtr<CharacterBa
|
||||||
MtrlTab = -1000,
|
MtrlTab = -1000,
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharacterBaseDestructor(HookManager hooks)
|
public CharacterBaseDestructor(Luna.HookManager hooks)
|
||||||
: base("Destroy CharacterBase")
|
: base("Destroy CharacterBase")
|
||||||
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.CharacterBaseDestructor);
|
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.CharacterBaseDestructor);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Objects;
|
namespace Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
public sealed unsafe class CharacterDestructor : EventWrapperPtr<Character, CharacterDestructor.Priority>, IHookService
|
public sealed unsafe class CharacterDestructor : EventWrapperPtr<Character, CharacterDestructor.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -20,7 +19,7 @@ public sealed unsafe class CharacterDestructor : EventWrapperPtr<Character, Char
|
||||||
DrawObjectState = 0,
|
DrawObjectState = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
public CharacterDestructor(HookManager hooks)
|
public CharacterDestructor(Luna.HookManager hooks)
|
||||||
: base("Character Destructor")
|
: base("Character Destructor")
|
||||||
=> _task = hooks.CreateHook<Delegate>(Name, Sigs.CharacterDestructor, Detour, !HookOverrides.Instance.Objects.CharacterDestructor);
|
=> _task = hooks.CreateHook<Delegate>(Name, Sigs.CharacterDestructor, Detour, !HookOverrides.Instance.Objects.CharacterDestructor);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Objects;
|
namespace Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
public sealed unsafe class ConstructCutsceneCharacter : EventWrapperPtr<Character, ConstructCutsceneCharacter.Priority>, IHookService
|
public sealed unsafe class ConstructCutsceneCharacter : EventWrapperPtr<Character, ConstructCutsceneCharacter.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
private readonly GameState _gameState;
|
private readonly GameState _gameState;
|
||||||
private readonly ObjectManager _objects;
|
private readonly ObjectManager _objects;
|
||||||
|
|
@ -19,7 +18,7 @@ public sealed unsafe class ConstructCutsceneCharacter : EventWrapperPtr<Characte
|
||||||
CutsceneService = 0,
|
CutsceneService = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConstructCutsceneCharacter(GameState gameState, HookManager hooks, ObjectManager objects)
|
public ConstructCutsceneCharacter(GameState gameState, Luna.HookManager hooks, ObjectManager objects)
|
||||||
: base("ConstructCutsceneCharacter")
|
: base("ConstructCutsceneCharacter")
|
||||||
{
|
{
|
||||||
_gameState = gameState;
|
_gameState = gameState;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Objects;
|
namespace Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
public sealed unsafe class CopyCharacter : EventWrapperPtr<Character, Character, CopyCharacter.Priority>, IHookService
|
public sealed unsafe class CopyCharacter : EventWrapperPtr<Character, Character, CopyCharacter.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -13,7 +12,7 @@ public sealed unsafe class CopyCharacter : EventWrapperPtr<Character, Character,
|
||||||
CutsceneService = 0,
|
CutsceneService = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
public CopyCharacter(HookManager hooks)
|
public CopyCharacter(Luna.HookManager hooks)
|
||||||
: base("Copy Character")
|
: base("Copy Character")
|
||||||
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.CopyCharacter);
|
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.CopyCharacter);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Objects;
|
namespace Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
public sealed unsafe class CreateCharacterBase : EventWrapperPtr<ModelCharaId, CustomizeArray, CharacterArmor, CreateCharacterBase.Priority>, IHookService
|
public sealed unsafe class CreateCharacterBase : EventWrapperPtr<ModelCharaId, CustomizeArray, CharacterArmor, CreateCharacterBase.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -14,7 +13,7 @@ public sealed unsafe class CreateCharacterBase : EventWrapperPtr<ModelCharaId, C
|
||||||
MetaState = 0,
|
MetaState = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
public CreateCharacterBase(HookManager hooks)
|
public CreateCharacterBase(Luna.HookManager hooks)
|
||||||
: base("Create CharacterBase")
|
: base("Create CharacterBase")
|
||||||
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.CreateCharacterBase);
|
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.CreateCharacterBase);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ namespace Penumbra.Interop.Hooks.Objects;
|
||||||
/// EnableDraw is what creates DrawObjects for gameObjects,
|
/// EnableDraw is what creates DrawObjects for gameObjects,
|
||||||
/// so we always keep track of the current GameObject to be able to link it to the DrawObject.
|
/// so we always keep track of the current GameObject to be able to link it to the DrawObject.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed unsafe class EnableDraw : IHookService
|
public sealed unsafe class EnableDraw : Luna.IHookService
|
||||||
{
|
{
|
||||||
private readonly Task<Hook<Delegate>> _task;
|
private readonly Task<Hook<Delegate>> _task;
|
||||||
private readonly GameState _state;
|
private readonly GameState _state;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Objects;
|
namespace Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
public sealed unsafe class WeaponReload : EventWrapperPtr<DrawDataContainer, Character, CharacterWeapon, WeaponReload.Priority>, IHookService
|
public sealed unsafe class WeaponReload : EventWrapperPtr<DrawDataContainer, Character, CharacterWeapon, WeaponReload.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -14,7 +13,7 @@ public sealed unsafe class WeaponReload : EventWrapperPtr<DrawDataContainer, Cha
|
||||||
DrawObjectState = 0,
|
DrawObjectState = 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
public WeaponReload(HookManager hooks)
|
public WeaponReload(Luna.HookManager hooks)
|
||||||
: base("Reload Weapon")
|
: base("Reload Weapon")
|
||||||
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.WeaponReload);
|
=> _task = hooks.CreateHook<Delegate>(Name, Address, Detour, !HookOverrides.Instance.Objects.WeaponReload);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
|
|
@ -18,7 +17,7 @@ namespace Penumbra.Interop.Hooks.PostProcessing;
|
||||||
/// <item>Parameter is the collection associated with the game object. </item>
|
/// <item>Parameter is the collection associated with the game object. </item>
|
||||||
/// <item>Parameter is the slot that was recomputed. If this is Unknown, it is a general new update call. </item>
|
/// <item>Parameter is the slot that was recomputed. If this is Unknown, it is a general new update call. </item>
|
||||||
/// </list> </summary>
|
/// </list> </summary>
|
||||||
public sealed unsafe class AttributeHook : EventWrapper<Actor, Model, ModCollection, AttributeHook.Priority>, IHookService
|
public sealed unsafe class AttributeHook : EventWrapper<Actor, Model, ModCollection, AttributeHook.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -29,7 +28,7 @@ public sealed unsafe class AttributeHook : EventWrapper<Actor, Model, ModCollect
|
||||||
private readonly CollectionResolver _resolver;
|
private readonly CollectionResolver _resolver;
|
||||||
private readonly Configuration _config;
|
private readonly Configuration _config;
|
||||||
|
|
||||||
public AttributeHook(HookManager hooks, Configuration config, CollectionResolver resolver)
|
public AttributeHook(Luna.HookManager hooks, Configuration config, CollectionResolver resolver)
|
||||||
: base("Update Model Attributes")
|
: base("Update Model Attributes")
|
||||||
{
|
{
|
||||||
_config = config;
|
_config = config;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using Dalamud.Hooking;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Interop.Hooks.ResourceLoading;
|
using Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
using Penumbra.Interop.PathResolving;
|
using Penumbra.Interop.PathResolving;
|
||||||
|
|
@ -13,7 +12,7 @@ using CharacterUtility = Penumbra.Interop.Services.CharacterUtility;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.PostProcessing;
|
namespace Penumbra.Interop.Hooks.PostProcessing;
|
||||||
|
|
||||||
public sealed unsafe class PreBoneDeformerReplacer : IDisposable, IRequiredService
|
public sealed unsafe class PreBoneDeformerReplacer : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public static readonly Utf8GamePath PreBoneDeformerPath =
|
public static readonly Utf8GamePath PreBoneDeformerPath =
|
||||||
Utf8GamePath.FromSpan("chara/xls/boneDeformer/human.pbd"u8, MetaDataComputation.All, out var p) ? p : Utf8GamePath.Empty;
|
Utf8GamePath.FromSpan("chara/xls/boneDeformer/human.pbd"u8, MetaDataComputation.All, out var p) ? p : Utf8GamePath.Empty;
|
||||||
|
|
@ -30,7 +29,7 @@ public sealed unsafe class PreBoneDeformerReplacer : IDisposable, IRequiredServi
|
||||||
private readonly HumanSetupScalingHook _humanSetupScalingHook;
|
private readonly HumanSetupScalingHook _humanSetupScalingHook;
|
||||||
|
|
||||||
public PreBoneDeformerReplacer(CharacterUtility utility, CollectionResolver collectionResolver, ResourceLoader resourceLoader,
|
public PreBoneDeformerReplacer(CharacterUtility utility, CollectionResolver collectionResolver, ResourceLoader resourceLoader,
|
||||||
HookManager hooks, IFramework framework, CharacterBaseVTables vTables, HumanSetupScalingHook humanSetupScalingHook)
|
Luna.HookManager hooks, IFramework framework, CharacterBaseVTables vTables, HumanSetupScalingHook humanSetupScalingHook)
|
||||||
{
|
{
|
||||||
_utility = utility;
|
_utility = utility;
|
||||||
_collectionResolver = collectionResolver;
|
_collectionResolver = collectionResolver;
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,15 @@ using System.Collections.Immutable;
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using Dalamud.Plugin;
|
using Dalamud.Plugin;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.Hooks.ResourceLoading;
|
using Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
using Penumbra.Services;
|
using Penumbra.Services;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.PostProcessing;
|
namespace Penumbra.Interop.Hooks.PostProcessing;
|
||||||
|
|
||||||
public unsafe class RenderTargetHdrEnabler : IService, IDisposable
|
public unsafe class RenderTargetHdrEnabler : Luna.IService, IDisposable
|
||||||
{
|
{
|
||||||
/// <remarks> This array must be sorted by CreationOrder ascending. </remarks>
|
/// <remarks> This array must be sorted by CreationOrder ascending. </remarks>
|
||||||
private static readonly ImmutableArray<ForcedTextureConfig> ForcedTextureConfigs =
|
private static readonly ImmutableArray<ForcedTextureConfig> ForcedTextureConfigs =
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.GameData.Files.MaterialStructs;
|
using Penumbra.GameData.Files.MaterialStructs;
|
||||||
|
|
@ -18,7 +17,7 @@ using ModelRenderer = Penumbra.Interop.Services.ModelRenderer;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.PostProcessing;
|
namespace Penumbra.Interop.Hooks.PostProcessing;
|
||||||
|
|
||||||
public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredService
|
public sealed unsafe class ShaderReplacementFixer : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public static ReadOnlySpan<byte> SkinShpkName
|
public static ReadOnlySpan<byte> SkinShpkName
|
||||||
=> "skin.shpk"u8;
|
=> "skin.shpk"u8;
|
||||||
|
|
@ -107,7 +106,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
||||||
=> _hairMaskState.MaterialCount;
|
=> _hairMaskState.MaterialCount;
|
||||||
|
|
||||||
public ShaderReplacementFixer(ResourceHandleDestructor resourceHandleDestructor, CharacterUtility utility, ModelRenderer modelRenderer,
|
public ShaderReplacementFixer(ResourceHandleDestructor resourceHandleDestructor, CharacterUtility utility, ModelRenderer modelRenderer,
|
||||||
CommunicatorService communicator, HookManager hooks, CharacterBaseVTables vTables, HumanSetupScalingHook humanSetupScalingHook)
|
CommunicatorService communicator, Luna.HookManager hooks, CharacterBaseVTables vTables, HumanSetupScalingHook humanSetupScalingHook)
|
||||||
{
|
{
|
||||||
_resourceHandleDestructor = resourceHandleDestructor;
|
_resourceHandleDestructor = resourceHandleDestructor;
|
||||||
_communicator = communicator;
|
_communicator = communicator;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.String;
|
using Penumbra.String;
|
||||||
using Penumbra.String.Classes;
|
using Penumbra.String.Classes;
|
||||||
using Penumbra.String.Functions;
|
using Penumbra.String.Functions;
|
||||||
|
|
@ -12,7 +11,7 @@ namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
/// we use the fixed size buffers of their formats to only store pointers to the actual path instead.
|
/// we use the fixed size buffers of their formats to only store pointers to the actual path instead.
|
||||||
/// Then we translate the stored pointer to the path in CreateFileW, if the prefix matches.
|
/// Then we translate the stored pointer to the path in CreateFileW, if the prefix matches.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public unsafe class CreateFileWHook : IDisposable, IRequiredService
|
public unsafe class CreateFileWHook : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public const int Size = 28;
|
public const int Size = 28;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
using Penumbra.Util;
|
using Penumbra.Util;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
||||||
public unsafe class FileReadService : IDisposable, IRequiredService
|
public unsafe class FileReadService : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public FileReadService(PerformanceTracker performance, ResourceManagerService resourceManager, IGameInteropProvider interop)
|
public FileReadService(PerformanceTracker performance, ResourceManagerService resourceManager, IGameInteropProvider interop)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
using System.IO.MemoryMappedFiles;
|
using System.IO.MemoryMappedFiles;
|
||||||
using Iced.Intel;
|
using Iced.Intel;
|
||||||
using OtterGui.Services;
|
|
||||||
using PeNet;
|
using PeNet;
|
||||||
using Decoder = Iced.Intel.Decoder;
|
using Decoder = Iced.Intel.Decoder;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
||||||
// A good chunk of this was blatantly stolen from Dalamud's SigScanner 'cause Winter could not be faffed, Winter will definitely not rewrite it later
|
// A good chunk of this was blatantly stolen from Dalamud's SigScanner 'cause Winter could not be faffed, Winter will definitely not rewrite it later
|
||||||
public unsafe class PeSigScanner : IDisposable, IService
|
public unsafe class PeSigScanner : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly MemoryMappedFile _file;
|
private readonly MemoryMappedFile _file;
|
||||||
private readonly MemoryMappedViewAccessor _textSection;
|
private readonly MemoryMappedViewAccessor _textSection;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Interop.Hooks.Resources;
|
using Penumbra.Interop.Hooks.Resources;
|
||||||
|
|
@ -12,7 +11,7 @@ using FileMode = Penumbra.Interop.Structs.FileMode;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
||||||
public unsafe class ResourceLoader : IDisposable, IService
|
public unsafe class ResourceLoader : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly ResourceService _resources;
|
private readonly ResourceService _resources;
|
||||||
private readonly FileReadService _fileReadService;
|
private readonly FileReadService _fileReadService;
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,12 @@ using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle;
|
||||||
using FFXIVClientStructs.Interop;
|
using FFXIVClientStructs.Interop;
|
||||||
using FFXIVClientStructs.STD;
|
using FFXIVClientStructs.STD;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
||||||
public unsafe class ResourceManagerService : IRequiredService
|
public unsafe class ResourceManagerService : Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public ResourceManagerService(IGameInteropProvider interop)
|
public ResourceManagerService(IGameInteropProvider interop)
|
||||||
=> interop.InitializeFromAttributes(this);
|
=> interop.InitializeFromAttributes(this);
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using Dalamud.Interface.Windowing;
|
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.SafeHandles;
|
using Penumbra.Interop.SafeHandles;
|
||||||
|
|
@ -15,7 +13,7 @@ using CSResourceHandle = FFXIVClientStructs.FFXIV.Client.System.Resource.Handle.
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
||||||
public unsafe class ResourceService : IDisposable, IRequiredService
|
public unsafe class ResourceService : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
private readonly PerformanceTracker _performance;
|
private readonly PerformanceTracker _performance;
|
||||||
private readonly ResourceManagerService _resourceManager;
|
private readonly ResourceManagerService _resourceManager;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
|
|
@ -11,7 +10,7 @@ using TextureResourceHandle = Penumbra.Interop.Structs.TextureResourceHandle;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
namespace Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
||||||
public unsafe class RsfService : IDisposable, IRequiredService
|
public unsafe class RsfService : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// We need to be able to obtain the requested LoD level.
|
/// We need to be able to obtain the requested LoD level.
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Interop.PathResolving;
|
using Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Resources;
|
namespace Penumbra.Interop.Hooks.Resources;
|
||||||
|
|
||||||
public sealed unsafe class ResolvePathHooks(HookManager hooks, CharacterBaseVTables vTables, PathState pathState) : IDisposable, IRequiredService
|
public sealed unsafe class ResolvePathHooks(Luna.HookManager hooks, CharacterBaseVTables vTables, PathState pathState) : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
private readonly ResolvePathHooksBase _human = new("Human", hooks, pathState, vTables.HumanVTable, ResolvePathHooksBase.Type.Human);
|
private readonly ResolvePathHooksBase _human = new("Human", hooks, pathState, vTables.HumanVTable, ResolvePathHooksBase.Type.Human);
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,10 @@
|
||||||
using System.Text.Unicode;
|
using System.Text.Unicode;
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.GameData.Enums;
|
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
using Penumbra.Interop.PathResolving;
|
using Penumbra.Interop.PathResolving;
|
||||||
using Penumbra.Interop.Processing;
|
using Penumbra.Interop.Processing;
|
||||||
using static FFXIVClientStructs.FFXIV.Client.Game.Character.ActionEffectHandler;
|
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Resources;
|
namespace Penumbra.Interop.Hooks.Resources;
|
||||||
|
|
||||||
|
|
@ -50,7 +47,7 @@ public sealed unsafe class ResolvePathHooksBase : IDisposable
|
||||||
|
|
||||||
private readonly PathState _parent;
|
private readonly PathState _parent;
|
||||||
|
|
||||||
public ResolvePathHooksBase(string name, HookManager hooks, PathState parent, nint* vTable, Type type)
|
public ResolvePathHooksBase(string name, Luna.HookManager hooks, PathState parent, nint* vTable, Type type)
|
||||||
{
|
{
|
||||||
_parent = parent;
|
_parent = parent;
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
|
|
@ -329,7 +326,7 @@ public sealed unsafe class ResolvePathHooksBase : IDisposable
|
||||||
|
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
||||||
[return: NotNullIfNotNull(nameof(other))]
|
[return: NotNullIfNotNull(nameof(other))]
|
||||||
private static Hook<T>? Create<T>(string name, HookManager hooks, nint address, Type type, T? other, T human) where T : Delegate
|
private static Hook<T>? Create<T>(string name, Luna.HookManager hooks, nint address, Type type, T? other, T human) where T : Delegate
|
||||||
{
|
{
|
||||||
var del = type switch
|
var del = type switch
|
||||||
{
|
{
|
||||||
|
|
@ -343,7 +340,7 @@ public sealed unsafe class ResolvePathHooksBase : IDisposable
|
||||||
}
|
}
|
||||||
|
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining | MethodImplOptions.AggressiveOptimization)]
|
||||||
private static Hook<T> Create<T>(string name, HookManager hooks, nint address, T del) where T : Delegate
|
private static Hook<T> Create<T>(string name, Luna.HookManager hooks, nint address, T del) where T : Delegate
|
||||||
=> hooks.CreateHook(name, address, del).Result;
|
=> hooks.CreateHook(name, address, del).Result;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
using Dalamud.Hooking;
|
using Dalamud.Hooking;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
using Penumbra.UI.ResourceWatcher;
|
using Penumbra.UI.ResourceWatcher;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Resources;
|
namespace Penumbra.Interop.Hooks.Resources;
|
||||||
|
|
||||||
public sealed unsafe class ResourceHandleDestructor : EventWrapperPtr<ResourceHandle, ResourceHandleDestructor.Priority>, IHookService
|
public sealed unsafe class ResourceHandleDestructor : EventWrapperPtr<ResourceHandle, ResourceHandleDestructor.Priority>, Luna.IHookService
|
||||||
{
|
{
|
||||||
public enum Priority
|
public enum Priority
|
||||||
{
|
{
|
||||||
|
|
@ -24,7 +23,7 @@ public sealed unsafe class ResourceHandleDestructor : EventWrapperPtr<ResourceHa
|
||||||
ResourceWatcher,
|
ResourceWatcher,
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceHandleDestructor(HookManager hooks)
|
public ResourceHandleDestructor(Luna.HookManager hooks)
|
||||||
: base("Destroy ResourceHandle")
|
: base("Destroy ResourceHandle")
|
||||||
=> _task = hooks.CreateHook<Delegate>(Name, Sigs.ResourceHandleDestructor, Detour,
|
=> _task = hooks.CreateHook<Delegate>(Name, Sigs.ResourceHandleDestructor, Detour,
|
||||||
!HookOverrides.Instance.Resources.ResourceHandleDestructor);
|
!HookOverrides.Instance.Resources.ResourceHandleDestructor);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
using FFXIVClientStructs.FFXIV.Client.UI.Agent;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.GameData.Actors;
|
using Penumbra.GameData.Actors;
|
||||||
|
|
@ -31,7 +30,7 @@ public sealed unsafe class CollectionResolver(
|
||||||
TempCollectionManager tempCollections,
|
TempCollectionManager tempCollections,
|
||||||
DrawObjectState drawObjectState,
|
DrawObjectState drawObjectState,
|
||||||
HumanModelList humanModels)
|
HumanModelList humanModels)
|
||||||
: IService
|
: Luna.IService
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the collection applying to the current player character
|
/// Get the collection applying to the current player character
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
using Penumbra.Interop.Hooks.Objects;
|
using Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
@ -9,7 +8,7 @@ using Penumbra.String;
|
||||||
|
|
||||||
namespace Penumbra.Interop.PathResolving;
|
namespace Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
public sealed class CutsceneService : IRequiredService, IDisposable
|
public sealed class CutsceneService : Luna.IRequiredService, IDisposable
|
||||||
{
|
{
|
||||||
public const int CutsceneStartIdx = (int)ScreenActor.CutsceneStart;
|
public const int CutsceneStartIdx = (int)ScreenActor.CutsceneStart;
|
||||||
public const int CutsceneEndIdx = (int)ScreenActor.CutsceneEnd;
|
public const int CutsceneEndIdx = (int)ScreenActor.CutsceneEnd;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Interop;
|
using Penumbra.GameData.Interop;
|
||||||
using Object = FFXIVClientStructs.FFXIV.Client.Graphics.Scene.Object;
|
using Object = FFXIVClientStructs.FFXIV.Client.Graphics.Scene.Object;
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
|
|
@ -9,7 +8,7 @@ using Penumbra.Interop.Hooks.Objects;
|
||||||
|
|
||||||
namespace Penumbra.Interop.PathResolving;
|
namespace Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
public sealed class DrawObjectState : IDisposable, IReadOnlyDictionary<Model, (Actor, ObjectIndex, bool)>, IService
|
public sealed class DrawObjectState : IDisposable, IReadOnlyDictionary<Model, (Actor, ObjectIndex, bool)>, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly ObjectManager _objects;
|
private readonly ObjectManager _objects;
|
||||||
private readonly CreateCharacterBase _createCharacterBase;
|
private readonly CreateCharacterBase _createCharacterBase;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
|
|
@ -12,7 +11,7 @@ using Penumbra.Services;
|
||||||
namespace Penumbra.Interop.PathResolving;
|
namespace Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
public unsafe class IdentifiedCollectionCache : IDisposable, IEnumerable<(nint Address, ActorIdentifier Identifier, ModCollection Collection)>,
|
public unsafe class IdentifiedCollectionCache : IDisposable, IEnumerable<(nint Address, ActorIdentifier Identifier, ModCollection Collection)>,
|
||||||
IService
|
Luna.IService
|
||||||
{
|
{
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
private readonly CharacterDestructor _characterDestructor;
|
private readonly CharacterDestructor _characterDestructor;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.GameData.Structs;
|
using Penumbra.GameData.Structs;
|
||||||
|
|
@ -35,7 +34,7 @@ namespace Penumbra.Interop.PathResolving;
|
||||||
// ChangeCustomize and RspSetupCharacter, which is hooked here, as well as Character.CalculateHeight.
|
// ChangeCustomize and RspSetupCharacter, which is hooked here, as well as Character.CalculateHeight.
|
||||||
|
|
||||||
// GMP Entries seem to be only used by "48 8B ?? 53 55 57 48 83 ?? ?? 48 8B", which is SetupVisor.
|
// GMP Entries seem to be only used by "48 8B ?? 53 55 57 48 83 ?? ?? 48 8B", which is SetupVisor.
|
||||||
public sealed unsafe class MetaState : IDisposable, IService
|
public sealed unsafe class MetaState : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
public readonly Configuration Config;
|
public readonly Configuration Config;
|
||||||
private readonly CommunicatorService _communicator;
|
private readonly CommunicatorService _communicator;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
|
|
@ -10,7 +9,7 @@ using Penumbra.Util;
|
||||||
|
|
||||||
namespace Penumbra.Interop.PathResolving;
|
namespace Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
public class PathResolver : IDisposable, IService
|
public class PathResolver : IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly PerformanceTracker _performance;
|
private readonly PerformanceTracker _performance;
|
||||||
private readonly Configuration _config;
|
private readonly Configuration _config;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Interop.Services;
|
using Penumbra.Interop.Services;
|
||||||
using Penumbra.String;
|
using Penumbra.String;
|
||||||
|
|
@ -6,7 +5,7 @@ using Penumbra.String;
|
||||||
namespace Penumbra.Interop.PathResolving;
|
namespace Penumbra.Interop.PathResolving;
|
||||||
|
|
||||||
public sealed class PathState(CollectionResolver collectionResolver, MetaState metaState, CharacterUtility characterUtility)
|
public sealed class PathState(CollectionResolver collectionResolver, MetaState metaState, CharacterUtility characterUtility)
|
||||||
: IDisposable, IService
|
: IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
public readonly CollectionResolver CollectionResolver = collectionResolver;
|
public readonly CollectionResolver CollectionResolver = collectionResolver;
|
||||||
public readonly MetaState MetaState = metaState;
|
public readonly MetaState MetaState = metaState;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Interop.Hooks.ResourceLoading;
|
using Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
|
|
@ -13,7 +12,7 @@ namespace Penumbra.Interop.PathResolving;
|
||||||
/// Those are loaded synchronously.
|
/// Those are loaded synchronously.
|
||||||
/// Thus, we need to ensure the correct files are loaded when a material is loaded.
|
/// Thus, we need to ensure the correct files are loaded when a material is loaded.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed unsafe class SubfileHelper : IDisposable, IReadOnlyCollection<KeyValuePair<nint, ResolveData>>, IService
|
public sealed unsafe class SubfileHelper : IDisposable, IReadOnlyCollection<KeyValuePair<nint, ResolveData>>, Luna.IService
|
||||||
{
|
{
|
||||||
private readonly GameState _gameState;
|
private readonly GameState _gameState;
|
||||||
private readonly ResourceLoader _loader;
|
private readonly ResourceLoader _loader;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System.Collections.Frozen;
|
using System.Collections.Frozen;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Interop.Hooks.ResourceLoading;
|
using Penumbra.Interop.Hooks.ResourceLoading;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
|
|
@ -8,18 +7,18 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Processing;
|
namespace Penumbra.Interop.Processing;
|
||||||
|
|
||||||
public interface IFilePostProcessor : IService
|
public interface IFilePostProcessor : Luna.IService
|
||||||
{
|
{
|
||||||
public ResourceType Type { get; }
|
public ResourceType Type { get; }
|
||||||
public unsafe void PostProcess(ResourceHandle* resource, CiByteString originalGamePath, ReadOnlySpan<byte> additionalData);
|
public unsafe void PostProcess(ResourceHandle* resource, CiByteString originalGamePath, ReadOnlySpan<byte> additionalData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public unsafe class FilePostProcessService : IRequiredService, IDisposable
|
public unsafe class FilePostProcessService : Luna.IRequiredService, IDisposable
|
||||||
{
|
{
|
||||||
private readonly ResourceLoader _resourceLoader;
|
private readonly ResourceLoader _resourceLoader;
|
||||||
private readonly FrozenDictionary<ResourceType, IFilePostProcessor> _processors;
|
private readonly FrozenDictionary<ResourceType, IFilePostProcessor> _processors;
|
||||||
|
|
||||||
public FilePostProcessService(ResourceLoader resourceLoader, ServiceManager services)
|
public FilePostProcessService(ResourceLoader resourceLoader, Luna.ServiceManager services)
|
||||||
{
|
{
|
||||||
_resourceLoader = resourceLoader;
|
_resourceLoader = resourceLoader;
|
||||||
_processors = services.GetServicesImplementing<IFilePostProcessor>().ToFrozenDictionary(s => s.Type, s => s);
|
_processors = services.GetServicesImplementing<IFilePostProcessor>().ToFrozenDictionary(s => s.Type, s => s);
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System.Collections.Frozen;
|
using System.Collections.Frozen;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.String;
|
using Penumbra.String;
|
||||||
|
|
@ -7,18 +6,18 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Processing;
|
namespace Penumbra.Interop.Processing;
|
||||||
|
|
||||||
public interface IPathPreProcessor : IService
|
public interface IPathPreProcessor : Luna.IService
|
||||||
{
|
{
|
||||||
public ResourceType Type { get; }
|
public ResourceType Type { get; }
|
||||||
|
|
||||||
public FullPath? PreProcess(ResolveData resolveData, CiByteString path, Utf8GamePath originalGamePath, bool nonDefault, FullPath? resolved);
|
public FullPath? PreProcess(ResolveData resolveData, CiByteString path, Utf8GamePath originalGamePath, bool nonDefault, FullPath? resolved);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GamePathPreProcessService : IService
|
public class GamePathPreProcessService : Luna.IService
|
||||||
{
|
{
|
||||||
private readonly FrozenDictionary<ResourceType, IPathPreProcessor> _processors;
|
private readonly FrozenDictionary<ResourceType, IPathPreProcessor> _processors;
|
||||||
|
|
||||||
public GamePathPreProcessService(ServiceManager services)
|
public GamePathPreProcessService(Luna.ServiceManager services)
|
||||||
{
|
{
|
||||||
_processors = services.GetServicesImplementing<IPathPreProcessor>().ToFrozenDictionary(s => s.Type, s => s);
|
_processors = services.GetServicesImplementing<IPathPreProcessor>().ToFrozenDictionary(s => s.Type, s => s);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using Dalamud.Game.ClientState.Objects.Types;
|
using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
using FFXIVClientStructs.FFXIV.Client.Game.Object;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.GameData.Actors;
|
using Penumbra.GameData.Actors;
|
||||||
using Penumbra.GameData.Data;
|
using Penumbra.GameData.Data;
|
||||||
|
|
@ -24,7 +23,7 @@ public class ResourceTreeFactory(
|
||||||
ActorManager actors,
|
ActorManager actors,
|
||||||
PathState pathState,
|
PathState pathState,
|
||||||
IFramework framework,
|
IFramework framework,
|
||||||
ModManager modManager) : IService
|
ModManager modManager) : Luna.IService
|
||||||
{
|
{
|
||||||
private static readonly string ParentDirectoryPrefix = $"..{Path.DirectorySeparatorChar}";
|
private static readonly string ParentDirectoryPrefix = $"..{Path.DirectorySeparatorChar}";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Services;
|
namespace Penumbra.Interop.Services;
|
||||||
|
|
||||||
public unsafe class CharacterUtility : IDisposable, IRequiredService
|
public unsafe class CharacterUtility : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public record struct InternalIndex(int Value);
|
public record struct InternalIndex(int Value);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
||||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
|
||||||
|
|
||||||
namespace Penumbra.Interop.Services;
|
namespace Penumbra.Interop.Services;
|
||||||
|
|
||||||
|
|
@ -10,7 +8,7 @@ namespace Penumbra.Interop.Services;
|
||||||
/// Handle font reloading via game functions.
|
/// Handle font reloading via game functions.
|
||||||
/// May cause a interface flicker while reloading.
|
/// May cause a interface flicker while reloading.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public unsafe class FontReloader : IService
|
public unsafe class FontReloader : Luna.IService
|
||||||
{
|
{
|
||||||
public bool Valid
|
public bool Valid
|
||||||
=> _reloadFontsFunc != null;
|
=> _reloadFontsFunc != null;
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle;
|
using FFXIVClientStructs.FFXIV.Client.System.Resource.Handle;
|
||||||
using OtterGui.Services;
|
|
||||||
using ModelRendererData = FFXIVClientStructs.FFXIV.Client.Graphics.Render.ModelRenderer;
|
using ModelRendererData = FFXIVClientStructs.FFXIV.Client.Graphics.Render.ModelRenderer;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Services;
|
namespace Penumbra.Interop.Services;
|
||||||
|
|
||||||
public unsafe class ModelRenderer : IDisposable, IRequiredService
|
public unsafe class ModelRenderer : IDisposable, Luna.IRequiredService
|
||||||
{
|
{
|
||||||
public bool Ready { get; private set; }
|
public bool Ready { get; private set; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ using Dalamud.Game.ClientState.Objects.Types;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game;
|
using FFXIVClientStructs.FFXIV.Client.Game;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
using FFXIVClientStructs.FFXIV.Client.Game.Character;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Api;
|
using Penumbra.Api;
|
||||||
using Penumbra.Api.Enums;
|
using Penumbra.Api.Enums;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
|
|
@ -20,7 +19,7 @@ using Character = FFXIVClientStructs.FFXIV.Client.Game.Character.Character;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Services;
|
namespace Penumbra.Interop.Services;
|
||||||
|
|
||||||
public unsafe partial class RedrawService : IService
|
public unsafe partial class RedrawService : Luna.IService
|
||||||
{
|
{
|
||||||
public const int GPosePlayerIdx = 201;
|
public const int GPosePlayerIdx = 201;
|
||||||
public const int GPoseSlots = 42;
|
public const int GPoseSlots = 42;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Services;
|
namespace Penumbra.Interop.Services;
|
||||||
|
|
||||||
public unsafe class ResidentResourceManager : IService
|
public unsafe class ResidentResourceManager : Luna.IService
|
||||||
{
|
{
|
||||||
// A static pointer to the resident resource manager address.
|
// A static pointer to the resident resource manager address.
|
||||||
[Signature(Sigs.ResidentResourceManager, ScanType = ScanType.StaticAddress)]
|
[Signature(Sigs.ResidentResourceManager, ScanType = ScanType.StaticAddress)]
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Scheduler.Resource;
|
using FFXIVClientStructs.FFXIV.Client.System.Scheduler.Resource;
|
||||||
using Lumina.Excel.Sheets;
|
using Lumina.Excel.Sheets;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Communication;
|
using Penumbra.Communication;
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
|
|
@ -14,7 +13,7 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Services;
|
namespace Penumbra.Interop.Services;
|
||||||
|
|
||||||
public unsafe class SchedulerResourceManagementService : IService, IDisposable
|
public unsafe class SchedulerResourceManagementService : Luna.IService, IDisposable
|
||||||
{
|
{
|
||||||
private static readonly CiByteString TmbExtension = new(".tmb"u8, MetaDataComputation.All);
|
private static readonly CiByteString TmbExtension = new(".tmb"u8, MetaDataComputation.All);
|
||||||
private static readonly CiByteString FolderPrefix = new("chara/action/"u8, MetaDataComputation.All);
|
private static readonly CiByteString FolderPrefix = new("chara/action/"u8, MetaDataComputation.All);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Dalamud.Bindings.ImGui;
|
using Dalamud.Bindings.ImGui;
|
||||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
||||||
using OtterGui.Services;
|
|
||||||
using SharpDX.Direct3D;
|
using SharpDX.Direct3D;
|
||||||
using SharpDX.Direct3D11;
|
using SharpDX.Direct3D11;
|
||||||
|
|
||||||
|
|
@ -9,7 +8,7 @@ namespace Penumbra.Interop.Services;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Creates ImGui handles over slices of array textures, and manages their lifetime.
|
/// Creates ImGui handles over slices of array textures, and manages their lifetime.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed unsafe class TextureArraySlicer : IUiService, IDisposable
|
public sealed unsafe class TextureArraySlicer : Luna.IUiService, IDisposable
|
||||||
{
|
{
|
||||||
private const uint InitialTimeToLive = 2;
|
private const uint InitialTimeToLive = 2;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using System.Collections.Frozen;
|
using System.Collections.Frozen;
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
using Penumbra.GameData.Files;
|
using Penumbra.GameData.Files;
|
||||||
|
|
||||||
namespace Penumbra.Interop.Hooks.Meta;
|
namespace Penumbra.Meta;
|
||||||
|
|
||||||
public sealed unsafe class AtchManager : IService
|
public sealed unsafe class AtchManager : Luna.IService
|
||||||
{
|
{
|
||||||
private static readonly IReadOnlyList<GenderRace> GenderRaces =
|
private static readonly IReadOnlyList<GenderRace> GenderRaces =
|
||||||
[
|
[
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
using Dalamud.Memory;
|
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using Dalamud.Utility.Signatures;
|
using Dalamud.Utility.Signatures;
|
||||||
using FFXIVClientStructs.FFXIV.Client.System.Memory;
|
using FFXIVClientStructs.FFXIV.Client.System.Memory;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData;
|
using Penumbra.GameData;
|
||||||
using Penumbra.Interop.Structs;
|
using Penumbra.Interop.Structs;
|
||||||
using Penumbra.String.Functions;
|
using Penumbra.String.Functions;
|
||||||
|
|
@ -42,7 +40,7 @@ public sealed class MarshalAllocator : IFileAllocator
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed unsafe class XivFileAllocator : IFileAllocator, IService
|
public sealed unsafe class XivFileAllocator : IFileAllocator, Luna.IService
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Allocate in the games space for file storage.
|
/// Allocate in the games space for file storage.
|
||||||
|
|
@ -73,7 +71,7 @@ public sealed unsafe class XivFileAllocator : IFileAllocator, IService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public sealed unsafe class XivDefaultAllocator : IFileAllocator, IService
|
public sealed unsafe class XivDefaultAllocator : IFileAllocator, Luna.IService
|
||||||
{
|
{
|
||||||
public T* Allocate<T>(int length, int alignment = 1) where T : unmanaged
|
public T* Allocate<T>(int length, int alignment = 1) where T : unmanaged
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Dalamud.Plugin.Services;
|
using Dalamud.Plugin.Services;
|
||||||
using OtterGui.Compression;
|
using OtterGui.Compression;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Manager;
|
using Penumbra.Collections.Manager;
|
||||||
using Penumbra.GameData.Data;
|
using Penumbra.GameData.Data;
|
||||||
|
|
@ -15,7 +14,7 @@ using ResidentResourceManager = Penumbra.Interop.Services.ResidentResourceManage
|
||||||
|
|
||||||
namespace Penumbra.Meta;
|
namespace Penumbra.Meta;
|
||||||
|
|
||||||
public class MetaFileManager : IService
|
public class MetaFileManager : Luna.IService
|
||||||
{
|
{
|
||||||
internal readonly Configuration Config;
|
internal readonly Configuration Config;
|
||||||
internal readonly CharacterUtility CharacterUtility;
|
internal readonly CharacterUtility CharacterUtility;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Collections;
|
using Penumbra.Collections;
|
||||||
using Penumbra.Collections.Cache;
|
using Penumbra.Collections.Cache;
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
|
|
@ -9,7 +8,7 @@ using Penumbra.Meta.Manipulations;
|
||||||
|
|
||||||
namespace Penumbra.Meta;
|
namespace Penumbra.Meta;
|
||||||
|
|
||||||
public unsafe class ShapeAttributeManager : IRequiredService, IDisposable
|
public unsafe class ShapeAttributeManager : Luna.IRequiredService, IDisposable
|
||||||
{
|
{
|
||||||
public const int NumSlots = 14;
|
public const int NumSlots = 14;
|
||||||
public const int ModelSlotSize = 18;
|
public const int ModelSlotSize = 18;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Classes;
|
using OtterGui.Classes;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Mods.Groups;
|
using Penumbra.Mods.Groups;
|
||||||
using Penumbra.Mods.Manager;
|
using Penumbra.Mods.Manager;
|
||||||
using Penumbra.Mods.SubMods;
|
using Penumbra.Mods.SubMods;
|
||||||
|
|
@ -8,7 +7,7 @@ using Penumbra.String.Classes;
|
||||||
|
|
||||||
namespace Penumbra.Mods.Editor;
|
namespace Penumbra.Mods.Editor;
|
||||||
|
|
||||||
public class DuplicateManager(ModManager modManager, SaveService saveService, Configuration config) : IService
|
public class DuplicateManager(ModManager modManager, SaveService saveService, Configuration config) : Luna.IService
|
||||||
{
|
{
|
||||||
private readonly SHA256 _hasher = SHA256.Create();
|
private readonly SHA256 _hasher = SHA256.Create();
|
||||||
private readonly List<(FullPath[] Paths, long Size, byte[] Hash)> _duplicates = [];
|
private readonly List<(FullPath[] Paths, long Size, byte[] Hash)> _duplicates = [];
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
using OtterGui.Compression;
|
using OtterGui.Compression;
|
||||||
using OtterGui.Extensions;
|
using OtterGui.Extensions;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.GameData.Enums;
|
using Penumbra.GameData.Enums;
|
||||||
using Penumbra.GameData.Files;
|
using Penumbra.GameData.Files;
|
||||||
|
|
||||||
namespace Penumbra.Mods.Editor;
|
namespace Penumbra.Mods.Editor;
|
||||||
|
|
||||||
public partial class MdlMaterialEditor(ModFileCollection files) : IService
|
public partial class MdlMaterialEditor(ModFileCollection files) : Luna.IService
|
||||||
{
|
{
|
||||||
[GeneratedRegex(@"/mt_c(?'RaceCode'\d{4})b0001_(?'Suffix'.*?)\.mtrl", RegexOptions.ExplicitCapture | RegexOptions.NonBacktracking)]
|
[GeneratedRegex(@"/mt_c(?'RaceCode'\d{4})b0001_(?'Suffix'.*?)\.mtrl", RegexOptions.ExplicitCapture | RegexOptions.NonBacktracking)]
|
||||||
private static partial Regex MaterialRegex();
|
private static partial Regex MaterialRegex();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using OtterGui.Compression;
|
using OtterGui.Compression;
|
||||||
using OtterGui.Services;
|
|
||||||
using Penumbra.Mods.Groups;
|
using Penumbra.Mods.Groups;
|
||||||
using Penumbra.Mods.SubMods;
|
using Penumbra.Mods.SubMods;
|
||||||
|
|
||||||
|
|
@ -14,7 +13,7 @@ public class ModEditor(
|
||||||
ModSwapEditor swapEditor,
|
ModSwapEditor swapEditor,
|
||||||
MdlMaterialEditor mdlMaterialEditor,
|
MdlMaterialEditor mdlMaterialEditor,
|
||||||
FileCompactor compactor)
|
FileCompactor compactor)
|
||||||
: IDisposable, IService
|
: IDisposable, Luna.IService
|
||||||
{
|
{
|
||||||
public readonly ModNormalizer ModNormalizer = modNormalizer;
|
public readonly ModNormalizer ModNormalizer = modNormalizer;
|
||||||
public readonly ModMetaEditor MetaEditor = metaEditor;
|
public readonly ModMetaEditor MetaEditor = metaEditor;
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue