Initial release: HSUI v1.0.0.0 - HUD replacement with configurable hotbars

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-01-30 23:52:46 -05:00
commit f37369cdda
202 changed files with 40137 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
using Dalamud.Game.ClientState.Objects.Types;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Logging;
using Dalamud.Plugin.Ipc;
using Newtonsoft.Json;
using Lumina.Data.Parsing.Uld;
using System;
using System.Linq;
namespace HSUI.Helpers
{
public class TitleData
{
public string Title = "";
public bool IsPrefix = false;
}
internal class HonorificHelper
{
private ICallGateSubscriber<int, string>? _getCharacterTitle;
#region Singleton
private HonorificHelper()
{
_getCharacterTitle = Plugin.PluginInterface.GetIpcSubscriber<int, string>("Honorific.GetCharacterTitle");
}
public static void Initialize() { Instance = new HonorificHelper(); }
public static HonorificHelper Instance { get; private set; } = null!;
~HonorificHelper()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected void Dispose(bool disposing)
{
if (!disposing)
{
return;
}
Instance = null!;
}
#endregion
public TitleData? GetTitle(IGameObject? actor)
{
if (_getCharacterTitle == null ||
actor == null ||
actor.ObjectKind != ObjectKind.Player ||
actor is not ICharacter character)
{
return null;
}
try
{
string jsonData = _getCharacterTitle.InvokeFunc(character.ObjectIndex);
TitleData? titleData = JsonConvert.DeserializeObject<TitleData>(jsonData ?? string.Empty);
return titleData;
}
catch { }
return null;
}
}
}