From 40bb7567dd0530875f49ced0faa7a0532282e604 Mon Sep 17 00:00:00 2001 From: Actions User Date: Sat, 29 Jan 2022 18:15:24 +0000 Subject: [PATCH 1/3] [CI] Updating repo.json for refs/tags/0.4.7.2 --- repo.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/repo.json b/repo.json index c962327e..aaeef754 100644 --- a/repo.json +++ b/repo.json @@ -4,8 +4,8 @@ "Name": "Penumbra", "Description": "Runtime mod loader and manager.", "InternalName": "Penumbra", - "AssemblyVersion": "0.4.7.1", - "TestingAssemblyVersion": "0.4.7.1", + "AssemblyVersion": "0.4.7.2", + "TestingAssemblyVersion": "0.4.7.2", "RepoUrl": "https://github.com/xivdev/Penumbra", "ApplicableVersion": "any", "DalamudApiLevel": 5, @@ -14,9 +14,9 @@ "DownloadCount": 0, "LastUpdate": 0, "LoadPriority": 69420, - "DownloadLinkInstall": "https://github.com/xivdev/Penumbra/releases/download/0.4.7.1/Penumbra.zip", - "DownloadLinkTesting": "https://github.com/xivdev/Penumbra/releases/download/0.4.7.1/Penumbra.zip", - "DownloadLinkUpdate": "https://github.com/xivdev/Penumbra/releases/download/0.4.7.1/Penumbra.zip", + "DownloadLinkInstall": "https://github.com/xivdev/Penumbra/releases/download/0.4.7.2/Penumbra.zip", + "DownloadLinkTesting": "https://github.com/xivdev/Penumbra/releases/download/0.4.7.2/Penumbra.zip", + "DownloadLinkUpdate": "https://github.com/xivdev/Penumbra/releases/download/0.4.7.2/Penumbra.zip", "IconUrl": "https://raw.githubusercontent.com/xivdev/Penumbra/master/images/icon.png" } ] From b6817c47edf95e5f1df5f173f808ef373f71382a Mon Sep 17 00:00:00 2001 From: goaaats Date: Mon, 31 Jan 2022 22:08:33 +0100 Subject: [PATCH 2/3] Replace manage mods button with title screen menu --- Penumbra/Dalamud.cs | 66 ++++++++++++++-------------- Penumbra/Penumbra.csproj | 10 ++++- Penumbra/UI/LaunchButton.cs | 59 ++++++++++--------------- Penumbra/UI/MenuTabs/TabSettings.cs | 16 ------- Penumbra/UI/SettingsInterface.cs | 2 +- Penumbra/tsmLogo.png | Bin 0 -> 7563 bytes 6 files changed, 65 insertions(+), 88 deletions(-) create mode 100644 Penumbra/tsmLogo.png diff --git a/Penumbra/Dalamud.cs b/Penumbra/Dalamud.cs index eea4d05a..d914765e 100644 --- a/Penumbra/Dalamud.cs +++ b/Penumbra/Dalamud.cs @@ -1,32 +1,34 @@ -using Dalamud.Data; -using Dalamud.Game; -using Dalamud.Game.ClientState; -using Dalamud.Game.ClientState.Conditions; -using Dalamud.Game.ClientState.Objects; -using Dalamud.Game.Command; -using Dalamud.Game.Gui; -using Dalamud.IoC; -using Dalamud.Plugin; -// ReSharper disable AutoPropertyCanBeMadeGetOnly.Local - -namespace Penumbra -{ - public class Dalamud - { - public static void Initialize(DalamudPluginInterface pluginInterface) - => pluginInterface.Create(); - - // @formatter:off - [PluginService][RequiredVersion("1.0")] public static DalamudPluginInterface PluginInterface { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static CommandManager Commands { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static SigScanner SigScanner { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static DataManager GameData { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static ClientState ClientState { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static ChatGui Chat { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static Framework Framework { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static Condition Conditions { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static TargetManager Targets { get; private set; } = null!; - [PluginService][RequiredVersion("1.0")] public static ObjectTable Objects { get; private set; } = null!; - // @formatter:on - } -} +using Dalamud.Data; +using Dalamud.Game; +using Dalamud.Game.ClientState; +using Dalamud.Game.ClientState.Conditions; +using Dalamud.Game.ClientState.Objects; +using Dalamud.Game.Command; +using Dalamud.Game.Gui; +using Dalamud.Interface; +using Dalamud.IoC; +using Dalamud.Plugin; +// ReSharper disable AutoPropertyCanBeMadeGetOnly.Local + +namespace Penumbra +{ + public class Dalamud + { + public static void Initialize(DalamudPluginInterface pluginInterface) + => pluginInterface.Create(); + + // @formatter:off + [PluginService][RequiredVersion("1.0")] public static DalamudPluginInterface PluginInterface { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static CommandManager Commands { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static SigScanner SigScanner { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static DataManager GameData { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static ClientState ClientState { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static ChatGui Chat { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static Framework Framework { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static Condition Conditions { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static TargetManager Targets { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static ObjectTable Objects { get; private set; } = null!; + [PluginService][RequiredVersion("1.0")] public static TitleScreenMenu TitleScreenMenu { get; private set; } = null!; + // @formatter:on + } +} \ No newline at end of file diff --git a/Penumbra/Penumbra.csproj b/Penumbra/Penumbra.csproj index 7b6e54b8..347b9ddc 100644 --- a/Penumbra/Penumbra.csproj +++ b/Penumbra/Penumbra.csproj @@ -29,6 +29,12 @@ $(MSBuildWarningsAsMessages);MSB3277 + + + PreserveNewest + + + $(AppData)\XIVLauncher\addon\Hooks\dev\Dalamud.dll @@ -62,7 +68,7 @@ - + @@ -72,4 +78,4 @@ Always - + \ No newline at end of file diff --git a/Penumbra/UI/LaunchButton.cs b/Penumbra/UI/LaunchButton.cs index 18ca07bb..1540fd55 100644 --- a/Penumbra/UI/LaunchButton.cs +++ b/Penumbra/UI/LaunchButton.cs @@ -1,59 +1,44 @@ +using System; +using System.IO; using Dalamud.Interface; using ImGuiNET; +using ImGuiScene; using Penumbra.UI.Custom; namespace Penumbra.UI; public partial class SettingsInterface { - private class ManageModsButton + private class ManageModsButton : IDisposable { // magic numbers - private const int Width = 200; - private const int Height = 45; - private const string MenuButtonsName = "Penumbra Menu Buttons"; private const string MenuButtonLabel = "Manage Mods"; - private const ImGuiWindowFlags ButtonFlags = - ImGuiWindowFlags.AlwaysAutoResize - | ImGuiWindowFlags.NoBackground - | ImGuiWindowFlags.NoDecoration - | ImGuiWindowFlags.NoMove - | ImGuiWindowFlags.NoScrollbar - | ImGuiWindowFlags.NoResize - | ImGuiWindowFlags.NoFocusOnAppearing - | ImGuiWindowFlags.NoSavedSettings; - - private readonly SettingsInterface _base; + private readonly SettingsInterface _base; + private readonly TextureWrap _icon; + private readonly TitleScreenMenu.TitleScreenMenuEntry _entry; public ManageModsButton( SettingsInterface ui ) - => _base = ui; - - internal bool ForceDraw = false; - - public void Draw() { - if( !ForceDraw && ( Dalamud.Conditions.Any() || _base._menu.Visible ) ) - { - return; - } + _base = ui; - using var color = ImGuiRaii.PushColor( ImGuiCol.Button, 0xFF0000C8, ForceDraw ); + _icon = Dalamud.PluginInterface.UiBuilder.LoadImage( Path.Combine( Dalamud.PluginInterface.AssemblyLocation.DirectoryName!, + "tsmLogo.png" ) ); + if( _icon == null ) + throw new Exception( "Could not load title screen icon." ); - var ss = ImGui.GetMainViewport().Size + ImGui.GetMainViewport().Pos; - ImGui.SetNextWindowViewport( ImGui.GetMainViewport().ID ); + _entry = Dalamud.TitleScreenMenu.AddEntry( MenuButtonLabel, _icon, OnTriggered ); + } - var windowSize = ImGuiHelpers.ScaledVector2( Width, Height ); + private void OnTriggered() + { + _base.FlipVisibility(); + } - ImGui.SetNextWindowPos( ss - windowSize - Penumbra.Config.ManageModsButtonOffset * ImGuiHelpers.GlobalScale, ImGuiCond.Always ); - - if( ImGui.Begin( MenuButtonsName, ButtonFlags ) - && ImGui.Button( MenuButtonLabel, windowSize ) ) - { - _base.FlipVisibility(); - } - - ImGui.End(); + public void Dispose() + { + _icon.Dispose(); + Dalamud.TitleScreenMenu.RemoveEntry( _entry ); } } } \ No newline at end of file diff --git a/Penumbra/UI/MenuTabs/TabSettings.cs b/Penumbra/UI/MenuTabs/TabSettings.cs index b82c14c6..50da80e2 100644 --- a/Penumbra/UI/MenuTabs/TabSettings.cs +++ b/Penumbra/UI/MenuTabs/TabSettings.cs @@ -150,21 +150,6 @@ public partial class SettingsInterface + "This is required to enable manually editing any mod information." ); } - private void DrawManageModsButtonOffsetButton() - { - var manageModsButtonOffset = _config.ManageModsButtonOffset; - ImGui.SetNextItemWidth( 150 * ImGuiHelpers.GlobalScale ); - if( ImGui.DragFloat2( "\"Manage Mods\"-Button Offset", ref manageModsButtonOffset, 1f ) ) - { - _config.ManageModsButtonOffset = manageModsButtonOffset; - _configChanged = true; - } - - _base._manageModsButton.ForceDraw = ImGui.IsItemActive(); - ImGuiComponents.HelpMarker( - "Shift the \"Manage Mods\"-Button displayed in the login-lobby by the given amount of pixels in X/Y-direction." ); - } - private void DrawSortFoldersFirstBox() { var foldersFirst = _config.SortFoldersFirst; @@ -360,7 +345,6 @@ public partial class SettingsInterface ImGuiCustom.VerticalDistance( DefaultVerticalSpace ); DrawScaleModSelectorBox(); DrawSortFoldersFirstBox(); - DrawManageModsButtonOffsetButton(); DrawShowAdvancedBox(); if( _config.ShowAdvanced ) diff --git a/Penumbra/UI/SettingsInterface.cs b/Penumbra/UI/SettingsInterface.cs index 46ace4b4..3a21ee22 100644 --- a/Penumbra/UI/SettingsInterface.cs +++ b/Penumbra/UI/SettingsInterface.cs @@ -34,6 +34,7 @@ namespace Penumbra.UI public void Dispose() { + _manageModsButton.Dispose(); _menu.InstalledTab.Selector.Cache.Dispose(); Dalamud.PluginInterface.UiBuilder.Draw -= Draw; Dalamud.PluginInterface.UiBuilder.OpenConfigUi -= OpenConfig; @@ -51,7 +52,6 @@ namespace Penumbra.UI public void Draw() { _menuBar.Draw(); - _manageModsButton.Draw(); _menu.Draw(); } diff --git a/Penumbra/tsmLogo.png b/Penumbra/tsmLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..caae3825ef505c8760025d2cbb1c172c3176039b GIT binary patch literal 7563 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 literal 0 HcmV?d00001 From 685772e6acd85fb908f8a025550482c25ab895f6 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Mon, 31 Jan 2022 22:38:28 +0100 Subject: [PATCH 3/3] Slight modifications. --- Penumbra/Configuration.cs | 1 - Penumbra/Penumbra.cs | 8 ++++---- Penumbra/UI/LaunchButton.cs | 26 ++++++++++++-------------- 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/Penumbra/Configuration.cs b/Penumbra/Configuration.cs index 559ff2df..9c6142a8 100644 --- a/Penumbra/Configuration.cs +++ b/Penumbra/Configuration.cs @@ -39,7 +39,6 @@ namespace Penumbra public Dictionary< string, string > ModSortOrder { get; set; } = new(); public bool InvertModListOrder { internal get; set; } - public Vector2 ManageModsButtonOffset { get; set; } = 50 * Vector2.One; public static Configuration Load() { diff --git a/Penumbra/Penumbra.cs b/Penumbra/Penumbra.cs index 4f9e7715..7b9c9bb5 100644 --- a/Penumbra/Penumbra.cs +++ b/Penumbra/Penumbra.cs @@ -70,6 +70,10 @@ public class Penumbra : IDalamudPlugin gameUtils.ReloadResidentResources(); + Api = new PenumbraApi( this ); + Ipc = new PenumbraIpc( pluginInterface, Api ); + SubscribeItemLinks(); + SettingsInterface = new SettingsInterface( this ); if( Config.EnableHttpApi ) @@ -87,10 +91,6 @@ public class Penumbra : IDalamudPlugin PluginLog.Debug( "Triggered Redraw of {Player}.", p.Name ); ObjectReloader.RedrawObject( p, RedrawType.OnlyWithSettings ); }; - - Api = new PenumbraApi( this ); - SubscribeItemLinks(); - Ipc = new PenumbraIpc( pluginInterface, Api ); } public bool Enable() diff --git a/Penumbra/UI/LaunchButton.cs b/Penumbra/UI/LaunchButton.cs index 1540fd55..f78c9e89 100644 --- a/Penumbra/UI/LaunchButton.cs +++ b/Penumbra/UI/LaunchButton.cs @@ -1,9 +1,7 @@ using System; using System.IO; using Dalamud.Interface; -using ImGuiNET; using ImGuiScene; -using Penumbra.UI.Custom; namespace Penumbra.UI; @@ -11,12 +9,9 @@ public partial class SettingsInterface { private class ManageModsButton : IDisposable { - // magic numbers - private const string MenuButtonLabel = "Manage Mods"; - - private readonly SettingsInterface _base; - private readonly TextureWrap _icon; - private readonly TitleScreenMenu.TitleScreenMenuEntry _entry; + private readonly SettingsInterface _base; + private readonly TextureWrap? _icon; + private readonly TitleScreenMenu.TitleScreenMenuEntry? _entry; public ManageModsButton( SettingsInterface ui ) { @@ -24,10 +19,10 @@ public partial class SettingsInterface _icon = Dalamud.PluginInterface.UiBuilder.LoadImage( Path.Combine( Dalamud.PluginInterface.AssemblyLocation.DirectoryName!, "tsmLogo.png" ) ); - if( _icon == null ) - throw new Exception( "Could not load title screen icon." ); - - _entry = Dalamud.TitleScreenMenu.AddEntry( MenuButtonLabel, _icon, OnTriggered ); + if( _icon != null ) + { + _entry = Dalamud.TitleScreenMenu.AddEntry( "Manage Penumbra", _icon, OnTriggered ); + } } private void OnTriggered() @@ -37,8 +32,11 @@ public partial class SettingsInterface public void Dispose() { - _icon.Dispose(); - Dalamud.TitleScreenMenu.RemoveEntry( _entry ); + _icon?.Dispose(); + if( _entry != null ) + { + Dalamud.TitleScreenMenu.RemoveEntry( _entry ); + } } } } \ No newline at end of file