add settings ui for status icon priorizer settings

This commit is contained in:
2022-11-10 09:59:09 +01:00
parent fb4ffd3f22
commit 5ee2ad6629
3 changed files with 425 additions and 0 deletions

View File

@@ -10,6 +10,8 @@ using ImGuiNET;
using Lumina.Excel.GeneratedSheets;
using Pilz.Dalamud.ActivityContexts;
using Pilz.Dalamud.Icons;
using Pilz.Dalamud.Nameplates.Model;
using Pilz.Dalamud.Nameplates.Tools;
using PlayerTags.Data;
using PlayerTags.Inheritables;
using PlayerTags.PluginStrings;
@@ -246,6 +248,79 @@ namespace PlayerTags.Configuration
ImGui.EndTabItem();
}
if (ImGui.BeginTabItem(Strings.Loc_Static_StatusIconPrioList))
{
ImGui.Spacing();
ImGui.Spacing();
var isPriorizerEnabled = m_PluginConfiguration.StatusIconPriorizerSettings.UsePriorizedIcons;
DrawCheckbox(nameof(StatusIconPriorizerSettings.UsePriorizedIcons), true, ref isPriorizerEnabled, () =>
{
m_PluginConfiguration.StatusIconPriorizerSettings.UsePriorizedIcons = isPriorizerEnabled;
SaveSettings();
});
if (isPriorizerEnabled)
{
var statusIcons = Enum.GetValues<StatusIcons>();
ImGui.Spacing();
ImGui.Spacing();
if (ImGui.Button(Strings.Loc_StatusIconPriorizer_ResetToDefault))
{
m_PluginConfiguration.StatusIconPriorizerSettings.ResetToDefault();
SaveSettings();
}
else if (ImGui.IsItemHovered())
ImGui.SetTooltip(Strings.Loc_StatusIconPriorizer_ResetToDefault_Description);
ImGui.SameLine();
if (ImGui.Button(Strings.Loc_StatusIconPriorizer_ResetToEmpty))
{
m_PluginConfiguration.StatusIconPriorizerSettings.ResetToEmpty();
SaveSettings();
}
else if (ImGui.IsItemHovered())
ImGui.SetTooltip(Strings.Loc_StatusIconPriorizer_ResetToEmpty_Description);
ImGui.Spacing();
ImGui.Spacing();
foreach (var conditionSetName in Enum.GetValues<StatusIconPriorizerConditionSets>())
{
if (ImGui.CollapsingHeader(Localizer.GetString(conditionSetName, false)))
{
var conditionSet = m_PluginConfiguration.StatusIconPriorizerSettings.GetConditionSet(conditionSetName);
if (ImGui.IsItemHovered())
ImGui.SetTooltip(Localizer.GetString(conditionSetName, true));
foreach (var statusIcon in statusIcons)
{
var isChecked = conditionSet.Contains(statusIcon);
DrawCheckbox(Localizer.GetName(statusIcon), true, ref isChecked, () =>
{
if (isChecked)
{
if (!conditionSet.Contains(statusIcon))
conditionSet.Add(statusIcon);
}
else if (conditionSet.Contains(statusIcon))
conditionSet.Remove(statusIcon);
SaveSettings();
});
}
}
ImGui.Spacing();
}
}
ImGui.EndTabItem();
}
ImGui.EndTabBar();
}

View File

