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;
|
||||||
|
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 Pilz.Dalamud.Tools.Strings;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -18,5 +22,23 @@ namespace Pilz.Dalamud.Nameplates.Tools
|
|||||||
StringUpdateFactory.ApplyStringChanges(change);
|
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="iconId">The incoming icon id that is being overwritten by the plugin.</param>
|
||||||
/// <param name="priorityIconId">The icon id that should be used.</param>
|
/// <param name="priorityIconId">The icon id that should be used.</param>
|
||||||
/// <returns>Whether a priority icon was found.</returns>
|
/// <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;
|
bool isPrioIcon;
|
||||||
priorityIconId = iconId;
|
|
||||||
|
|
||||||
if (!Settings.UsePriorizedIcons && iconId != (int)StatusIcons.Disconnecting && iconId != (int)StatusIcons.Disconnecting + 50)
|
if (!Settings.UsePriorizedIcons && iconId != (int)StatusIcons.Disconnecting && iconId != (int)StatusIcons.Disconnecting + 50)
|
||||||
isPrioIcon = false;
|
isPrioIcon = false;
|
||||||
@@ -46,9 +45,6 @@ namespace Pilz.Dalamud.Nameplates.Tools
|
|||||||
// Determine whether the incoming icon should take priority over the job icon
|
// Determine whether the incoming icon should take priority over the job icon
|
||||||
// Check the id plus 50 as that's an alternately sized version
|
// Check the id plus 50 as that's an alternately sized version
|
||||||
isPrioIcon = priorityIcons.Contains(iconId) || priorityIcons.Contains(iconId + 50);
|
isPrioIcon = priorityIcons.Contains(iconId) || priorityIcons.Contains(iconId + 50);
|
||||||
|
|
||||||
// Save the id of the icon
|
|
||||||
priorityIconId = iconId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return isPrioIcon;
|
return isPrioIcon;
|
||||||
|
|||||||
Reference in New Issue
Block a user