diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1a61439e..7901a653 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,15 +10,13 @@ jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v2 with: submodules: recursive - name: Setup .NET - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@v1 with: - dotnet-version: | - 10.x.x - 9.x.x + dotnet-version: '9.x.x' - name: Restore dependencies run: dotnet restore - name: Download Dalamud diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c72b4800..377919b2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,15 +9,13 @@ jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v2 with: submodules: recursive - name: Setup .NET - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@v1 with: - dotnet-version: | - 10.x.x - 9.x.x + dotnet-version: '9.x.x' - name: Restore dependencies run: dotnet restore - name: Download Dalamud diff --git a/.github/workflows/test_release.yml b/.github/workflows/test_release.yml index c6b4e459..2bece720 100644 --- a/.github/workflows/test_release.yml +++ b/.github/workflows/test_release.yml @@ -9,15 +9,13 @@ jobs: build: runs-on: windows-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v2 with: submodules: recursive - name: Setup .NET - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@v1 with: - dotnet-version: | - 10.x.x - 9.x.x + dotnet-version: '9.x.x' - name: Restore dependencies run: dotnet restore - name: Download Dalamud diff --git a/OtterGui b/OtterGui index ff1e6543..6f323645 160000 --- a/OtterGui +++ b/OtterGui @@ -1 +1 @@ -Subproject commit ff1e6543845e3b8c53a5f8b240bc38faffb1b3bf +Subproject commit 6f3236453b1edfaa25c8edcc8b39a9d9b2fc18ac diff --git a/Penumbra.Api b/Penumbra.Api index 1750c41b..e4934ccc 160000 --- a/Penumbra.Api +++ b/Penumbra.Api @@ -1 +1 @@ -Subproject commit 1750c41b53e1000c99a7fb9d8a0f082aef639a41 +Subproject commit e4934ccca0379f22dadf989ab2d34f30b3c5c7ea diff --git a/Penumbra.CrashHandler/Penumbra.CrashHandler.csproj b/Penumbra.CrashHandler/Penumbra.CrashHandler.csproj index e07bb745..4c864d39 100644 --- a/Penumbra.CrashHandler/Penumbra.CrashHandler.csproj +++ b/Penumbra.CrashHandler/Penumbra.CrashHandler.csproj @@ -1,4 +1,4 @@ - + Exe diff --git a/Penumbra.GameData b/Penumbra.GameData index 0e973ed6..3d4d8510 160000 --- a/Penumbra.GameData +++ b/Penumbra.GameData @@ -1 +1 @@ -Subproject commit 0e973ed6eace6afd31cd298f8c58f76fa8d5ef60 +Subproject commit 3d4d8510f832dfd95d7069b86e6b3da4ec612558 diff --git a/Penumbra.String b/Penumbra.String index 9bd016fb..0315144a 160000 --- a/Penumbra.String +++ b/Penumbra.String @@ -1 +1 @@ -Subproject commit 9bd016fbef5fb2de467dd42165267fdd93cd9592 +Subproject commit 0315144ab5614c11911e2a4dddf436fb18c5d7e3 diff --git a/Penumbra/Api/Api/UiApi.cs b/Penumbra/Api/Api/UiApi.cs index 6fb116f3..70f018bb 100644 --- a/Penumbra/Api/Api/UiApi.cs +++ b/Penumbra/Api/Api/UiApi.cs @@ -5,24 +5,20 @@ using Penumbra.GameData.Data; using Penumbra.Mods.Manager; using Penumbra.Services; using Penumbra.UI; -using Penumbra.UI.Integration; -using Penumbra.UI.Tabs; namespace Penumbra.Api.Api; public class UiApi : IPenumbraApiUi, IApiService, IDisposable { - private readonly CommunicatorService _communicator; - private readonly ConfigWindow _configWindow; - private readonly ModManager _modManager; - private readonly IntegrationSettingsRegistry _integrationSettings; + private readonly CommunicatorService _communicator; + private readonly ConfigWindow _configWindow; + private readonly ModManager _modManager; - public UiApi(CommunicatorService communicator, ConfigWindow configWindow, ModManager modManager, IntegrationSettingsRegistry integrationSettings) + public UiApi(CommunicatorService communicator, ConfigWindow configWindow, ModManager modManager) { - _communicator = communicator; - _configWindow = configWindow; - _modManager = modManager; - _integrationSettings = integrationSettings; + _communicator = communicator; + _configWindow = configWindow; + _modManager = modManager; _communicator.ChangedItemHover.Subscribe(OnChangedItemHover, ChangedItemHover.Priority.Default); _communicator.ChangedItemClick.Subscribe(OnChangedItemClick, ChangedItemClick.Priority.Default); } @@ -85,6 +81,12 @@ public class UiApi : IPenumbraApiUi, IApiService, IDisposable public void CloseMainWindow() => _configWindow.IsOpen = false; + public PenumbraApiEc RegisterSettingsSection(Action draw) + => throw new NotImplementedException(); + + public PenumbraApiEc UnregisterSettingsSection(Action draw) + => throw new NotImplementedException(); + private void OnChangedItemClick(MouseButton button, IIdentifiedObjectData data) { if (ChangedItemClicked == null) @@ -102,12 +104,4 @@ public class UiApi : IPenumbraApiUi, IApiService, IDisposable var (type, id) = data.ToApiObject(); ChangedItemTooltip.Invoke(type, id); } - - public PenumbraApiEc RegisterSettingsSection(Action draw) - => _integrationSettings.RegisterSection(draw); - - public PenumbraApiEc UnregisterSettingsSection(Action draw) - => _integrationSettings.UnregisterSection(draw) - ? PenumbraApiEc.Success - : PenumbraApiEc.NothingChanged; } diff --git a/Penumbra/Api/IpcProviders.cs b/Penumbra/Api/IpcProviders.cs index 7cbe29f6..fdacc73b 100644 --- a/Penumbra/Api/IpcProviders.cs +++ b/Penumbra/Api/IpcProviders.cs @@ -133,8 +133,6 @@ public sealed class IpcProviders : IDisposable, IApiService IpcSubscribers.PostSettingsDraw.Provider(pi, api.Ui), IpcSubscribers.OpenMainWindow.Provider(pi, api.Ui), IpcSubscribers.CloseMainWindow.Provider(pi, api.Ui), - IpcSubscribers.RegisterSettingsSection.Provider(pi, api.Ui), - IpcSubscribers.UnregisterSettingsSection.Provider(pi, api.Ui), ]; if (_characterUtility.Ready) _initializedProvider.Invoke(); diff --git a/Penumbra/Interop/Services/TextureArraySlicer.cs b/Penumbra/Interop/Services/TextureArraySlicer.cs index 3cd57a33..7b873f26 100644 --- a/Penumbra/Interop/Services/TextureArraySlicer.cs +++ b/Penumbra/Interop/Services/TextureArraySlicer.cs @@ -48,7 +48,7 @@ public sealed unsafe class TextureArraySlicer : IUiService, IDisposable break; case D3D_SRV_DIMENSION.D3D11_SRV_DIMENSION_TEXTURE1DARRAY: description.Texture1DArray.FirstArraySlice = sliceIndex; - description.Texture1DArray.ArraySize = 1; + description.Texture2DArray.ArraySize = 1; break; case D3D_SRV_DIMENSION.D3D11_SRV_DIMENSION_TEXTURE2DARRAY: description.Texture2DArray.FirstArraySlice = sliceIndex; diff --git a/Penumbra/Penumbra.csproj b/Penumbra/Penumbra.csproj index f9e33219..43f853f3 100644 --- a/Penumbra/Penumbra.csproj +++ b/Penumbra/Penumbra.csproj @@ -1,4 +1,4 @@ - + Penumbra absolute gangstas diff --git a/Penumbra/Penumbra.json b/Penumbra/Penumbra.json index 975c5bb3..32032282 100644 --- a/Penumbra/Penumbra.json +++ b/Penumbra/Penumbra.json @@ -8,7 +8,7 @@ "RepoUrl": "https://github.com/xivdev/Penumbra", "ApplicableVersion": "any", "Tags": [ "modding" ], - "DalamudApiLevel": 14, + "DalamudApiLevel": 13, "LoadPriority": 69420, "LoadRequiredState": 2, "LoadSync": true, diff --git a/Penumbra/UI/Integration/IntegrationSettingsRegistry.cs b/Penumbra/UI/Integration/IntegrationSettingsRegistry.cs deleted file mode 100644 index 2d3da488..00000000 --- a/Penumbra/UI/Integration/IntegrationSettingsRegistry.cs +++ /dev/null @@ -1,115 +0,0 @@ -using Dalamud.Plugin; -using OtterGui.Services; -using OtterGui.Text; -using Penumbra.Api.Enums; - -namespace Penumbra.UI.Integration; - -public sealed class IntegrationSettingsRegistry : IService, IDisposable -{ - private readonly IDalamudPluginInterface _pluginInterface; - - private readonly List<(string InternalName, string Name, Action Draw)> _sections = []; - - private bool _disposed = false; - - public IntegrationSettingsRegistry(IDalamudPluginInterface pluginInterface) - { - _pluginInterface = pluginInterface; - - _pluginInterface.ActivePluginsChanged += OnActivePluginsChanged; - } - - public void Dispose() - { - _disposed = true; - - _pluginInterface.ActivePluginsChanged -= OnActivePluginsChanged; - - _sections.Clear(); - } - - public void Draw() - { - foreach (var (internalName, name, draw) in _sections) - { - if (!ImUtf8.CollapsingHeader($"Integration with {name}###IntegrationSettingsHeader.{internalName}")) - continue; - - using var id = ImUtf8.PushId($"IntegrationSettings.{internalName}"); - try - { - draw(); - } - catch (Exception e) - { - Penumbra.Log.Error($"Error while drawing {internalName} integration settings: {e}"); - } - } - } - - public PenumbraApiEc RegisterSection(Action draw) - { - if (_disposed) - return PenumbraApiEc.SystemDisposed; - - var plugin = GetPlugin(draw); - if (plugin is null) - return PenumbraApiEc.InvalidArgument; - - var section = (plugin.InternalName, plugin.Name, draw); - - var index = FindSectionIndex(plugin.InternalName); - if (index >= 0) - { - if (_sections[index] == section) - return PenumbraApiEc.NothingChanged; - _sections[index] = section; - } - else - _sections.Add(section); - _sections.Sort((lhs, rhs) => string.Compare(lhs.Name, rhs.Name, StringComparison.CurrentCultureIgnoreCase)); - - return PenumbraApiEc.Success; - } - - public bool UnregisterSection(Action draw) - { - var index = FindSectionIndex(draw); - if (index < 0) - return false; - - _sections.RemoveAt(index); - return true; - } - - private void OnActivePluginsChanged(IActivePluginsChangedEventArgs args) - { - if (args.Kind is PluginListInvalidationKind.Loaded) - return; - - foreach (var internalName in args.AffectedInternalNames) - { - var index = FindSectionIndex(internalName); - if (index >= 0 && GetPlugin(_sections[index].Draw) is null) - { - _sections.RemoveAt(index); - Penumbra.Log.Warning($"Removed stale integration setting section of {internalName} (reason: {args.Kind})"); - } - } - } - - private IExposedPlugin? GetPlugin(Delegate @delegate) - => @delegate.Method.DeclaringType - switch - { - null => null, - var type => _pluginInterface.GetPlugin(type.Assembly), - }; - - private int FindSectionIndex(string internalName) - => _sections.FindIndex(section => section.InternalName.Equals(internalName, StringComparison.Ordinal)); - - private int FindSectionIndex(Action draw) - => _sections.FindIndex(section => section.Draw == draw); -} diff --git a/Penumbra/UI/Tabs/SettingsTab.cs b/Penumbra/UI/Tabs/SettingsTab.cs index 09c7c58d..86c01cb2 100644 --- a/Penumbra/UI/Tabs/SettingsTab.cs +++ b/Penumbra/UI/Tabs/SettingsTab.cs @@ -20,7 +20,6 @@ using Penumbra.Interop.Services; using Penumbra.Mods.Manager; using Penumbra.Services; using Penumbra.UI.Classes; -using Penumbra.UI.Integration; using Penumbra.UI.ModsTab; namespace Penumbra.UI.Tabs; @@ -56,7 +55,6 @@ public class SettingsTab : ITab, IUiService private readonly CleanupService _cleanupService; private readonly AttributeHook _attributeHook; private readonly PcpService _pcpService; - private readonly IntegrationSettingsRegistry _integrationSettings; private int _minimumX = int.MaxValue; private int _minimumY = int.MaxValue; @@ -73,7 +71,7 @@ public class SettingsTab : ITab, IUiService DalamudSubstitutionProvider dalamudSubstitutionProvider, FileCompactor compactor, DalamudConfigService dalamudConfig, IDataManager gameData, PredefinedTagManager predefinedTagConfig, CrashHandlerService crashService, MigrationSectionDrawer migrationDrawer, CollectionAutoSelector autoSelector, CleanupService cleanupService, - AttributeHook attributeHook, PcpService pcpService, IntegrationSettingsRegistry integrationSettings) + AttributeHook attributeHook, PcpService pcpService) { _pluginInterface = pluginInterface; _config = config; @@ -101,7 +99,6 @@ public class SettingsTab : ITab, IUiService _cleanupService = cleanupService; _attributeHook = attributeHook; _pcpService = pcpService; - _integrationSettings = integrationSettings; } public void DrawHeader() @@ -132,7 +129,6 @@ public class SettingsTab : ITab, IUiService DrawColorSettings(); DrawPredefinedTagsSection(); DrawAdvancedSettings(); - _integrationSettings.Draw(); DrawSupportButtons(); } @@ -1137,7 +1133,7 @@ public class SettingsTab : ITab, IUiService } #endregion - + /// Draw the support button group on the right-hand side of the window. private void DrawSupportButtons() { diff --git a/repo.json b/repo.json index 611de678..7ddffd7c 100644 --- a/repo.json +++ b/repo.json @@ -5,12 +5,12 @@ "Punchline": "Runtime mod loader and manager.", "Description": "Runtime mod loader and manager.", "InternalName": "Penumbra", - "AssemblyVersion": "1.5.1.9", - "TestingAssemblyVersion": "1.5.1.9", + "AssemblyVersion": "1.5.1.8", + "TestingAssemblyVersion": "1.5.1.8", "RepoUrl": "https://github.com/xivdev/Penumbra", "ApplicableVersion": "any", - "DalamudApiLevel": 14, - "TestingDalamudApiLevel": 14, + "DalamudApiLevel": 13, + "TestingDalamudApiLevel": 13, "IsHide": "False", "IsTestingExclusive": "False", "DownloadCount": 0, @@ -18,9 +18,9 @@ "LoadPriority": 69420, "LoadRequiredState": 2, "LoadSync": true, - "DownloadLinkInstall": "https://github.com/xivdev/Penumbra/releases/download/1.5.1.9/Penumbra.zip", - "DownloadLinkTesting": "https://github.com/xivdev/Penumbra/releases/download/1.5.1.9/Penumbra.zip", - "DownloadLinkUpdate": "https://github.com/xivdev/Penumbra/releases/download/1.5.1.9/Penumbra.zip", + "DownloadLinkInstall": "https://github.com/xivdev/Penumbra/releases/download/1.5.1.8/Penumbra.zip", + "DownloadLinkTesting": "https://github.com/xivdev/Penumbra/releases/download/1.5.1.8/Penumbra.zip", + "DownloadLinkUpdate": "https://github.com/xivdev/Penumbra/releases/download/1.5.1.8/Penumbra.zip", "IconUrl": "https://raw.githubusercontent.com/xivdev/Penumbra/master/images/icon.png" } ]