Combo highlight config, tooltips, nameplates, hotbars fixes

- Combo highlight: configurable color, glow, line style (solid/dashed/dotted), thickness
- Tooltips: font selection, scaling slider, improved wrap/cramping handling
- Nameplates: custom quest icons with config, position smoothing fix for jitter
- Hotbars: hide keybinds on empty slots, combo highlight within icon bounds
- HudHelper: restore default nameplates on plugin disable

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-01-31 02:05:30 -05:00
parent 47018c75a2
commit 95c42af5b8
8 changed files with 218 additions and 40 deletions
+23 -3
View File
@@ -55,9 +55,7 @@ namespace HSUI.Interface
Config.ValueChangeEvent -= ConfigValueChanged;
// Only restore defaults when already on framework thread. Skip RunOnFrameworkThread
// during unload—it can deadlock. Restore is best-effort; game state may be torn down.
if (Plugin.Framework.IsInFrameworkUpdateThread && Plugin.ObjectTable.LocalPlayer != null)
void RestoreDefaults()
{
try
{
@@ -72,6 +70,26 @@ namespace HSUI.Interface
Plugin.Logger.Error($"Exception during HudHelper.Dispose restore: {ex.Message}");
}
}
if (Plugin.Framework.IsInFrameworkUpdateThread && Plugin.ObjectTable.LocalPlayer != null)
{
RestoreDefaults();
}
else
{
try
{
Plugin.Framework.RunOnFrameworkThread(() =>
{
if (Plugin.ObjectTable.LocalPlayer != null)
RestoreDefaults();
});
}
catch (Exception ex)
{
Plugin.Logger.Error($"Exception scheduling HudHelper.Dispose restore: {ex.Message}");
}
}
}
public void Update()
@@ -230,6 +248,8 @@ namespace HSUI.Interface
if (enemyList?.Enabled == true)
AddHashes("_EnemyList");
// Hide NamePlate when HSUI nameplates are enabled. We read icon IDs from the addon (still updated when hidden)
// and draw our own quest icons (! ? above NPCs) via NPC nameplate IconConfig.
var nameplatesConfig = ConfigurationManager.Instance?.GetConfigObject<NameplatesGeneralConfig>();
if (nameplatesConfig?.Enabled == true)
AddHashes("NamePlate");