diff --git a/Resources/downloadList.json b/Resources/downloadList.json index c9384a524..65e5daf8b 100644 --- a/Resources/downloadList.json +++ b/Resources/downloadList.json @@ -1,5 +1,6 @@ [ "ArchiDog1998|FFXIVRotations|DefaultRotations", + "ArchiDog1998|FFXIVRotations|SupportersRotations", "IncognitoWater|IncognitoWaterRotations|IcWaRotations", "thunderebolt|BoltsRotations|BoltsRotations", "BrakusTapus|KirboRotations|KirboRotations" diff --git a/RotationSolver.Basic/Configuration/Configs.cs b/RotationSolver.Basic/Configuration/Configs.cs index 3fe9be93f..c927ae425 100644 --- a/RotationSolver.Basic/Configuration/Configs.cs +++ b/RotationSolver.Basic/Configuration/Configs.cs @@ -255,7 +255,7 @@ public enum PluginConfigBool : byte [Default(true)] ChooseAttackMark, [Default(false)] CanAttackMarkAOE, [Default(true)] FilterStopMark, - [Default(true)] ShowHostiles, + [Default(true)] ShowHostilesIcons, [Default(true)] TeachingMode, [Default(true)] UseOverlayWindow, @@ -321,6 +321,7 @@ public enum PluginConfigBool : byte [Default(false)] AutoOpenChest, [Default(true)] AutoCloseChestWindow, + [Default(true)] ShowStateIcon, [Default(true)] ShowBeneficialPositions, [Default(false)] HideWarning, } diff --git a/RotationSolver/Localization/ConfigTranslation.cs b/RotationSolver/Localization/ConfigTranslation.cs index 678a4a4d7..9e68f88b9 100644 --- a/RotationSolver/Localization/ConfigTranslation.cs +++ b/RotationSolver/Localization/ConfigTranslation.cs @@ -79,7 +79,7 @@ internal static class ConfigTranslation PluginConfigBool.ShowControlWindow => LocalizationManager.RightLang.ConfigWindow_Control_ShowControlWindow, PluginConfigBool.IsControlWindowLock => LocalizationManager.RightLang.ConfigWindow_Control_IsInfoWindowNoMove, PluginConfigBool.ShowBeneficialPositions => LocalizationManager.RightLang.ConfigWindow_UI_ShowBeneficialPosition, - PluginConfigBool.ShowHostiles => LocalizationManager.RightLang.ConfigWindow_UI_ShowHostiles, + PluginConfigBool.ShowHostilesIcons => LocalizationManager.RightLang.ConfigWindow_UI_ShowHostiles, // auto PluginConfigBool.UseAOEAction => LocalizationManager.RightLang.ConfigWindow_Param_UseAOEAction, @@ -121,6 +121,7 @@ internal static class ConfigTranslation PluginConfigBool.TargetHuntingRelicLevePriority => LocalizationManager.RightLang.ConfigWindow_Param_TargetHuntingRelicLevePriority, PluginConfigBool.TargetQuestPriority => LocalizationManager.RightLang.ConfigWindow_Param_TargetQuestPriority, PluginConfigBool.ShowTargetDeadTime => LocalizationManager.RightLang.ConfigWindow_Param_ShowTargetDeadTime, + PluginConfigBool.ShowStateIcon => LocalizationManager.RightLang.ConfigWindow_UI_ShowStateIcon, // extra diff --git a/RotationSolver/Localization/Strings.cs b/RotationSolver/Localization/Strings.cs index bbb61697f..4d075eb8d 100644 --- a/RotationSolver/Localization/Strings.cs +++ b/RotationSolver/Localization/Strings.cs @@ -710,4 +710,5 @@ internal partial class Strings public string ConfigWindow_UI_StateIconHeight { get; set; } = "State Icon height from position"; public string ConfigWindow_UI_StateIconSize { get; set; } = "State Icon size"; + public string ConfigWindow_UI_ShowStateIcon { get; set; } = "Show State Icon"; } \ No newline at end of file diff --git a/RotationSolver/UI/PainterManager.cs b/RotationSolver/UI/PainterManager.cs index a6d6eb924..9e83d83df 100644 --- a/RotationSolver/UI/PainterManager.cs +++ b/RotationSolver/UI/PainterManager.cs @@ -56,7 +56,7 @@ public override void UpdateOnFrame(XIVPainter.XIVPainter painter) { SubItems = Array.Empty(); - if (!Service.Config.GetValue(PluginConfigBool.ShowHostiles)) return; + if (!Service.Config.GetValue(PluginConfigBool.ShowHostilesIcons)) return; List subItems = new List(); @@ -200,7 +200,6 @@ public override void UpdateOnFrame(XIVPainter.XIVPainter painter) } static XIVPainter.XIVPainter _painter; - static XIVPainter.XIVPainter _forcePainter; static DrawingHighlightHotbar _highLight = new(); static Drawing3DImage _stateImage; public static HashSet ActionIds => _highLight.ActionIds; @@ -212,43 +211,6 @@ public static Vector4 HighlightColor } public static void Init() - { - InitPainter(); - InitForcePainter(); - } - - private static void InitForcePainter() - { - _forcePainter = XIVPainter.XIVPainter.Create(Svc.PluginInterface, "RotationSolverForceOverlay"); - _forcePainter.DrawingHeight = 0; - - _stateImage = new Drawing3DImage(null, default, 0) - { - MustInViewRange = true, - UpdateEveryFrame = () => - { - if (!Player.Available) return; - _stateImage.Position = Player.Object.Position + new Vector3(0, - Service.Config.GetValue(PluginConfigFloat.StateIconHeight), 0); - - if (DataCenter.State) - { - if(IconSet.GetTexture(61516, out var texture)) - { - _stateImage.SetTexture(texture, Service.Config.GetValue(PluginConfigFloat.StateIconSize)); - } - } - else - { - _stateImage.SetTexture(null, 0); - } - }, - }; - - _forcePainter.AddDrawings(_stateImage); - } - - private static void InitPainter() { _painter = XIVPainter.XIVPainter.Create(Svc.PluginInterface, "RotationSolverOverlay"); @@ -293,7 +255,30 @@ private static void InitPainter() movingTarget.To = tar.Value; }; - _painter.AddDrawings(_highLight, annulus, movingTarget, new TargetDrawing(), new TargetsDrawing(), new TargetText(), new BeneficialPositionDrawing()); + _stateImage = new Drawing3DImage(null, default, 0) + { + MustInViewRange = true, + UpdateEveryFrame = () => + { + if (!Player.Available) return; + _stateImage.Position = Player.Object.Position + new Vector3(0, + Service.Config.GetValue(PluginConfigFloat.StateIconHeight), 0); + + if (DataCenter.State && Service.Config.GetValue(PluginConfigBool.ShowStateIcon)) + { + if (IconSet.GetTexture(61516, out var texture)) + { + _stateImage.SetTexture(texture, Service.Config.GetValue(PluginConfigFloat.StateIconSize)); + } + } + else + { + _stateImage.SetTexture(null, 0); + } + }, + }; + + _painter.AddDrawings(_highLight, _stateImage, annulus, movingTarget, new TargetDrawing(), new TargetsDrawing(), new TargetText(), new BeneficialPositionDrawing()); } public static void UpdateSettings() diff --git a/RotationSolver/UI/RotationConfigWindow_Config.cs b/RotationSolver/UI/RotationConfigWindow_Config.cs index 36b007a98..4a1011722 100644 --- a/RotationSolver/UI/RotationConfigWindow_Config.cs +++ b/RotationSolver/UI/RotationConfigWindow_Config.cs @@ -384,11 +384,15 @@ private static void DrawUI() new ColorEditSearchPlugin(PluginConfigVector4.MovingTargetColor) ), - new CheckBoxSearchPlugin(PluginConfigBool.ShowHostiles, + new CheckBoxSearchPlugin(PluginConfigBool.ShowHostilesIcons, new DragFloatSearchPlugin(PluginConfigFloat.HostileIconHeight, 0.002f), new DragFloatSearchPlugin(PluginConfigFloat.HostileIconSize, 0.002f) ), + new CheckBoxSearchPlugin(PluginConfigBool.ShowStateIcon, + new DragFloatSearchPlugin(PluginConfigFloat.StateIconHeight, 0.002f), + new DragFloatSearchPlugin(PluginConfigFloat.StateIconSize, 0.002f)), + new CheckBoxSearchPlugin(PluginConfigBool.ShowBeneficialPositions, new ColorEditSearchPlugin(PluginConfigVector4.BeneficialPositionColor), new ColorEditSearchPlugin(PluginConfigVector4.HoveredBeneficialPositionColor) @@ -396,8 +400,7 @@ private static void DrawUI() new CheckBoxSearchPlugin(PluginConfigBool.DrawMeleeOffset)), - new DragFloatSearchPlugin(PluginConfigFloat.StateIconHeight, 0.002f), - new DragFloatSearchPlugin(PluginConfigFloat.StateIconSize, 0.002f), + }; // Windows