add method for applying prio status icon to nameplate element
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
using Dalamud.Game.Text.SeStringHandling;
|
||||
using Dalamud.Game.Text.SeStringHandling.Payloads;
|
||||
using Pilz.Dalamud.ActivityContexts;
|
||||
using Pilz.Dalamud.Nameplates.Model;
|
||||
using Pilz.Dalamud.Tools;
|
||||
using Pilz.Dalamud.Tools.Strings;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -18,5 +22,23 @@ namespace Pilz.Dalamud.Nameplates.Tools
|
||||
StringUpdateFactory.ApplyStringChanges(change);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ApplyStatusIconWithPrio(ref int statusIcon, int newStatusIcon, StringChange stringChange, ActivityContext activityContext, StatusIconPriorizer priorizer)
|
||||
{
|
||||
var isPrio = priorizer.IsPriorityIcon(statusIcon, activityContext);
|
||||
|
||||
if (!isPrio)
|
||||
{
|
||||
var fontIcon = StatusIconFontConverter.GetBitmapFontIconFromStatusIcon((StatusIcons)statusIcon);
|
||||
|
||||
if (fontIcon != null)
|
||||
{
|
||||
var iconPayload = new IconPayload(fontIcon.Value);
|
||||
stringChange.Payloads.Insert(0, iconPayload);
|
||||
}
|
||||
}
|
||||
|
||||
return isPrio;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,10 +30,9 @@ namespace Pilz.Dalamud.Nameplates.Tools
|
||||
/// <param name="iconId">The incoming icon id that is being overwritten by the plugin.</param>
|
||||
/// <param name="priorityIconId">The icon id that should be used.</param>
|
||||
/// <returns>Whether a priority icon was found.</returns>
|
||||
private bool IsPriorityIcon(int iconId, out int priorityIconId, ActivityContext activityContext)
|
||||
public bool IsPriorityIcon(int iconId, ActivityContext activityContext)
|
||||
{
|
||||
bool isPrioIcon;
|
||||
priorityIconId = iconId;
|
||||
|
||||
if (!Settings.UsePriorizedIcons && iconId != (int)StatusIcons.Disconnecting && iconId != (int)StatusIcons.Disconnecting + 50)
|
||||
isPrioIcon = false;
|
||||
@@ -46,9 +45,6 @@ namespace Pilz.Dalamud.Nameplates.Tools
|
||||
// Determine whether the incoming icon should take priority over the job icon
|
||||
// Check the id plus 50 as that's an alternately sized version
|
||||
isPrioIcon = priorityIcons.Contains(iconId) || priorityIcons.Contains(iconId + 50);
|
||||
|
||||
// Save the id of the icon
|
||||
priorityIconId = iconId;
|
||||
}
|
||||
|
||||
return isPrioIcon;
|
||||
|
||||
Reference in New Issue
Block a user