diff --git a/PlayerTags/DefaultPluginData.cs b/PlayerTags/DefaultPluginData.cs index 65cf524..802979c 100644 --- a/PlayerTags/DefaultPluginData.cs +++ b/PlayerTags/DefaultPluginData.cs @@ -29,6 +29,7 @@ namespace PlayerTags { AllTagsChanges = new Tag(new LiteralPluginString("")) { + IsExpanded = true, TagPositionInChat = TagPosition.Before, TagPositionInNameplates = TagPosition.Replace, TagTargetInNameplates = NameplateElement.Title, @@ -37,30 +38,35 @@ namespace PlayerTags AllRoleTagsChanges = new Tag(new LiteralPluginString("")) { + IsExpanded = true, IsIconVisibleInChat = true, IsTextVisibleInNameplates = true, }.GetChanges(); RoleTagsChanges[Role.LandHand] = new Tag(new LiteralPluginString("")) { + IsExpanded = true, Icon = BitmapFontIcon.Crafter, TextColor = 3, }.GetChanges(); RoleTagsChanges[Role.Tank] = new Tag(new LiteralPluginString("")) { + IsExpanded = true, Icon = BitmapFontIcon.Tank, TextColor = 546, }.GetChanges(); RoleTagsChanges[Role.Healer] = new Tag(new LiteralPluginString("")) { + IsExpanded = true, Icon = BitmapFontIcon.Healer, TextColor = 43, }.GetChanges(); RoleTagsChanges[Role.DPS] = new Tag(new LiteralPluginString("")) { + IsExpanded = true, Icon = BitmapFontIcon.DPS, TextColor = 508, }.GetChanges(); @@ -89,6 +95,7 @@ namespace PlayerTags AllCustomTagsChanges = new Tag(new LiteralPluginString("")) { + IsExpanded = true, IsTextVisibleInChat = true, IsTextVisibleInNameplates = true, }.GetChanges(); diff --git a/PlayerTags/PluginConfiguration.cs b/PlayerTags/PluginConfiguration.cs index d7876fa..40c0832 100644 --- a/PlayerTags/PluginConfiguration.cs +++ b/PlayerTags/PluginConfiguration.cs @@ -18,8 +18,6 @@ namespace PlayerTags public bool IsPlayerNameRandomlyGenerated = false; public bool IsCustomTagContextMenuEnabled = true; - public List ExpandedTags = new List(); - [JsonProperty(TypeNameHandling = TypeNameHandling.None, ItemTypeNameHandling = TypeNameHandling.None)] public Dictionary AllTagsChanges = new Dictionary(); diff --git a/PlayerTags/PluginConfigurationUI.cs b/PlayerTags/PluginConfigurationUI.cs index 11bb86a..c143ae4 100644 --- a/PlayerTags/PluginConfigurationUI.cs +++ b/PlayerTags/PluginConfigurationUI.cs @@ -144,12 +144,9 @@ namespace PlayerTags { ImGui.PushID(tag.GetHashCode().ToString()); - string collapsingHeaderId = tag.Name.Value; string collapsingHeaderName = tag.Name.Value; if (m_PluginData.CustomTags.Contains(tag)) { - collapsingHeaderId = $"Custom_{m_PluginData.CustomTags.IndexOf(tag)}"; - if (tag.Text.InheritedValue != null) { collapsingHeaderName = tag.Text.InheritedValue; @@ -160,13 +157,12 @@ namespace PlayerTags } } - bool isExpanded = m_PluginConfiguration.ExpandedTags.Contains(collapsingHeaderName); bool isVisible = true; - if (ImGui.CollapsingHeader($"{collapsingHeaderName}###{tag.GetHashCode()}", ref isVisible, isExpanded ? ImGuiTreeNodeFlags.DefaultOpen : ImGuiTreeNodeFlags.None)) + if (ImGui.CollapsingHeader($"{collapsingHeaderName}###{tag.GetHashCode()}", ref isVisible, tag.IsExpanded.Value ? ImGuiTreeNodeFlags.DefaultOpen : ImGuiTreeNodeFlags.None)) { - if (!m_PluginConfiguration.ExpandedTags.Contains(collapsingHeaderName)) + if (!tag.IsExpanded.Value) { - m_PluginConfiguration.ExpandedTags.Add(collapsingHeaderName); + tag.IsExpanded.Value = true; m_PluginConfiguration.Save(m_PluginData); } @@ -366,9 +362,9 @@ namespace PlayerTags ImGui.EndGroup(); ImGui.TreePop(); } - else if(!isExpanded && m_PluginConfiguration.ExpandedTags.Contains(collapsingHeaderName)) + else if (tag.IsExpanded.Value) { - m_PluginConfiguration.ExpandedTags.Remove(collapsingHeaderName); + tag.IsExpanded.Value = false; m_PluginConfiguration.Save(m_PluginData); } diff --git a/PlayerTags/Tag.cs b/PlayerTags/Tag.cs index 0947b58..d6a84ef 100644 --- a/PlayerTags/Tag.cs +++ b/PlayerTags/Tag.cs @@ -64,6 +64,11 @@ namespace PlayerTags } } + public InheritableValue IsExpanded = new InheritableValue(false) + { + Behavior = InheritableBehavior.Enabled + }; + public InheritableValue Icon = new InheritableValue(BitmapFontIcon.Aethernet); public InheritableValue IsIconVisibleInChat = new InheritableValue(false); public InheritableValue IsIconVisibleInNameplates = new InheritableValue(false);