diff --git a/PlayerTags/Configuration/PluginConfiguration.cs b/PlayerTags/Configuration/PluginConfiguration.cs index 6d3a2a9..5340178 100644 --- a/PlayerTags/Configuration/PluginConfiguration.cs +++ b/PlayerTags/Configuration/PluginConfiguration.cs @@ -32,6 +32,7 @@ namespace PlayerTags.Configuration { ActivityType.PvpDuty, new GeneralOptionsClass() } }; + public DefaultPluginDataTemplate DefaultPluginDataTemplate = DefaultPluginDataTemplate.Simple; public StatusIconPriorizerSettings StatusIconPriorizerSettings = new(true); public bool IsPlayerNameRandomlyGenerated = false; public bool IsCustomTagsContextMenuEnabled = true; diff --git a/PlayerTags/Data/DefaultPluginData.cs b/PlayerTags/Data/DefaultPluginData.cs index 1ee8fb9..e7365ba 100644 --- a/PlayerTags/Data/DefaultPluginData.cs +++ b/PlayerTags/Data/DefaultPluginData.cs @@ -9,18 +9,232 @@ namespace PlayerTags.Data { public class DefaultPluginData { - public Tag AllTags { get; } + public Tag AllTags { get; private set; } - public Tag AllRoleTags { get; } - public Dictionary RoleTags { get; } - public Dictionary DpsRoleTags { get; } - public Dictionary RangedDpsRoleTags { get; } - public Dictionary LandHandRoleTags { get; } - public Dictionary JobTags { get; } + public Tag AllRoleTags { get; private set; } + public Dictionary RoleTags { get; private set; } + public Dictionary DpsRoleTags { get; private set; } + public Dictionary RangedDpsRoleTags { get; private set; } + public Dictionary LandHandRoleTags { get; private set; } + public Dictionary JobTags { get; private set; } - public Tag AllCustomTags { get; } + public Tag AllCustomTags { get; private set; } - public DefaultPluginData() + public DefaultPluginData(DefaultPluginDataTemplate template) + { + SetupTemplate(template); + } + + private void SetupTemplate(DefaultPluginDataTemplate template) + { + Clear(); + + switch(template) + { + case DefaultPluginDataTemplate.None: + SetupTemplateNone(); + break; + case DefaultPluginDataTemplate.Basic: + SetupTemplateBasic(); + break; + case DefaultPluginDataTemplate.Simple: + SetupTemplateSimple(); + break; + case DefaultPluginDataTemplate.Full: + SetupTemplateFull(); + break; + } + + SetupJobTags(); + } + + private void Clear() + { + + RoleTags = new Dictionary(); + DpsRoleTags = new Dictionary(); + RangedDpsRoleTags = new Dictionary(); + LandHandRoleTags = new Dictionary(); + } + + private void SetupTemplateNone() + { + AllTags = new Tag() + { + IsSelected = true, + IsExpanded = true, + }; + + AllRoleTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + + RoleTags[Role.LandHand] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + RoleTags[Role.Tank] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + RoleTags[Role.Healer] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + RoleTags[Role.Dps] = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + + DpsRoleTags[DpsRole.Melee] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + DpsRoleTags[DpsRole.Ranged] = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + + RangedDpsRoleTags[RangedDpsRole.Magical] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + RangedDpsRoleTags[RangedDpsRole.Physical] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + LandHandRoleTags[LandHandRole.Land] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + LandHandRoleTags[LandHandRole.Hand] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + AllCustomTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + } + + private void SetupTemplateBasic() + { + AllTags = new Tag() + { + IsSelected = true, + IsExpanded = true, + + TagPositionInChat = TagPosition.Before, + InsertBehindNumberPrefixInChat = true, + TagPositionInNameplates = TagPosition.Replace, + TagTargetInNameplates = NameplateElement.Title, + + TargetChatTypes = new List(Enum.GetValues()), + }; + + AllRoleTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + + RoleTags[Role.LandHand] = new Tag() + { + IsSelected = false, + IsExpanded = false + }; + + RoleTags[Role.Tank] = new Tag() + { + IsSelected = false, + IsExpanded = false, + Icon = BitmapFontIcon.Tank, + TextColor = 546, + }; + + RoleTags[Role.Healer] = new Tag() + { + IsSelected = false, + IsExpanded = false, + Icon = BitmapFontIcon.Healer, + TextColor = 43, + }; + + RoleTags[Role.Dps] = new Tag() + { + IsSelected = false, + IsExpanded = true, + Icon = BitmapFontIcon.DPS, + TextColor = 508, + }; + + DpsRoleTags[DpsRole.Melee] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + DpsRoleTags[DpsRole.Ranged] = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + + RangedDpsRoleTags[RangedDpsRole.Magical] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + RangedDpsRoleTags[RangedDpsRole.Physical] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + LandHandRoleTags[LandHandRole.Land] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + LandHandRoleTags[LandHandRole.Hand] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + AllCustomTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + IsTextVisibleInChat = true, + IsTextVisibleInNameplates = true, + }; + } + + private void SetupTemplateSimple() { AllTags = new Tag() { @@ -36,10 +250,6 @@ namespace PlayerTags.Data IsVisibleInPveDuties = true, IsVisibleInPvpDuties = true, - //NameplateFreeCompanyVisibility = NameplateFreeCompanyVisibility.Never, - //NameplateTitleVisibility = NameplateTitleVisibility.Always, - //NameplateTitlePosition = NameplateTitlePosition.AlwaysAboveName, - IsVisibleForSelf = true, IsVisibleForFriendPlayers = true, IsVisibleForPartyPlayers = true, @@ -61,7 +271,6 @@ namespace PlayerTags.Data IsTextColorAppliedToChatName = true, }; - RoleTags = new Dictionary(); RoleTags[Role.LandHand] = new Tag() { IsSelected = false, @@ -94,7 +303,6 @@ namespace PlayerTags.Data TextColor = 508, }; - DpsRoleTags = new Dictionary(); DpsRoleTags[DpsRole.Melee] = new Tag() { IsSelected = false, @@ -107,7 +315,6 @@ namespace PlayerTags.Data IsExpanded = true, }; - RangedDpsRoleTags = new Dictionary(); RangedDpsRoleTags[RangedDpsRole.Magical] = new Tag() { IsSelected = false, @@ -120,7 +327,6 @@ namespace PlayerTags.Data IsExpanded = false, }; - LandHandRoleTags = new Dictionary(); LandHandRoleTags[LandHandRole.Land] = new Tag() { IsSelected = false, @@ -133,6 +339,133 @@ namespace PlayerTags.Data IsExpanded = false, }; + AllCustomTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + IsTextVisibleInChat = true, + IsTextVisibleInNameplates = true, + }; + } + + private void SetupTemplateFull() + { + AllTags = new Tag() + { + IsSelected = true, + IsExpanded = true, + TagPositionInChat = TagPosition.Before, + InsertBehindNumberPrefixInChat = true, + TagPositionInNameplates = TagPosition.Replace, + TagTargetInNameplates = NameplateElement.Title, + IsTextItalic = true, + + IsVisibleInOverworld = true, + IsVisibleInPveDuties = true, + IsVisibleInPvpDuties = true, + + IsVisibleForSelf = true, + IsVisibleForFriendPlayers = true, + IsVisibleForPartyPlayers = true, + IsVisibleForAlliancePlayers = true, + IsVisibleForEnemyPlayers = true, + IsVisibleForOtherPlayers = true, + + TargetChatTypes = new List(Enum.GetValues()), + }; + + AllRoleTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + IsRoleIconVisibleInChat = true, + IsTextVisibleInChat = true, + IsRoleIconVisibleInNameplates = true, + IsTextVisibleInNameplates = true, + IsTextColorAppliedToNameplateName = true, + IsTextColorAppliedToChatName = true, + IsJobIconVisibleInNameplates = true, + }; + + RoleTags[Role.LandHand] = new Tag() + { + IsSelected = false, + IsExpanded = false, + Icon = BitmapFontIcon.Crafter, + TextColor = 3, + }; + + RoleTags[Role.Tank] = new Tag() + { + IsSelected = false, + IsExpanded = false, + Icon = BitmapFontIcon.Tank, + TextColor = 546, + }; + + RoleTags[Role.Healer] = new Tag() + { + IsSelected = false, + IsExpanded = false, + Icon = BitmapFontIcon.Healer, + TextColor = 43, + }; + + RoleTags[Role.Dps] = new Tag() + { + IsSelected = false, + IsExpanded = true, + Icon = BitmapFontIcon.DPS, + TextColor = 508, + }; + + DpsRoleTags[DpsRole.Melee] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + DpsRoleTags[DpsRole.Ranged] = new Tag() + { + IsSelected = false, + IsExpanded = true, + }; + + RangedDpsRoleTags[RangedDpsRole.Magical] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + RangedDpsRoleTags[RangedDpsRole.Physical] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + LandHandRoleTags[LandHandRole.Land] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + LandHandRoleTags[LandHandRole.Hand] = new Tag() + { + IsSelected = false, + IsExpanded = false, + }; + + AllCustomTags = new Tag() + { + IsSelected = false, + IsExpanded = true, + IsTextVisibleInChat = true, + IsTextVisibleInNameplates = true, + }; + } + + private void SetupJobTags() + { JobTags = new Dictionary(); var classJobs = PluginServices.DataManager.GetExcelSheet(); @@ -154,14 +487,6 @@ namespace PlayerTags.Data } } } - - AllCustomTags = new Tag() - { - IsSelected = false, - IsExpanded = true, - IsTextVisibleInChat = true, - IsTextVisibleInNameplates = true, - }; } } } diff --git a/PlayerTags/Data/DefaultPluginDataTemplate.cs b/PlayerTags/Data/DefaultPluginDataTemplate.cs new file mode 100644 index 0000000..98211ea --- /dev/null +++ b/PlayerTags/Data/DefaultPluginDataTemplate.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace PlayerTags.Data +{ + public enum DefaultPluginDataTemplate + { + None, + Basic, + Simple, + Full + } +} diff --git a/PlayerTags/Data/PluginData.cs b/PlayerTags/Data/PluginData.cs index 50df87d..fb45206 100644 --- a/PlayerTags/Data/PluginData.cs +++ b/PlayerTags/Data/PluginData.cs @@ -31,7 +31,7 @@ namespace PlayerTags.Data { m_PluginConfiguration = pluginConfiguration; - Default = new DefaultPluginData(); + Default = new DefaultPluginData(pluginConfiguration.DefaultPluginDataTemplate); // Set the default changes and saved changes AllTags = new Tag(new LocalizedPluginString(nameof(AllTags)), Default.AllTags);