@@ -1491,6 +1491,15 @@ namespace PlayerTags.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Status Icon Priorizer ähnelt.
/// </summary>
public static string Loc_Static_StatusIconPrioList {
get {
return ResourceManager.GetString("Loc_Static_StatusIconPrioList", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Tagged Players ähnelt.
/// </summary>
@@ -1518,6 +1527,240 @@ namespace PlayerTags.Resources {
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Reset to default ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizer_ResetToDefault {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizer_ResetToDefault", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Resets all condition sets to the default settings ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizer_ResetToDefault_Description {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizer_ResetToDefault_Description", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Reset to empty ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizer_ResetToEmpty {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizer_ResetToEmpty", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Clears all condition sets to an empty collection. None status icons will be priorized. ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizer_ResetToEmpty_Description {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizer_ResetToEmpty_Description", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die In Duty ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizerConditionSets_InDuty {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizerConditionSets_InDuty", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Status icons that should get priorized within duties. ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizerConditionSets_InDuty_Description {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizerConditionSets_InDuty_Description", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die In Foray ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizerConditionSets_InForay {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizerConditionSets_InForay", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Status icons that should get priorized within foraies. ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizerConditionSets_InForay_Description {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizerConditionSets_InForay_Description", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Overworld ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizerConditionSets_Overworld {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizerConditionSets_Overworld", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Status icons that should get priorized at overworld. ähnelt.
/// </summary>
public static string Loc_StatusIconPriorizerConditionSets_Overworld_Description {
get {
return ResourceManager.GetString("Loc_StatusIconPriorizerConditionSets_Overworld_Description", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Busy ähnelt.
/// </summary>
public static string Loc_StatusIcons_Busy {
get {
return ResourceManager.GetString("Loc_StatusIcons_Busy", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Disconnecting ähnelt.
/// </summary>
public static string Loc_StatusIcons_Disconnecting {
get {
return ResourceManager.GetString("Loc_StatusIcons_Disconnecting", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Duty Finder ähnelt.
/// </summary>
public static string Loc_StatusIcons_DutyFinder {
get {
return ResourceManager.GetString("Loc_StatusIcons_DutyFinder", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Group Pose ähnelt.
/// </summary>
public static string Loc_StatusIcons_GroupPose {
get {
return ResourceManager.GetString("Loc_StatusIcons_GroupPose", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Idle ähnelt.
/// </summary>
public static string Loc_StatusIcons_Idle {
get {
return ResourceManager.GetString("Loc_StatusIcons_Idle", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die In Duty ähnelt.
/// </summary>
public static string Loc_StatusIcons_InDuty {
get {
return ResourceManager.GetString("Loc_StatusIcons_InDuty", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Mentor ähnelt.
/// </summary>
public static string Loc_StatusIcons_Mentor {
get {
return ResourceManager.GetString("Loc_StatusIcons_Mentor", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Mentor Crafting ähnelt.
/// </summary>
public static string Loc_StatusIcons_MentorCrafting {
get {
return ResourceManager.GetString("Loc_StatusIcons_MentorCrafting", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Mentor PvE ähnelt.
/// </summary>
public static string Loc_StatusIcons_MentorPvE {
get {
return ResourceManager.GetString("Loc_StatusIcons_MentorPvE", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Mentor PvP ähnelt.
/// </summary>
public static string Loc_StatusIcons_MentorPvP {
get {
return ResourceManager.GetString("Loc_StatusIcons_MentorPvP", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die New Adventurer ähnelt.
/// </summary>
public static string Loc_StatusIcons_NewAdventurer {
get {
return ResourceManager.GetString("Loc_StatusIcons_NewAdventurer", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Party Leader ähnelt.
/// </summary>
public static string Loc_StatusIcons_PartyLeader {
get {
return ResourceManager.GetString("Loc_StatusIcons_PartyLeader", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Party Member ähnelt.
/// </summary>
public static string Loc_StatusIcons_PartyMember {
get {
return ResourceManager.GetString("Loc_StatusIcons_PartyMember", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Returner ähnelt.
/// </summary>
public static string Loc_StatusIcons_Returner {
get {
return ResourceManager.GetString("Loc_StatusIcons_Returner", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Role Playing ähnelt.
/// </summary>
public static string Loc_StatusIcons_RolePlaying {
get {
return ResourceManager.GetString("Loc_StatusIcons_RolePlaying", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Viewing Cutscene ähnelt.
/// </summary>
public static string Loc_StatusIcons_ViewingCutscene {
get {
return ResourceManager.GetString("Loc_StatusIcons_ViewingCutscene", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die After ähnelt.
/// </summary>
@@ -1706,5 +1949,24 @@ namespace PlayerTags.Resources {
return ResourceManager.GetString("Loc_TextGlowColor_Description", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die Use priorized icons ähnelt.
/// </summary>
public static string Loc_UsePriorizedIcons {
get {
return ResourceManager.GetString("Loc_UsePriorizedIcons", resourceCulture);
}
}
/// <summary>
/// Sucht eine lokalisierte Zeichenfolge, die This option checked will force a set of status icons to be priorized over job icons, if you enabled job icons.
///When disabled, only the disconnected status icon is priorized. ähnelt.
/// </summary>
public static string Loc_UsePriorizedIcons_Description {
get {
return ResourceManager.GetString("Loc_UsePriorizedIcons_Description", resourceCulture);
}
}
}
}

View File

@@ -666,4 +666,92 @@
<data name="Loc_TargetChatTypes_Description" xml:space="preserve">
<value>Defines for which chat type the chat features of this tag should be enabled for.</value>
</data>
<data name="Loc_Static_StatusIconPrioList" xml:space="preserve">
<value>Status Icon Priorizer</value>
</data>
<data name="Loc_StatusIconPriorizerConditionSets_InDuty" xml:space="preserve">
<value>In Duty</value>
</data>
<data name="Loc_StatusIconPriorizerConditionSets_InDuty_Description" xml:space="preserve">
<value>Status icons that should get priorized within duties.</value>
</data>
<data name="Loc_StatusIconPriorizerConditionSets_InForay" xml:space="preserve">
<value>In Foray</value>
</data>
<data name="Loc_StatusIconPriorizerConditionSets_InForay_Description" xml:space="preserve">
<value>Status icons that should get priorized within foraies.</value>
</data>
<data name="Loc_StatusIconPriorizerConditionSets_Overworld" xml:space="preserve">
<value>Overworld</value>
</data>
<data name="Loc_StatusIconPriorizerConditionSets_Overworld_Description" xml:space="preserve">
<value>Status icons that should get priorized at overworld.</value>
</data>
<data name="Loc_StatusIconPriorizer_ResetToDefault" xml:space="preserve">
<value>Reset to default</value>
</data>
<data name="Loc_StatusIconPriorizer_ResetToDefault_Description" xml:space="preserve">
<value>Resets all condition sets to the default settings</value>
</data>
<data name="Loc_StatusIconPriorizer_ResetToEmpty" xml:space="preserve">
<value>Reset to empty</value>
</data>
<data name="Loc_StatusIconPriorizer_ResetToEmpty_Description" xml:space="preserve">
<value>Clears all condition sets to an empty collection. None status icons will be priorized.</value>
</data>
<data name="Loc_UsePriorizedIcons" xml:space="preserve">
<value>Use priorized icons</value>
</data>
<data name="Loc_UsePriorizedIcons_Description" xml:space="preserve">
<value>This option checked will force a set of status icons to be priorized over job icons, if you enabled job icons.
When disabled, only the disconnected status icon is priorized.</value>
</data>
<data name="Loc_StatusIcons_Busy" xml:space="preserve">
<value>Busy</value>
</data>
<data name="Loc_StatusIcons_Disconnecting" xml:space="preserve">
<value>Disconnecting</value>
</data>
<data name="Loc_StatusIcons_DutyFinder" xml:space="preserve">
<value>Duty Finder</value>
</data>
<data name="Loc_StatusIcons_GroupPose" xml:space="preserve">
<value>Group Pose</value>
</data>
<data name="Loc_StatusIcons_Idle" xml:space="preserve">
<value>Idle</value>
</data>
<data name="Loc_StatusIcons_InDuty" xml:space="preserve">
<value>In Duty</value>
</data>
<data name="Loc_StatusIcons_Mentor" xml:space="preserve">
<value>Mentor</value>
</data>
<data name="Loc_StatusIcons_MentorCrafting" xml:space="preserve">
<value>Mentor Crafting</value>
</data>
<data name="Loc_StatusIcons_MentorPvE" xml:space="preserve">
<value>Mentor PvE</value>
</data>
<data name="Loc_StatusIcons_MentorPvP" xml:space="preserve">
<value>Mentor PvP</value>
</data>
<data name="Loc_StatusIcons_NewAdventurer" xml:space="preserve">
<value>New Adventurer</value>
</data>
<data name="Loc_StatusIcons_PartyLeader" xml:space="preserve">
<value>Party Leader</value>
</data>
<data name="Loc_StatusIcons_PartyMember" xml:space="preserve">
<value>Party Member</value>
</data>
<data name="Loc_StatusIcons_Returner" xml:space="preserve">
<value>Returner</value>
</data>
<data name="Loc_StatusIcons_RolePlaying" xml:space="preserve">
<value>Role Playing</value>
</data>
<data name="Loc_StatusIcons_ViewingCutscene" xml:space="preserve">
<value>Viewing Cutscene</value>
</data>
</root>