From 1cb326070b8d53e4a53f682a112639bcd74aee37 Mon Sep 17 00:00:00 2001 From: cake Date: Sat, 6 Dec 2025 05:35:27 +0100 Subject: [PATCH] Added option to show green eye in pair list. --- .../Configurations/LightlessConfig.cs | 1 + .../Models/Obsolete/ServerStorageV0.cs | 29 ------------------- LightlessSync/UI/Components/DrawUserPair.cs | 22 ++++++++++---- LightlessSync/UI/DrawEntityFactory.cs | 1 + LightlessSync/UI/SettingsUi.cs | 15 +++++++--- 5 files changed, 30 insertions(+), 38 deletions(-) delete mode 100644 LightlessSync/LightlessConfiguration/Models/Obsolete/ServerStorageV0.cs diff --git a/LightlessSync/LightlessConfiguration/Configurations/LightlessConfig.cs b/LightlessSync/LightlessConfiguration/Configurations/LightlessConfig.cs index 0b448ad..c16b380 100644 --- a/LightlessSync/LightlessConfiguration/Configurations/LightlessConfig.cs +++ b/LightlessSync/LightlessConfiguration/Configurations/LightlessConfig.cs @@ -63,6 +63,7 @@ public class LightlessConfig : ILightlessConfiguration public bool ShowOnlineNotifications { get; set; } = false; public bool ShowOnlineNotificationsOnlyForIndividualPairs { get; set; } = true; public bool ShowOnlineNotificationsOnlyForNamedPairs { get; set; } = false; + public bool ShowVisiblePairsGreenEye { get; set; } = false; public bool ShowTransferBars { get; set; } = true; public bool ShowTransferWindow { get; set; } = false; public bool ShowPlayerLinesTransferWindow { get; set; } = true; diff --git a/LightlessSync/LightlessConfiguration/Models/Obsolete/ServerStorageV0.cs b/LightlessSync/LightlessConfiguration/Models/Obsolete/ServerStorageV0.cs deleted file mode 100644 index 0cb5f3e..0000000 --- a/LightlessSync/LightlessConfiguration/Models/Obsolete/ServerStorageV0.cs +++ /dev/null @@ -1,29 +0,0 @@ -namespace LightlessSync.LightlessConfiguration.Models.Obsolete; - -[Serializable] -[Obsolete("Deprecated, use ServerStorage")] -public class ServerStorageV0 -{ - public List Authentications { get; set; } = []; - public bool FullPause { get; set; } = false; - public Dictionary GidServerComments { get; set; } = new(StringComparer.Ordinal); - public HashSet OpenPairTags { get; set; } = new(StringComparer.Ordinal); - public Dictionary SecretKeys { get; set; } = []; - public HashSet ServerAvailablePairTags { get; set; } = new(StringComparer.Ordinal); - public string ServerName { get; set; } = string.Empty; - public string ServerUri { get; set; } = string.Empty; - public Dictionary UidServerComments { get; set; } = new(StringComparer.Ordinal); - public Dictionary> UidServerPairedUserTags { get; set; } = new(StringComparer.Ordinal); - - public ServerStorage ToV1() - { - return new ServerStorage() - { - ServerUri = ServerUri, - ServerName = ServerName, - Authentications = [.. Authentications], - FullPause = FullPause, - SecretKeys = SecretKeys.ToDictionary(p => p.Key, p => p.Value) - }; - } -} \ No newline at end of file diff --git a/LightlessSync/UI/Components/DrawUserPair.cs b/LightlessSync/UI/Components/DrawUserPair.cs index 877fe6d..96b9ea4 100644 --- a/LightlessSync/UI/Components/DrawUserPair.cs +++ b/LightlessSync/UI/Components/DrawUserPair.cs @@ -16,12 +16,8 @@ using LightlessSync.UI.Models; using LightlessSync.UI.Style; using LightlessSync.Utils; using LightlessSync.WebAPI; -using System; -using System.Collections.Generic; using System.Collections.Immutable; -using System.Linq; using System.Text; -using LightlessSync.UI; namespace LightlessSync.UI.Components; @@ -40,6 +36,7 @@ public class DrawUserPair private readonly ServerConfigurationManager _serverConfigurationManager; private readonly UiSharedService _uiSharedService; private readonly PlayerPerformanceConfigService _performanceConfigService; + private readonly LightlessConfigService _configService; private readonly CharaDataManager _charaDataManager; private readonly PairLedger _pairLedger; private float _menuWidth = -1; @@ -59,6 +56,7 @@ public class DrawUserPair ServerConfigurationManager serverConfigurationManager, UiSharedService uiSharedService, PlayerPerformanceConfigService performanceConfigService, + LightlessConfigService configService, CharaDataManager charaDataManager, PairLedger pairLedger) { @@ -75,6 +73,7 @@ public class DrawUserPair _serverConfigurationManager = serverConfigurationManager; _uiSharedService = uiSharedService; _performanceConfigService = performanceConfigService; + _configService = configService; _charaDataManager = charaDataManager; _pairLedger = pairLedger; } @@ -230,6 +229,11 @@ public class DrawUserPair private void DrawLeftSide() { ImGui.AlignTextToFramePadding(); + + if (_pair == null) + { + return; + } if (_pair.IsPaused) { @@ -246,7 +250,15 @@ public class DrawUserPair } else if (_pair.IsVisible) { - _uiSharedService.IconText(FontAwesomeIcon.Eye, UIColors.Get("LightlessBlue")); + if (_configService.Current.ShowVisiblePairsGreenEye) + { + _uiSharedService.IconText(FontAwesomeIcon.Eye, UIColors.Get("LightlessGreen")); + } + else + { + _uiSharedService.IconText(FontAwesomeIcon.Eye, UIColors.Get("LightlessBlue")); + } + if (ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenBlockedByActiveItem | ImGuiHoveredFlags.AllowWhenOverlapped | ImGuiHoveredFlags.AllowWhenDisabled)) { _mediator.Publish(new PairFocusCharacterMessage(_pair)); diff --git a/LightlessSync/UI/DrawEntityFactory.cs b/LightlessSync/UI/DrawEntityFactory.cs index 1ecf3f5..3c71f5c 100644 --- a/LightlessSync/UI/DrawEntityFactory.cs +++ b/LightlessSync/UI/DrawEntityFactory.cs @@ -161,6 +161,7 @@ public class DrawEntityFactory _serverConfigurationManager, _uiSharedService, _playerPerformanceConfigService, + _configService, _charaDataManager, _pairLedger); } diff --git a/LightlessSync/UI/SettingsUi.cs b/LightlessSync/UI/SettingsUi.cs index 8b79c53..d14e048 100644 --- a/LightlessSync/UI/SettingsUi.cs +++ b/LightlessSync/UI/SettingsUi.cs @@ -1,6 +1,6 @@ using Dalamud.Bindings.ImGui; -using Dalamud.Game.Text; using Dalamud.Game.ClientState.Objects.Enums; +using Dalamud.Game.Text; using Dalamud.Interface; using Dalamud.Interface.Colors; using Dalamud.Interface.Utility; @@ -19,6 +19,7 @@ using LightlessSync.PlayerData.Pairs; using LightlessSync.Services; using LightlessSync.Services.ActorTracking; using LightlessSync.Services.Mediator; +using LightlessSync.Services.PairProcessing; using LightlessSync.Services.ServerConfiguration; using LightlessSync.UI.Services; using LightlessSync.UI.Style; @@ -38,7 +39,7 @@ using System.Net.Http.Json; using System.Numerics; using System.Text; using System.Text.Json; -using LightlessSync.Services.PairProcessing; +using static Penumbra.GameData.Files.ShpkFile; namespace LightlessSync.UI; @@ -1712,7 +1713,7 @@ public class SettingsUi : WindowMediatorSubscriberBase var groupedSyncshells = _configService.Current.ShowGroupedSyncshellsInAll; var groupInVisible = _configService.Current.ShowSyncshellUsersInVisible; var syncshellOfflineSeparate = _configService.Current.ShowSyncshellOfflineUsersSeparately; - + var greenVisiblePair = _configService.Current.ShowVisiblePairsGreenEye; using (var behaviorTree = BeginGeneralTree("Behavior", UIColors.Get("LightlessPurple"))) { @@ -2205,13 +2206,19 @@ public class SettingsUi : WindowMediatorSubscriberBase _uiShared.DrawHelpText("If you set a note for a player it will be shown instead of the player name"); if (!_configService.Current.ShowCharacterNameInsteadOfNotesForVisible) ImGui.EndDisabled(); ImGui.Unindent(); - + if (ImGui.Checkbox("Set visible pairs as focus targets when clicking the eye", ref useFocusTarget)) { _configService.Current.UseFocusTarget = useFocusTarget; _configService.Save(); } + if (ImGui.Checkbox("Set visible pairs icon to an green color", ref greenVisiblePair)) + { + _configService.Current.ShowVisiblePairsGreenEye = greenVisiblePair; + _configService.Save(); + } + UiSharedService.ColoredSeparator(UIColors.Get("LightlessPurple"), 1.5f); ImGui.TreePop(); pairListTree.MarkContentEnd();