You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11627 lines
404 KiB
11627 lines
404 KiB
local addonId, platerInternal = ...
|
|
|
|
local Plater = Plater
|
|
---@type detailsframework
|
|
local DF = DetailsFramework
|
|
local LibSharedMedia = LibStub:GetLibrary ("LibSharedMedia-3.0")
|
|
local LibRangeCheck = LibStub:GetLibrary ("LibRangeCheck-3.0")
|
|
local _
|
|
|
|
local IS_WOW_PROJECT_MAINLINE = WOW_PROJECT_ID == WOW_PROJECT_MAINLINE
|
|
local IS_WOW_PROJECT_NOT_MAINLINE = WOW_PROJECT_ID ~= WOW_PROJECT_MAINLINE
|
|
local IS_WOW_PROJECT_CLASSIC_ERA = WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
|
|
local IS_WOW_PROJECT_CLASSIC_TBC = WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC
|
|
local IS_WOW_PROJECT_CLASSIC_WRATH = IS_WOW_PROJECT_NOT_MAINLINE and ClassicExpansionAtLeast and LE_EXPANSION_WRATH_OF_THE_LICH_KING and ClassicExpansionAtLeast(LE_EXPANSION_WRATH_OF_THE_LICH_KING)
|
|
--local IS_WOW_PROJECT_CLASSIC_CATACLYSM = IS_WOW_PROJECT_NOT_MAINLINE and ClassicExpansionAtLeast and LE_EXPANSION_CATACLYSM and ClassicExpansionAtLeast(LE_EXPANSION_CATACLYSM)
|
|
|
|
local PixelUtil = PixelUtil or DFPixelUtil
|
|
|
|
--templates
|
|
local options_text_template = DF:GetTemplate ("font", "OPTIONS_FONT_TEMPLATE")
|
|
local options_dropdown_template = DF:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE")
|
|
local options_switch_template = DF:GetTemplate ("switch", "OPTIONS_CHECKBOX_TEMPLATE")
|
|
local options_slider_template = DF:GetTemplate ("slider", "OPTIONS_SLIDER_TEMPLATE")
|
|
local options_button_template = DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE")
|
|
|
|
--configs
|
|
local startX, startY, heightSize = 10, platerInternal.optionsYStart, 755
|
|
local optionsWidth, optionsHeight = 1100, 670
|
|
local mainHeightSize = 820
|
|
|
|
local IMPORT_EXPORT_EDIT_MAX_BYTES = 0 --1024000*4 -- 0 appears to be "no limit"
|
|
local IMPORT_EXPORT_EDIT_MAX_LETTERS = 0 --128000*4 -- 0 appears to be "no limit"
|
|
|
|
local highlightColorLastCombat = {1, 1, .2, .25}
|
|
|
|
local dropdownStatusBarTexture = platerInternal.Defaults.dropdownStatusBarTexture
|
|
local dropdownStatusBarColor = platerInternal.Defaults.dropdownStatusBarColor
|
|
|
|
local CONST_DELAY_TO_CREATE_SPELLLISTTAB = 0.15
|
|
|
|
--when opening the options after an encounter, open at the tab "spell list", it shows the spells used on the encounter
|
|
local CONST_LASTEVENTS_TAB_INDEX = 19
|
|
|
|
--cvars
|
|
local CVAR_ENABLED = "1"
|
|
local CVAR_DISABLED = "0"
|
|
local CVAR_RESOURCEONTARGET = "nameplateResourceOnTarget"
|
|
local CVAR_CULLINGDISTANCE = "nameplateMaxDistance"
|
|
local CVAR_AGGROFLASH = "ShowNamePlateLoseAggroFlash"
|
|
local CVAR_MOVEMENT_SPEED = "nameplateMotionSpeed"
|
|
local CVAR_MIN_ALPHA = "nameplateMinAlpha"
|
|
local CVAR_MIN_ALPHA_DIST = "nameplateMinAlphaDistance"
|
|
local CVAR_SHOWALL = "nameplateShowAll"
|
|
local CVAR_ENEMY_ALL = "nameplateShowEnemies"
|
|
local CVAR_ENEMY_MINIONS = "nameplateShowEnemyMinions"
|
|
local CVAR_ENEMY_MINUS = "nameplateShowEnemyMinus"
|
|
local CVAR_PLATEMOTION = "nameplateMotion"
|
|
local CVAR_FRIENDLY_ALL = "nameplateShowFriends"
|
|
local CVAR_FRIENDLY_GUARDIAN = "nameplateShowFriendlyGuardians"
|
|
local CVAR_FRIENDLY_PETS = "nameplateShowFriendlyPets"
|
|
local CVAR_FRIENDLY_TOTEMS = "nameplateShowFriendlyTotems"
|
|
local CVAR_FRIENDLY_MINIONS = "nameplateShowFriendlyMinions"
|
|
local CVAR_CLASSCOLOR = "ShowClassColorInNameplate"
|
|
local CVAR_SCALE_HORIZONTAL = "NamePlateHorizontalScale"
|
|
local CVAR_SCALE_VERTICAL = "NamePlateVerticalScale"
|
|
|
|
--members
|
|
local MEMBER_UNITID = "namePlateUnitToken"
|
|
local MEMBER_GUID = "namePlateUnitGUID"
|
|
local MEMBER_NPCID = "namePlateNpcId"
|
|
local MEMBER_QUEST = "namePlateIsQuestObjective"
|
|
local MEMBER_REACTION = "namePlateUnitReaction"
|
|
local MEMBER_ALPHA = "namePlateAlpha"
|
|
local MEMBER_RANGE = "namePlateInRange"
|
|
local MEMBER_NOCOMBAT = "namePlateNoCombat"
|
|
local MEMBER_NAME = "namePlateUnitName"
|
|
local MEMBER_NAMELOWER = "namePlateUnitNameLower"
|
|
local MEMBER_TARGET = "namePlateIsTarget"
|
|
local MEMBER_CLASSIFICATION = "namePlateClassification"
|
|
|
|
--actor types
|
|
local ACTORTYPE_FRIENDLY_PLAYER = "friendlyplayer"
|
|
local ACTORTYPE_FRIENDLY_NPC = "friendlynpc"
|
|
local ACTORTYPE_ENEMY_PLAYER = "enemyplayer"
|
|
local ACTORTYPE_ENEMY_NPC = "enemynpc"
|
|
local ACTORTYPE_PLAYER = "player"
|
|
|
|
--reaction
|
|
local UNITREACTION_HOSTILE = 3
|
|
local UNITREACTION_NEUTRAL = 4
|
|
local UNITREACTION_FRIENDLY = 5
|
|
|
|
local lower = string.lower
|
|
local GetSpellInfo = GetSpellInfo or function(spellID) if not spellID then return nil end local si = C_Spell.GetSpellInfo(spellID) if si then return si.name, nil, si.iconID, si.castTime, si.minRange, si.maxRange, si.spellID, si.originalIconID end end
|
|
|
|
--db upvalues
|
|
local DB_CAPTURED_SPELLS
|
|
local DB_CAPTURED_CASTS
|
|
local DB_NPCID_CACHE
|
|
local DB_NPCID_COLORS
|
|
local DB_AURA_ALPHA
|
|
local DB_AURA_ENABLED
|
|
local DB_AURA_SEPARATE_BUFFS
|
|
|
|
local on_refresh_db = function()
|
|
local profile = Plater.db.profile
|
|
DB_CAPTURED_SPELLS = PlaterDB.captured_spells
|
|
DB_CAPTURED_CASTS = PlaterDB.captured_casts
|
|
DB_NPCID_CACHE = profile.npc_cache
|
|
DB_NPCID_COLORS = profile.npc_colors
|
|
DB_AURA_ALPHA = profile.aura_alpha
|
|
DB_AURA_ENABLED = profile.aura_enabled
|
|
DB_AURA_SEPARATE_BUFFS = Plater.db.profile.buffs_on_aura2
|
|
end
|
|
|
|
Plater.RegisterRefreshDBCallback (on_refresh_db)
|
|
|
|
local update_wago_update_icons = function()
|
|
local countMods, countScripts, hasProfileUpdate = Plater.CheckWagoUpdates(true)
|
|
local mainFrame = PlaterOptionsPanelContainer
|
|
local scriptButton = mainFrame.AllButtons [6] --~changeindex1
|
|
local modButton = mainFrame.AllButtons [7]
|
|
local profileButton = mainFrame.AllButtons [22]
|
|
|
|
if countMods > 0 then
|
|
modButton.updateIcon:Show()
|
|
else
|
|
modButton.updateIcon:Hide()
|
|
end
|
|
|
|
if countScripts > 0 then
|
|
scriptButton.updateIcon:Show()
|
|
else
|
|
scriptButton.updateIcon:Hide()
|
|
end
|
|
|
|
if hasProfileUpdate then
|
|
profileButton.updateIcon:Show()
|
|
else
|
|
profileButton.updateIcon:Hide()
|
|
end
|
|
end
|
|
Plater.UpdateOptionsTabUpdateState = update_wago_update_icons
|
|
|
|
--check if a encounter has just ended and open the aura ease tab
|
|
function Plater.CheckOptionsTab()
|
|
if (Plater.LatestEncounter) then
|
|
if (Plater.LatestEncounter + 60 > time()) then
|
|
---@type df_tabcontainer
|
|
local tabContainer = _G["PlaterOptionsPanelContainer"]
|
|
C_Timer.After(CONST_DELAY_TO_CREATE_SPELLLISTTAB+0.050, function()
|
|
tabContainer:SelectTabByIndex(CONST_LASTEVENTS_TAB_INDEX)
|
|
end)
|
|
end
|
|
end
|
|
update_wago_update_icons()
|
|
end
|
|
|
|
---@param profileName string
|
|
---@param profile table
|
|
---@param bIsUpdate boolean
|
|
---@param bKeepModsNotInUpdate boolean
|
|
---@param doNotReload boolean
|
|
function Plater.ImportAndSwitchProfile(profileName, profile, bIsUpdate, bKeepModsNotInUpdate, doNotReload, keepScaleTune)
|
|
local bWasUsingUIParent = Plater.db.profile.use_ui_parent
|
|
local scriptDataBackup = (bIsUpdate or bKeepModsNotInUpdate) and DF.table.copy({}, Plater.db.profile.script_data) or {}
|
|
local hookDataBackup = (bIsUpdate or bKeepModsNotInUpdate) and DF.table.copy({}, Plater.db.profile.hook_data) or {}
|
|
|
|
--switch to profile
|
|
Plater.db:SetProfile(profileName)
|
|
|
|
--cleanup profile -> reset to defaults
|
|
Plater.db:ResetProfile(false, true)
|
|
|
|
--import new profile settings
|
|
DF.table.copy(Plater.db.profile, profile)
|
|
|
|
--make the option reopen after the reload
|
|
Plater.db.profile.reopoen_options_panel_on_tab = TAB_INDEX_PROFILES
|
|
|
|
--check if parent to UIParent is enabled and calculate the new scale
|
|
if (Plater.db.profile.use_ui_parent) then
|
|
if (not bIsUpdate or not bWasUsingUIParent and not keepScaleTune) then --only update if necessary
|
|
Plater.db.profile.ui_parent_scale_tune = 1 / UIParent:GetEffectiveScale()
|
|
end
|
|
else
|
|
Plater.db.profile.ui_parent_scale_tune = 0
|
|
end
|
|
|
|
if (bIsUpdate or bKeepModsNotInUpdate) then
|
|
--copy user settings for mods/scripts and keep mods/scripts which are not part of the profile
|
|
for index, oldScriptObject in ipairs(scriptDataBackup) do
|
|
local scriptDB = Plater.db.profile.script_data or {}
|
|
local bFound = false
|
|
for i = 1, #scriptDB do
|
|
local scriptObject = scriptDB[i]
|
|
if (scriptObject.Name == oldScriptObject.Name) then
|
|
if (bIsUpdate) then
|
|
Plater.UpdateOptionsForModScriptImport(scriptObject, oldScriptObject)
|
|
end
|
|
|
|
bFound = true
|
|
break
|
|
end
|
|
end
|
|
|
|
if (not bFound and bKeepModsNotInUpdate) then
|
|
table.insert(scriptDB, oldScriptObject)
|
|
end
|
|
end
|
|
|
|
for index, oldScriptObject in ipairs(hookDataBackup) do
|
|
local scriptDB = Plater.db.profile.hook_data or {}
|
|
local bFound = false
|
|
for i = 1, #scriptDB do
|
|
local scriptObject = scriptDB[i]
|
|
if (scriptObject.Name == oldScriptObject.Name) then
|
|
if (bIsUpdate) then
|
|
Plater.UpdateOptionsForModScriptImport(scriptObject, oldScriptObject)
|
|
end
|
|
|
|
bFound = true
|
|
break
|
|
end
|
|
end
|
|
|
|
if (not bFound and bKeepModsNotInUpdate) then
|
|
table.insert(scriptDB, oldScriptObject)
|
|
end
|
|
end
|
|
end
|
|
|
|
--cleanup NPC cache/colors
|
|
---@type table<number, string[]> [1] npcname [2] zonename [3] language
|
|
local cache = Plater.db.profile.npc_cache
|
|
|
|
local cacheTemp = DetailsFramework.table.copy({}, cache)
|
|
for npcId, npcData in pairs(cacheTemp) do
|
|
---@cast npcData table{key1: string, key2: string, key3: string|nil}
|
|
if (tonumber(npcId)) then
|
|
cache[npcId] = nil
|
|
cache[tonumber(npcId)] = npcData
|
|
end
|
|
end
|
|
|
|
--cleanup npc colors
|
|
---@type npccolordb
|
|
local colors = Plater.db.profile.npc_colors
|
|
---@type npccolordb
|
|
local colorsTemp = DetailsFramework.table.copy({}, colors)
|
|
|
|
---@type number, npccolortable
|
|
for npcId, npcColorTable in pairs(colorsTemp) do
|
|
if tonumber(npcId) then
|
|
colors[npcId] = nil
|
|
colors[tonumber(npcId)] = npcColorTable
|
|
end
|
|
end
|
|
|
|
--cleanup cast colors/sounds
|
|
---@type castcolordb
|
|
local castColors = Plater.db.profile.cast_colors
|
|
---@type castcolordb
|
|
local castColorsTemp = DetailsFramework.table.copy({}, castColors)
|
|
|
|
---@type number, castcolortable
|
|
for spellId, castColorTable in pairs(castColorsTemp) do
|
|
if tonumber(spellId) then
|
|
castColors[spellId] = nil
|
|
castColors[tonumber(spellId)] = castColorTable
|
|
end
|
|
end
|
|
|
|
---@type renamednpcsdb
|
|
local renamedNPCs = Plater.db.profile.npcs_renamed
|
|
---@type renamednpcsdb
|
|
local renamedNPCsTemp = DetailsFramework.table.copy({}, renamedNPCs)
|
|
|
|
for npcId, renamedName in pairs(renamedNPCsTemp) do
|
|
if tonumber(npcId) then
|
|
renamedNPCs[npcId] = nil
|
|
renamedNPCs[tonumber(npcId)] = renamedName
|
|
end
|
|
end
|
|
|
|
---@type audiocuedb
|
|
local audioCues = Plater.db.profile.cast_audiocues
|
|
---@type audiocuedb
|
|
local audioCuesTemp = DetailsFramework.table.copy({}, audioCues)
|
|
|
|
for spellId, audioCuePath in pairs(audioCuesTemp) do
|
|
if tonumber(spellId) then
|
|
audioCues[spellId] = nil
|
|
audioCues[tonumber(spellId)] = audioCuePath
|
|
end
|
|
end
|
|
|
|
---@type spellanimationdb
|
|
local spellAnimations = Plater.db.profile.spell_animation_list
|
|
---@type spellanimationdb
|
|
local spellAnimationsTemp = DetailsFramework.table.copy({}, spellAnimations)
|
|
|
|
for spellId, animation in pairs(spellAnimationsTemp) do
|
|
if tonumber(spellId) then
|
|
spellAnimations[spellId] = nil
|
|
spellAnimations[tonumber(spellId)] = animation
|
|
end
|
|
end
|
|
|
|
---@type ghostauras
|
|
local ghostAuras = Plater.db.profile.ghost_auras.auras
|
|
---@type ghostauras
|
|
local ghostAurasTemp = DetailsFramework.table.copy({}, ghostAuras)
|
|
local ghostAurasDefault = PLATER_DEFAULT_SETTINGS.profile.ghost_auras.auras
|
|
--cleanup is needed for proper number indexing. will remove crap as well.
|
|
for class, specs in pairs(ghostAurasTemp) do
|
|
for specID, specData in pairs(specs) do
|
|
ghostAuras[class][specID] = nil
|
|
if ghostAurasDefault[class][tonumber(specID)] then
|
|
ghostAuras[class][tonumber(specID)] = ghostAuras[class][tonumber(specID)] or {}
|
|
for spellId, enabled in pairs(specData) do
|
|
if tonumber(spellId) then
|
|
ghostAuras[class][tonumber(specID)][tonumber(spellId)] = enabled
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- cleanup captured_spells
|
|
for spellId, data in pairs(Plater.db.profile.captured_spells) do
|
|
DB_CAPTURED_SPELLS[spellId] = DB_CAPTURED_SPELLS[spellId] or data --retain original
|
|
end
|
|
Plater.db.profile.captured_spells = nil --this does belong into PlaterDB
|
|
-- cleanup captured_casts
|
|
for spellId, data in pairs(Plater.db.profile.captured_casts) do
|
|
DB_CAPTURED_CASTS[spellId] = DB_CAPTURED_CASTS[spellId] or data --retain original
|
|
end
|
|
Plater.db.profile.captured_casts = nil --this does belong into PlaterDB
|
|
|
|
--restore CVars of the profile
|
|
Plater.RestoreProfileCVars()
|
|
|
|
--automatically reload the user UI unless explicitly posponed (external importer, for example)
|
|
if not doNotReload then
|
|
ReloadUI()
|
|
end
|
|
end
|
|
|
|
local TAB_INDEX_UIPARENTING = 5
|
|
local TAB_INDEX_PROFILES = 22
|
|
|
|
local bIsOptionsPanelFullyLoaded = false
|
|
|
|
-- ~options �ptions
|
|
function Plater.OpenOptionsPanel(pageNumber, bIgnoreLazyLoad)
|
|
platerInternal.OpenOptionspanelAfterCombat = nil
|
|
|
|
--__benchmark() --~perf
|
|
|
|
--localization
|
|
local L = DF.Language.GetLanguageTable(addonId)
|
|
|
|
if (PlaterOptionsPanelFrame) then
|
|
PlaterOptionsPanelFrame:Show()
|
|
Plater.CheckOptionsTab()
|
|
|
|
if (pageNumber) then
|
|
if (not bIsOptionsPanelFullyLoaded and not bIgnoreLazyLoad) then
|
|
C_Timer.After(1.5, function()
|
|
---@type df_tabcontainer
|
|
local tabContainer = _G["PlaterOptionsPanelContainer"]
|
|
tabContainer:SelectTabByIndex(pageNumber)
|
|
end)
|
|
else
|
|
---@type df_tabcontainer
|
|
local tabContainer = _G["PlaterOptionsPanelContainer"]
|
|
tabContainer:SelectTabByIndex(pageNumber)
|
|
end
|
|
end
|
|
|
|
return true
|
|
end
|
|
|
|
if (InCombatLockdown() and not Plater.IsInOpenWorld()) then
|
|
Plater:Msg ("Optionspanel not loaded and cannot open during combat. It will open automatically after combat ends.")
|
|
platerInternal.OpenOptionspanelAfterCombat = {pageNumber, bIgnoreLazyLoad}
|
|
return
|
|
end
|
|
|
|
if (pageNumber) then
|
|
C_Timer.After(0, function()
|
|
---@type df_tabcontainer
|
|
local tabContainer = _G["PlaterOptionsPanelContainer"]
|
|
tabContainer:SelectTabByIndex(pageNumber)
|
|
end)
|
|
end
|
|
|
|
Plater.db.profile.OptionsPanelDB = Plater.db.profile.OptionsPanelDB or {}
|
|
|
|
C_Timer.After(2, function() bIsOptionsPanelFullyLoaded = true end)
|
|
|
|
--build the main frame
|
|
local f = DF:CreateSimplePanel (UIParent, optionsWidth, optionsHeight, "Plater |cFFFF8822[|r|cFFFFFFFFNameplates|r|cFFFF8822]|r: professional addon for hardcore gamers", "PlaterOptionsPanelFrame", {UseScaleBar = true}, Plater.db.profile.OptionsPanelDB)
|
|
f.Title:SetAlpha(.75)
|
|
f:SetFrameStrata("DIALOG")
|
|
f:SetToplevel(true)
|
|
DF:ApplyStandardBackdrop(f)
|
|
f:ClearAllPoints()
|
|
PixelUtil.SetPoint(f, "center", UIParent, "center", 2, 2, 1, 1)
|
|
|
|
--over the top frame
|
|
local OTTFrame = CreateFrame("frame", "PlaterNameplatesOverTheTopFrame", f)
|
|
OTTFrame:SetFrameLevel(2000)
|
|
OTTFrame:SetSize(1, 1)
|
|
OTTFrame:SetPoint("topright", f, "topright", -22, -110)
|
|
|
|
f:HookScript("OnShow", function()
|
|
OTTFrame:Show()
|
|
end)
|
|
f:HookScript("OnHide", function()
|
|
OTTFrame:Hide()
|
|
end)
|
|
|
|
-- version text
|
|
local versionText = DF:CreateLabel (f, Plater.fullVersionInfo, 11, "white")
|
|
versionText:SetPoint ("topright", f, "topright", -25, -7)
|
|
versionText:SetAlpha(0.75)
|
|
|
|
local profile = Plater.db.profile
|
|
|
|
--local CVarDesc = "\n\n|cFFFF7700[*]|r |cFFa0a0a0CVar, not saved within Plater profile and is a Per-Character setting.|r"
|
|
local CVarDesc = "\n\n|cFFFF7700[*]|r |cFFa0a0a0CVar, saved within Plater profile and restored when loading the profile.|r"
|
|
local CVarIcon = "|cFFFF7700*|r"
|
|
local CVarNeedReload = "\n\n|cFFFF2200[*]|r |cFFa0a0a0A /reload may be required to take effect.|r"
|
|
local ImportantText = "|cFFFFFF00 Important |r: "
|
|
local SliderRightClickDesc = "\n\n" .. ImportantText .. "right click to type the value."
|
|
|
|
local hookList = {
|
|
---@param tabContainer df_tabcontainer
|
|
---@param tabButton df_tabcontainerbutton
|
|
OnSelectIndex = function(tabContainer, tabButton)
|
|
if (not tabButton.leftSelectionIndicator) then
|
|
return
|
|
end
|
|
|
|
for index, frame in ipairs(tabContainer.AllFrames) do
|
|
local tabButton = tabContainer.AllButtons[index]
|
|
tabButton.leftSelectionIndicator:SetColorTexture(.4, .4, .4)
|
|
end
|
|
|
|
tabButton.leftSelectionIndicator:SetColorTexture(1, 1, 0)
|
|
tabButton.selectedUnderlineGlow:Hide()
|
|
end,
|
|
}
|
|
|
|
local frame_options = {
|
|
y_offset = 0,
|
|
button_width = 108,
|
|
button_height = 23,
|
|
button_x = 190,
|
|
button_y = 1,
|
|
button_text_size = 10,
|
|
right_click_y = 5,
|
|
rightbutton_always_close = true,
|
|
close_text_alpha = 0.4,
|
|
container_width_offset = 30,
|
|
}
|
|
|
|
local languageInfo = {
|
|
language_addonId = addonId,
|
|
}
|
|
|
|
-- mainFrame � um frame vazio para sustentrar todos os demais frames, este frame sempre ser� mostrado
|
|
local mainFrame = DF:CreateTabContainer (f, "Plater Options", "PlaterOptionsPanelContainer",
|
|
{
|
|
--when chaging these indexes also need to change the function f.CopySettings
|
|
{name = "FrontPage", text = "OPTIONS_TABNAME_GENERALSETTINGS"},
|
|
{name = "ThreatConfig", text = "OPTIONS_TABNAME_THREAT"},
|
|
{name = "TargetConfig", text = "OPTIONS_TABNAME_TARGET"},
|
|
{name = "CastBarConfig", text = "OPTIONS_TABNAME_CASTBAR", createOnDemandFunc = platerInternal.CreateCastBarOptions},
|
|
{name = "LevelStrataConfig", text = "OPTIONS_TABNAME_STRATA"},
|
|
{name = "Scripting", text = "OPTIONS_TABNAME_SCRIPTING"},
|
|
{name = "AutoRunCode", text = "OPTIONS_TABNAME_MODDING"},
|
|
{name = "PersonalBar", text = "OPTIONS_TABNAME_PERSONAL"},
|
|
|
|
{name = "DebuffConfig", text = "OPTIONS_TABNAME_BUFF_SETTINGS"},
|
|
{name = "DebuffBlacklist", text = "OPTIONS_TABNAME_BUFF_TRACKING"},
|
|
{name = "DebuffSpecialContainer", text = "OPTIONS_TABNAME_BUFF_SPECIAL"},
|
|
{name = "GhostAurasFrame", text = "Ghost Auras"}, --localize-me
|
|
{name = "EnemyNpc", text = "OPTIONS_TABNAME_NPCENEMY"},
|
|
{name = "EnemyPlayer", text = "OPTIONS_TABNAME_PLAYERENEMY"},
|
|
{name = "FriendlyNpc", text = "OPTIONS_TABNAME_NPCFRIENDLY"},
|
|
{name = "FriendlyPlayer", text = "OPTIONS_TABNAME_PLAYERFRIENDLY"},
|
|
|
|
{name = "ColorManagement", text = "OPTIONS_TABNAME_NPC_COLORNAME"},
|
|
{name = "CastColorManagement", text = "OPTIONS_TABNAME_CASTCOLORS"},
|
|
{name = "DebuffLastEvent", text = "OPTIONS_TABNAME_BUFF_LIST"},
|
|
{name = "AnimationPanel", text = "OPTIONS_TABNAME_ANIMATIONS"},
|
|
{name = "Automation", text = "OPTIONS_TABNAME_AUTO"},
|
|
{name = "ProfileManagement", text = "OPTIONS_TABNAME_PROFILES"},
|
|
{name = "AdvancedConfig", text = "OPTIONS_TABNAME_ADVANCED", createOnDemandFunc = platerInternal.CreateAdvancedOptions},
|
|
{name = "resourceFrame", text = "OPTIONS_TABNAME_COMBOPOINTS"},
|
|
|
|
{name = "WagoIo", text = "Wago Imports"}, --wago_imports --localize-me
|
|
{name = "SearchFrame", text = "OPTIONS_TABNAME_SEARCH", createOnDemandFunc = platerInternal.CreateSearchOptions},
|
|
{name = "PluginsFrame", text = "Plugins"}, --localize-me
|
|
|
|
},
|
|
frame_options, hookList, languageInfo)
|
|
|
|
mainFrame:SetAllPoints()
|
|
|
|
--> when any setting is changed, call this function
|
|
local globalCallback = function()
|
|
Plater.IncreaseRefreshID()
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
|
|
--trigger the event "Options Changed" for mods
|
|
platerInternal.OnOptionChanged()
|
|
end
|
|
|
|
--export the function to other files
|
|
platerInternal.OptionsGlobalCallback = globalCallback
|
|
|
|
--make the tab button's text be aligned to left and fit the button's area
|
|
for index, frame in ipairs(mainFrame.AllFrames) do
|
|
--DF:ApplyStandardBackdrop(frame)
|
|
local frameBackgroundTexture = frame:CreateTexture(nil, "artwork")
|
|
frameBackgroundTexture:SetPoint("topleft", frame, "topleft", 1, -140)
|
|
frameBackgroundTexture:SetPoint("bottomright", frame, "bottomright", -1, 20)
|
|
frameBackgroundTexture:SetColorTexture (0.2317647, 0.2317647, 0.2317647)
|
|
frameBackgroundTexture:SetVertexColor (0.27, 0.27, 0.27)
|
|
frameBackgroundTexture:SetAlpha (0.3)
|
|
--frameBackgroundTexture:Hide()
|
|
|
|
--divisor shown above the background (create above)
|
|
local frameBackgroundTextureTopLine = frame:CreateTexture(nil, "artwork")
|
|
frameBackgroundTextureTopLine:SetPoint("bottomleft", frameBackgroundTexture, "topleft", 0, 0)
|
|
frameBackgroundTextureTopLine:SetPoint("bottomright", frame, "topright", -1, 0)
|
|
frameBackgroundTextureTopLine:SetHeight(1)
|
|
frameBackgroundTextureTopLine:SetColorTexture(0.1215, 0.1176, 0.1294)
|
|
frameBackgroundTextureTopLine:SetAlpha(1)
|
|
|
|
frame.titleText.fontsize = 12
|
|
|
|
local gradientBelowTheLine = DF:CreateTexture(frame, {gradient = "vertical", fromColor = "transparent", toColor = DF.IsDragonflight() and {0, 0, 0, 0.15} or {0, 0, 0, 0.25}}, 1, 100, "artwork", {0, 1, 0, 1}, "gradientBelowTheLine")
|
|
gradientBelowTheLine:SetPoint("top-bottom", frameBackgroundTextureTopLine)
|
|
|
|
local gradientAboveTheLine = DF:CreateTexture(frame, {gradient = "vertical", fromColor = DF.IsDragonflight() and {0, 0, 0, 0.3} or {0, 0, 0, 0.4}, toColor = "transparent"}, 1, 80, "artwork", {0, 1, 0, 1}, "gradientAboveTheLine")
|
|
gradientAboveTheLine:SetPoint("bottom-top", frameBackgroundTextureTopLine)
|
|
|
|
local tabButton = mainFrame.AllButtons[index]
|
|
|
|
local leftSelectionIndicator = tabButton:CreateTexture(nil, "overlay")
|
|
|
|
if (index == 1) then
|
|
leftSelectionIndicator:SetColorTexture(1, 1, 0)
|
|
else
|
|
leftSelectionIndicator:SetColorTexture(.4, .4, .4)
|
|
end
|
|
leftSelectionIndicator:SetPoint("left", tabButton.widget, "left", 2, 0)
|
|
leftSelectionIndicator:SetSize(4, tabButton:GetHeight()-4)
|
|
tabButton.leftSelectionIndicator = leftSelectionIndicator
|
|
|
|
local maxTextLength = tabButton:GetWidth() - 7
|
|
|
|
local fontString = _G[tabButton:GetName() .. "_Text"]
|
|
fontString:ClearAllPoints()
|
|
fontString:SetPoint("left", leftSelectionIndicator, "right", 2, 0)
|
|
fontString:SetJustifyH("left")
|
|
fontString:SetWidth(maxTextLength)
|
|
fontString:SetHeight(tabButton:GetHeight()+20)
|
|
fontString:SetWordWrap(true)
|
|
fontString:SetText(fontString:GetText())
|
|
|
|
local stringWidth = fontString:GetStringWidth()
|
|
|
|
--print(stringWidth, maxTextLength, fontString:GetText())
|
|
|
|
if (stringWidth > maxTextLength) then
|
|
local fontSize = DF:GetFontSize(fontString)
|
|
DF:SetFontSize(fontString, fontSize-0.5)
|
|
end
|
|
end
|
|
|
|
--1st row
|
|
local frontPageFrame = mainFrame.AllFrames [1]
|
|
local threatFrame = mainFrame.AllFrames [2]
|
|
local targetFrame = mainFrame.AllFrames [3]
|
|
local castBarFrame = mainFrame.AllFrames [4]--; print(castBarFrame:GetName())
|
|
local uiParentFeatureFrame = mainFrame.AllFrames [5]
|
|
local scriptingFrame = mainFrame.AllFrames [6]
|
|
local runCodeFrame = mainFrame.AllFrames [7]
|
|
local personalPlayerFrame = mainFrame.AllFrames [8]
|
|
|
|
--2nd row
|
|
local auraOptionsFrame = mainFrame.AllFrames [9]
|
|
local auraFilterFrame = mainFrame.AllFrames [10]
|
|
local auraSpecialFrame = mainFrame.AllFrames [11]
|
|
local ghostAuras = mainFrame.AllFrames [12]
|
|
local enemyNPCsFrame = mainFrame.AllFrames [13]
|
|
local enemyPCsFrame = mainFrame.AllFrames [14]
|
|
local friendlyNPCsFrame = mainFrame.AllFrames [15]
|
|
local friendlyPCsFrame = mainFrame.AllFrames [16]
|
|
|
|
--3rd row
|
|
local npcColorsFrame = mainFrame.AllFrames [17]; platerInternal.NpcColorsFrameIndex = 17; platerInternal.NpcColorsCreationDelay = 0.08;
|
|
local castColorsFrame = mainFrame.AllFrames [18]; platerInternal.CastColorsFrameIndex = 18; platerInternal.CastColorsCreationDelay = 0.1;
|
|
local auraLastEventFrame = mainFrame.AllFrames [19]; platerInternal.AuraLastFrameIndex = 19; platerInternal.AuraLastCreationDelay = 0.02;
|
|
local animationFrame = mainFrame.AllFrames [20] --when this index is changed, need to also change the index on Plater_AnimationEditor.lua
|
|
local autoFrame = mainFrame.AllFrames [21]
|
|
local profilesFrame = mainFrame.AllFrames [22]
|
|
local advancedFrame = mainFrame.AllFrames [23]
|
|
local resourceFrame = mainFrame.AllFrames [24]
|
|
|
|
--4th row
|
|
local wagoIoFrame = mainFrame.AllFrames [25] --wago_imports
|
|
local searchFrame = mainFrame.AllFrames [26]
|
|
local pluginsFrame = mainFrame.AllFrames [27]
|
|
|
|
local scriptButton = mainFrame.AllButtons [6] --also need update on ~changeindex1 and ~changeindex2
|
|
local modButton = mainFrame.AllButtons [7]
|
|
local profileButton = mainFrame.AllButtons [22]
|
|
local ghostAurasButton = mainFrame.AllButtons [12]
|
|
|
|
--[=[ ghost auras isn't new anymore, keeping this code in case need to add the button into another tab
|
|
if (time() + 60*60*24*15 > 1647542962) then
|
|
ghostAuras.newTexture = ghostAurasButton:CreateTexture(nil, "overlay", nil, 7)
|
|
ghostAuras.newTexture:SetTexture([[Interface\AddOns\Plater\images\new]])
|
|
ghostAuras.newTexture:SetPoint("right", ghostAurasButton.widget, "right", 4, -9)
|
|
ghostAuras.newTexture:SetSize(35, 35)
|
|
ghostAuras.newTexture:SetAlpha(0.88)
|
|
end
|
|
--]=]
|
|
|
|
C_Timer.After(0.1, function() Plater.Resources.BuildResourceOptionsTab(resourceFrame) end)
|
|
C_Timer.After(0.1, function() Plater.Auras.BuildGhostAurasOptionsTab(ghostAuras) end)
|
|
C_Timer.After(platerInternal.CastColorsCreationDelay, function() Plater.CreateCastColorOptionsFrame(castColorsFrame) end)
|
|
--C_Timer.After(platerInternal.NpcColorsCreationDelay, function() Plater.CreateNpcColorOptionsFrame(npcColorsFrame) end)
|
|
|
|
C_Timer.After(CONST_DELAY_TO_CREATE_SPELLLISTTAB, function()
|
|
Plater.CreateAuraLastEventOptionsFrame(auraLastEventFrame)
|
|
end)
|
|
|
|
C_Timer.After(0.20, function()
|
|
Plater.CreateNpcColorOptionsFrame(npcColorsFrame)
|
|
end)
|
|
|
|
C_Timer.After(0.1, function() platerInternal.Plugins.CreatePluginsOptionsTab(pluginsFrame) end)
|
|
local generalOptionsAnchor = CreateFrame ("frame", "$parentOptionsAnchor", frontPageFrame, BackdropTemplateMixin and "BackdropTemplate")
|
|
generalOptionsAnchor:SetSize (1, 1)
|
|
generalOptionsAnchor:SetPoint ("topleft", frontPageFrame, "topleft", startX, startY)
|
|
|
|
local statusBar = CreateFrame ("frame", "$parentStatusBar", f, BackdropTemplateMixin and "BackdropTemplate")
|
|
statusBar:SetPoint ("bottomleft", f, "bottomleft")
|
|
statusBar:SetPoint ("bottomright", f, "bottomright")
|
|
statusBar:SetHeight (20)
|
|
DF:ApplyStandardBackdrop (statusBar)
|
|
statusBar:SetAlpha (0.9)
|
|
statusBar:SetFrameLevel (f:GetFrameLevel()+10)
|
|
|
|
DF:BuildStatusbarAuthorInfo (statusBar, "Plater is Maintained by ", "Cont1nuity & Terciob")
|
|
|
|
--if (DF.IsDragonflight()) then
|
|
local bottomGradient = DF:CreateTexture(f, {gradient = "vertical", fromColor = {0, 0, 0, 0.6}, toColor = "transparent"}, 1, 100, "artwork", {0, 1, 0, 1}, "bottomGradient")
|
|
bottomGradient:SetPoint("bottom-top", statusBar)
|
|
--end
|
|
|
|
--wago.io support
|
|
local wagoDesc = DF:CreateLabel (statusBar, L["OPTIONS_STATUSBAR_TEXT"])
|
|
wagoDesc.textcolor = "white"
|
|
wagoDesc.textsize = 11
|
|
wagoDesc:SetPoint ("left", statusBar.DiscordTextBox, "right", 10, 0)
|
|
|
|
wagoDesc.Anim = DF:CreateAnimationHub (wagoDesc)
|
|
wagoDesc.Anim:SetLooping ("repeat")
|
|
DF:CreateAnimation (wagoDesc.Anim, "alpha", 1, 1, .3, .7)
|
|
DF:CreateAnimation (wagoDesc.Anim, "alpha", 2, 1, 1, .3)
|
|
--wagoDesc.Anim:Play()
|
|
|
|
local updateIconScripts = scriptButton.button:CreateTexture ("$parentIcon", "overlay")
|
|
updateIconScripts:SetSize (16, 10)
|
|
updateIconScripts:SetTexture([[Interface\AddOns\Plater\images\wagologo.tga]])
|
|
updateIconScripts:SetPoint("bottomright", scriptButton.button, "bottomright", -2, 2)
|
|
updateIconScripts:Hide()
|
|
scriptButton.updateIcon = updateIconScripts
|
|
|
|
local updateIconMods = modButton.button:CreateTexture ("$parentIcon", "overlay")
|
|
updateIconMods:SetSize (16, 10)
|
|
updateIconMods:SetTexture([[Interface\AddOns\Plater\images\wagologo.tga]])
|
|
updateIconMods:SetPoint("bottomright", modButton.button, "bottomright", -2, 2)
|
|
updateIconMods:Hide()
|
|
modButton.updateIcon = updateIconMods
|
|
|
|
local updateIconProfile = profileButton.button:CreateTexture ("$parentIcon", "overlay")
|
|
updateIconProfile:SetSize (16, 10)
|
|
updateIconProfile:SetTexture([[Interface\AddOns\Plater\images\wagologo.tga]])
|
|
updateIconProfile:SetPoint("bottomright", profileButton.button, "bottomright", -2, 2)
|
|
updateIconProfile:Hide()
|
|
profileButton.updateIcon = updateIconProfile
|
|
|
|
f.AllMenuFrames = {}
|
|
for _, frame in ipairs (mainFrame.AllFrames) do
|
|
tinsert (f.AllMenuFrames, frame)
|
|
end
|
|
tinsert (f.AllMenuFrames, generalOptionsAnchor)
|
|
|
|
--~languages
|
|
---executed when the user selects a language in the dropdown
|
|
---@param languageId string
|
|
local onLanguageChangedCallback = function(languageId)
|
|
PlaterLanguage.language = languageId
|
|
end
|
|
|
|
---@type string
|
|
local currentLanguage = PlaterLanguage.language
|
|
|
|
--addonId, parent, callback, defaultLanguage
|
|
local languageSelectorDropdown = DF.Language.CreateLanguageSelector(addonId, OTTFrame, onLanguageChangedCallback, currentLanguage)
|
|
languageSelectorDropdown:SetPoint("topright", 0, 0)
|
|
--end of languages
|
|
|
|
--> on profile change
|
|
function f.RefreshOptionsFrame()
|
|
for _, frame in ipairs (f.AllMenuFrames) do
|
|
if (frame.RefreshOptions) then
|
|
frame:RefreshOptions()
|
|
end
|
|
end
|
|
Plater.UpdateMaxCastbarTextLength()
|
|
end
|
|
|
|
function f.CopySettingsConfirmed()
|
|
DF.table.copy (Plater.db.profile.plate_config [f.CopyingTo], Plater.db.profile.plate_config [f.CopyingFrom])
|
|
PlaterOptionsPanelFrame.RefreshOptionsFrame()
|
|
Plater:Msg (L["OPTIONS_SETTINGS_COPIED"])
|
|
end
|
|
|
|
--> copy settings from one actor type to another
|
|
function f.CopySettings (_, _, from)
|
|
local currentTab = mainFrame.CurrentIndex
|
|
local settingsTo
|
|
if (currentTab == 8) then
|
|
settingsTo = "player"
|
|
elseif (currentTab == 13) then
|
|
settingsTo = "enemynpc"
|
|
elseif (currentTab == 14) then
|
|
settingsTo = "enemyplayer"
|
|
elseif (currentTab == 15) then
|
|
settingsTo = "friendlynpc"
|
|
elseif (currentTab == 16) then
|
|
settingsTo = "friendlyplayer"
|
|
end
|
|
|
|
if (settingsTo) then
|
|
f.CopyingFrom = from
|
|
f.CopyingTo = settingsTo
|
|
DF:ShowPromptPanel ("Copy setting from '" .. from .. "' to '" .. settingsTo .. "' ?", f.CopySettingsConfirmed, function() f.CopyingFrom = nil; f.CopyingTo = nil; end)
|
|
else
|
|
Plater:Msg (L["OPTIONS_SETTINGS_FAIL_COPIED"])
|
|
end
|
|
end
|
|
|
|
local copy_settings_options = {
|
|
{label = L["OPTIONS_TABNAME_PERSONAL"], value = "player", onclick = f.CopySettings},
|
|
{label = L["OPTIONS_TABNAME_NPCENEMY"], value = "enemynpc", onclick = f.CopySettings},
|
|
{label = L["OPTIONS_TABNAME_PLAYERENEMY"], value = "enemyplayer", onclick = f.CopySettings},
|
|
{label = L["OPTIONS_TABNAME_NPCFRIENDLY"], value = "friendlynpc", onclick = f.CopySettings},
|
|
{label = L["OPTIONS_TABNAME_PLAYERFRIENDLY"], value = "friendlyplayer", onclick = f.CopySettings},
|
|
}
|
|
|
|
|
|
------------------------------------------------------------------------------------------------------------
|
|
--> profile frame ~profile
|
|
|
|
do
|
|
|
|
--logic
|
|
--when the user click to export the current profile
|
|
function profilesFrame.ExportCurrentProfile()
|
|
profilesFrame.IsExporting = true
|
|
profilesFrame.IsImporting = nil
|
|
profilesFrame.ImportStringField.importDataText = nil
|
|
|
|
local editbox = profilesFrame.ImportStringField.editbox
|
|
editbox:SetMaxBytes (IMPORT_EXPORT_EDIT_MAX_BYTES)
|
|
editbox:SetScript("OnChar", nil);
|
|
|
|
if (not profilesFrame.ImportingProfileAlert) then
|
|
profilesFrame.ImportingProfileAlert = CreateFrame ("frame", "PlaterExportingProfileAlert", UIParent, BackdropTemplateMixin and "BackdropTemplate")
|
|
profilesFrame.ImportingProfileAlert:SetSize (340, 75)
|
|
profilesFrame.ImportingProfileAlert:SetPoint ("center")
|
|
profilesFrame.ImportingProfileAlert:SetFrameStrata ("TOOLTIP")
|
|
DF:ApplyStandardBackdrop (profilesFrame.ImportingProfileAlert)
|
|
profilesFrame.ImportingProfileAlert:SetBackdropBorderColor (1, 0.8, 0.1)
|
|
|
|
profilesFrame.ImportingProfileAlert.IsLoadingLabel1 = DF:CreateLabel (profilesFrame.ImportingProfileAlert, L["OPTIONS_PROFILE_CONFIG_EXPORTINGTASK"])
|
|
profilesFrame.ImportingProfileAlert.IsLoadingLabel2 = DF:CreateLabel (profilesFrame.ImportingProfileAlert, L["OPTIONS_PLEASEWAIT"])
|
|
profilesFrame.ImportingProfileAlert.IsLoadingImage1 = DF:CreateImage (profilesFrame.ImportingProfileAlert, [[Interface\DialogFrame\UI-Dialog-Icon-AlertOther]], 32, 32)
|
|
profilesFrame.ImportingProfileAlert.IsLoadingLabel1.align = "center"
|
|
profilesFrame.ImportingProfileAlert.IsLoadingLabel2.align = "center"
|
|
|
|
profilesFrame.ImportingProfileAlert.IsLoadingLabel1:SetPoint ("center", 16, 10)
|
|
profilesFrame.ImportingProfileAlert.IsLoadingLabel2:SetPoint ("center", 16, -5)
|
|
profilesFrame.ImportingProfileAlert.IsLoadingImage1:SetPoint ("left", 10, 0)
|
|
end
|
|
|
|
profilesFrame.NewProfileLabel:Hide()
|
|
profilesFrame.NewProfileTextEntry:Hide()
|
|
|
|
profilesFrame.ImportStringField:Show()
|
|
profilesFrame.ImportingProfileAlert:Show()
|
|
|
|
C_Timer.After (.1, function()
|
|
--save mod/script editing
|
|
local hookFrame = mainFrame.AllFrames [7]
|
|
local scriptObject = hookFrame.GetCurrentScriptObject()
|
|
if (scriptObject) then
|
|
hookFrame.SaveScript()
|
|
hookFrame.CancelEditing()
|
|
end
|
|
local scriptingFrame = mainFrame.AllFrames [6]
|
|
local scriptObject = scriptingFrame.GetCurrentScriptObject()
|
|
if (scriptObject) then
|
|
scriptingFrame.SaveScript()
|
|
scriptingFrame.CancelEditing()
|
|
end
|
|
|
|
Plater.db.profile.captured_spells = {} -- cleanup, although it should be empty, stored in PlaterDB
|
|
Plater.db.profile.captured_casts = {} -- cleanup, although it should be empty, stored in PlaterDB
|
|
|
|
--create a modifiable copy, do not modify "in use" profile for safety
|
|
local profile = DF.table.copy(Plater.db.profile, {})
|
|
local npc_cacheOrig = Plater.db.profile.npc_cache
|
|
|
|
--do not export cache data, these data can be rebuild at run time
|
|
profile.npc_cache = {}
|
|
profile.saved_cvars_last_change = {}
|
|
profile.script_data_trash = {}
|
|
profile.hook_data_trash = {}
|
|
profile.plugins_data = {} -- it might be good to remove those to ensure no addon dependencies break anything
|
|
--profile.spell_animation_list = nil -- nil -> default will be used. but this should be part of the profile?!
|
|
|
|
--retain npc_cache for set npc_colors
|
|
for npcID, _ in pairs (profile.npc_colors) do
|
|
profile.npc_cache [npcID] = npc_cacheOrig [npcID]
|
|
end
|
|
--retain npc_cache for set npcs_renamed
|
|
for npcID, _ in pairs (profile.npcs_renamed) do
|
|
profile.npc_cache [npcID] = npc_cacheOrig [npcID]
|
|
end
|
|
--retain npc_cache, captured_spells and captured_casts for set cast_colors
|
|
for spellId, _ in pairs (profile.cast_colors) do
|
|
profile.captured_spells[spellId] = DB_CAPTURED_SPELLS[spellId]
|
|
profile.captured_casts[spellId] = DB_CAPTURED_CASTS[spellId]
|
|
local capturedSpell = DB_CAPTURED_SPELLS[spellId] or DB_CAPTURED_CASTS[spellId]
|
|
if capturedSpell and capturedSpell.npcID then
|
|
local npcID = capturedSpell.npcID
|
|
profile.npc_cache [npcID] = npc_cacheOrig [npcID]
|
|
end
|
|
end
|
|
--retain npc_cache, captured_spells and captured_casts for set cast_colors
|
|
for spellId, _ in pairs (profile.cast_audiocues) do
|
|
profile.captured_spells[spellId] = DB_CAPTURED_SPELLS[spellId]
|
|
profile.captured_casts[spellId] = DB_CAPTURED_CASTS[spellId]
|
|
local capturedSpell = DB_CAPTURED_SPELLS[spellId] or DB_CAPTURED_CASTS[spellId]
|
|
if capturedSpell and capturedSpell.npcID then
|
|
local npcID = capturedSpell.npcID
|
|
profile.npc_cache [npcID] = npc_cacheOrig [npcID]
|
|
end
|
|
end
|
|
|
|
--cleanup mods HooksTemp (for good)
|
|
for i = #profile.hook_data, 1, -1 do
|
|
local scriptObject = profile.hook_data [i]
|
|
scriptObject.HooksTemp = {}
|
|
end
|
|
|
|
--store current profile name
|
|
profile.profile_name = Plater.db:GetCurrentProfile()
|
|
profile.tocversion = select(4, GetBuildInfo()) -- provide export toc
|
|
|
|
--convert the profile to string
|
|
local data = Plater.CompressData (profile, "print")
|
|
if (not data) then
|
|
Plater:Msg ("failed to compress the profile")
|
|
end
|
|
|
|
--export to string
|
|
profilesFrame.ImportStringField:SetText (data or L["OPTIONS_ERROR_EXPORTSTRINGERROR"])
|
|
end)
|
|
|
|
C_Timer.After (.3, function()
|
|
profilesFrame.ImportStringField:SetFocus (true)
|
|
profilesFrame.ImportStringField.editbox:HighlightText()
|
|
profilesFrame.ImportingProfileAlert:Hide()
|
|
end)
|
|
end
|
|
|
|
function profilesFrame.ImportProfile()
|
|
profilesFrame.IsExporting = nil
|
|
profilesFrame.IsImporting = true
|
|
|
|
profilesFrame.ImportStringField.importDataText = nil
|
|
local editbox = profilesFrame.ImportStringField.editbox
|
|
local pasteBuffer, pasteCharCount, isPasting = {}, 0, false
|
|
--editbox:SetMaxBytes (1) -- for performance
|
|
|
|
local function clearBuffer(self)
|
|
self:SetScript('OnUpdate', nil)
|
|
editbox:SetMaxBytes (IMPORT_EXPORT_EDIT_MAX_BYTES)
|
|
isPasting = false
|
|
if pasteCharCount > 10 then
|
|
local paste = strtrim(table.concat(pasteBuffer))
|
|
|
|
local wagoProfile = Plater.DecompressData (paste, "print")
|
|
if (wagoProfile and type (wagoProfile) == "table") then
|
|
if (wagoProfile.plate_config) then
|
|
local existingProfileName = nil
|
|
local wagoInfoText = "Import data verified.\n\n"
|
|
if wagoProfile.url then
|
|
local impProfUrl = wagoProfile.url or ""
|
|
local impProfID = impProfUrl:match("wago.io/([^/]+)/([0-9]+)") or impProfUrl:match("wago.io/([^/]+)$")
|
|
local profiles = Plater.db.profiles
|
|
if impProfID then
|
|
for pName, pData in pairs(profiles) do
|
|
local pUrl = pData.url or ""
|
|
local id = pUrl:match("wago.io/([^/]+)/([0-9]+)") or pUrl:match("wago.io/([^/]+)$")
|
|
if id and impProfID == id then
|
|
existingProfileName = pName
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
wagoInfoText = wagoInfoText .. "Extracted the following wago information from the profile data:\n"
|
|
wagoInfoText = wagoInfoText .. " Local Profile Name: " .. (wagoProfile.profile_name or "N/A") .. "\n"
|
|
wagoInfoText = wagoInfoText .. " Wago-Revision: " .. (wagoProfile.version or "-") .. "\n"
|
|
wagoInfoText = wagoInfoText .. " Wago-Version: " .. (wagoProfile.semver or "-") .. "\n"
|
|
wagoInfoText = wagoInfoText .. " Wago-URL: " .. (wagoProfile.url and (wagoProfile.url .. "\n") or "")
|
|
wagoInfoText = wagoInfoText .. (existingProfileName and ("\nThis profile already exists as: '" .. existingProfileName .. "' in your profiles.\n") or "")
|
|
else
|
|
wagoInfoText = "This profile does not contain any wago.io information.\n"
|
|
end
|
|
|
|
wagoInfoText = wagoInfoText .. "\nYou may change the name below and click on '".. L["OPTIONS_OKAY"] .. "' to import the profile."
|
|
|
|
editbox:SetText (wagoInfoText)
|
|
profilesFrame.ImportStringField.importDataText = paste
|
|
local curNewProfName = profilesFrame.NewProfileTextEntry:GetText()
|
|
if existingProfileName and curNewProfName and curNewProfName == "MyNewProfile" then
|
|
profilesFrame.NewProfileTextEntry:SetText(existingProfileName)
|
|
elseif wagoProfile.profile_name and wagoProfile.profile_name ~= "Default" and curNewProfName and curNewProfName == "MyNewProfile" then
|
|
profilesFrame.NewProfileTextEntry:SetText(wagoProfile.profile_name)
|
|
end
|
|
else
|
|
local scriptType = Plater.GetDecodedScriptType (wagoProfile)
|
|
if (scriptType == "hook" or scriptType == "script") then
|
|
editbox:SetText (L["OPTIONS_PROFILE_ERROR_WRONGTAB"])
|
|
else
|
|
editbox:SetText (L["OPTIONS_PROFILE_ERROR_STRINGINVALID"])
|
|
end
|
|
end
|
|
else
|
|
editbox:SetText("Could not decompress the data. The text pasted does not appear to be a serialized Plater profile.\nTry copying the import string again.")
|
|
end
|
|
|
|
editbox:ClearFocus()
|
|
end
|
|
end
|
|
editbox:SetScript('OnChar', function(self, c)
|
|
if not isPasting then
|
|
if editbox:GetMaxBytes() ~= 1 then -- ensure this for performance!
|
|
editbox:SetMaxBytes (1)
|
|
end
|
|
pasteBuffer, pasteCharCount, isPasting = {}, 0, true
|
|
self:SetScript('OnUpdate', clearBuffer)
|
|
end
|
|
pasteCharCount = pasteCharCount + 1
|
|
pasteBuffer[pasteCharCount] = c
|
|
end)
|
|
|
|
profilesFrame.ImportStringField:Show()
|
|
|
|
C_Timer.After (.2, function()
|
|
profilesFrame.ImportStringField:SetText ("<Paste import string here>")
|
|
profilesFrame.ImportStringField:SetFocus (true)
|
|
end)
|
|
|
|
profilesFrame.NewProfileLabel:Show()
|
|
profilesFrame.NewProfileTextEntry:Show()
|
|
end
|
|
|
|
function profilesFrame.HideStringField()
|
|
profilesFrame.IsExporting = nil
|
|
profilesFrame.IsImporting = nil
|
|
profilesFrame.ImportStringField.importDataText = nil
|
|
|
|
local editbox = profilesFrame.ImportStringField.editbox
|
|
editbox:SetMaxBytes (IMPORT_EXPORT_EDIT_MAX_BYTES)
|
|
editbox:SetScript("OnChar", nil);
|
|
|
|
profilesFrame.ImportStringField:Hide()
|
|
profilesFrame.ImportStringField:SetText ("")
|
|
|
|
profilesFrame.NewProfileLabel:Hide()
|
|
profilesFrame.NewProfileTextEntry:Hide()
|
|
end
|
|
|
|
--importing a profile in the profiles tab
|
|
--this is called when the user pressess the okay button to confirm the profile import
|
|
function profilesFrame.ConfirmImportProfile(isWagoUpdate)
|
|
if (profilesFrame.IsExporting) then
|
|
profilesFrame.HideStringField()
|
|
return
|
|
end
|
|
|
|
local text = profilesFrame.ImportStringField.importDataText
|
|
local profile = Plater.DecompressData (text, "print")
|
|
|
|
if (profile and type (profile) == "table") then
|
|
|
|
--decompress success, need to see if this is a real profile and not a script
|
|
if (not profile.plate_config) then
|
|
local scriptType = Plater.GetDecodedScriptType (profile)
|
|
if (scriptType == "hook" or scriptType == "script") then
|
|
DF:ShowErrorMessage (L["OPTIONS_PROFILE_ERROR_WRONGTAB"], "Plater Nameplates")
|
|
else
|
|
DF:ShowErrorMessage (L["OPTIONS_PROFILE_ERROR_STRINGINVALID"], "Plater Nameplates")
|
|
end
|
|
return
|
|
end
|
|
|
|
local profileName = profilesFrame.NewProfileTextEntry:GetText()
|
|
if (profileName == "") then
|
|
Plater:Msg (L["OPTIONS_PROFILE_ERROR_PROFILENAME"])
|
|
return
|
|
end
|
|
|
|
if (not profile.spell_animation_list) then
|
|
profile.spell_animation_list = DF.table.copy ({}, PLATER_DEFAULT_SETTINGS.profile.spell_animation_list)
|
|
end
|
|
|
|
--if true then --debug: dump the uncompressed table
|
|
-- Details:DumpTable (profile)
|
|
-- return
|
|
--end
|
|
|
|
local profiles = Plater.db:GetProfiles()
|
|
local profileExists = false
|
|
for i, existingProfName in ipairs(profiles) do
|
|
if existingProfName == profileName then
|
|
profileExists = true
|
|
break
|
|
end
|
|
end
|
|
|
|
if profileExists then
|
|
--DF:ShowPromptPanel ("Warning!\nA Plater profile with the name \profileName.. "\" already exists. Are you sure you want to overwrite it?\nIf not: please specify a new name for the profile.\nOverwriting an existing profile cannot be undone!", function() profilesFrame.DoProfileImport(profileName, profile) end, function() end, true, 500)
|
|
DF:ShowPromptPanel (format (L["OPTIONS_PROFILE_IMPORT_OVERWRITE"], profileName), function() profilesFrame.DoProfileImport(profileName, profile, true, isWagoUpdate) end, function() end, true, 500)
|
|
else
|
|
profilesFrame.DoProfileImport(profileName, profile, false, false)
|
|
end
|
|
|
|
end
|
|
end
|
|
|
|
---@param profileName string
|
|
---@param profile table
|
|
---@param bIsUpdate boolean
|
|
---@param bKeepModsNotInUpdate boolean
|
|
function profilesFrame.DoProfileImport(profileName, profile, bIsUpdate, bKeepModsNotInUpdate)
|
|
profilesFrame.HideStringField()
|
|
|
|
profile.profile_name = nil --no need to import
|
|
|
|
Plater.ImportAndSwitchProfile(profileName, profile, bIsUpdate, bKeepModsNotInUpdate, false)
|
|
end
|
|
|
|
function profilesFrame.OpenProfileManagement()
|
|
f:Hide()
|
|
if SettingsPanel then
|
|
if not Plater.ProfileFrame then
|
|
Plater.ProfileFrame = LibStub ("AceConfig-3.0"):RegisterOptionsTable ("Plater", LibStub ("AceDBOptions-3.0"):GetOptionsTable (Plater.db, true))
|
|
end
|
|
LibStub ("AceConfigDialog-3.0"):Open("Plater")
|
|
else
|
|
Plater:OpenInterfaceProfile()
|
|
end
|
|
C_Timer.After (.5, function()
|
|
mainFrame:SetIndex(1)
|
|
mainFrame:SelectTabByIndex(1)
|
|
end)
|
|
end
|
|
|
|
function profilesFrame.UpdateProfile()
|
|
if not Plater.HasWagoUpdate(Plater.db.profile) then return end
|
|
|
|
local url = Plater.db.profile.url or ""
|
|
local id = url:match("wago.io/([^/]+)/([0-9]+)") or url:match("wago.io/([^/]+)$")
|
|
if id and Plater.CompanionDataSlugs[id] then
|
|
local update = Plater.CompanionDataSlugs[id]
|
|
|
|
profilesFrame.IsExporting = nil
|
|
profilesFrame.IsImporting = true
|
|
|
|
profilesFrame.NewProfileTextEntry:SetText(Plater.db:GetCurrentProfile())
|
|
profilesFrame.ImportStringField.importDataText = update.encoded
|
|
|
|
profilesFrame.ConfirmImportProfile(true)
|
|
end
|
|
end
|
|
|
|
local function checkProfilesUpdateEnabled()
|
|
local hasProfileUpdate = Plater.HasWagoUpdate(Plater.db.profile)
|
|
local wago_update = Plater.GetWagoUpdateDataFromCompanion(Plater.db.profile)
|
|
local companionVersion = wago_update and tonumber(wago_update.wagoVersion) or nil
|
|
if (Plater.db.profile.skipWagoUpdate and wago_update) or hasProfileUpdate then
|
|
profilesFrame.skipProfileUpdateButton:Enable()
|
|
else
|
|
profilesFrame.skipProfileUpdateButton:Disable()
|
|
end
|
|
|
|
if hasProfileUpdate then
|
|
profilesFrame.updateProfileButton:Enable()
|
|
else
|
|
profilesFrame.updateProfileButton:Disable()
|
|
end
|
|
update_wago_update_icons()
|
|
end
|
|
|
|
function profilesFrame.IgnoreUpdateProfile()
|
|
if not Plater.db.profile.ignoreWagoUpdate then
|
|
profilesFrame.ignoreProfileUpdateButton.button.text:SetText ("Don't ignore Profile Update")
|
|
Plater.db.profile.ignoreWagoUpdate = true
|
|
checkProfilesUpdateEnabled()
|
|
else
|
|
profilesFrame.ignoreProfileUpdateButton.button.text:SetText ("Ignore Profile Update")
|
|
Plater.db.profile.ignoreWagoUpdate = nil
|
|
checkProfilesUpdateEnabled()
|
|
end
|
|
end
|
|
|
|
function profilesFrame.SkipUpdateProfile()
|
|
local hasProfileUpdate = Plater.HasWagoUpdate(Plater.db.profile)
|
|
local wago_update = Plater.GetWagoUpdateDataFromCompanion(Plater.db.profile)
|
|
local companionVersion = wago_update and tonumber(wago_update.wagoVersion) or nil
|
|
if (Plater.db.profile.skipWagoUpdate and wago_update) or hasProfileUpdate then
|
|
if Plater.db.profile.skipWagoUpdate or companionVersion and Plater.db.profile.skipWagoUpdate == companionVersion then
|
|
profilesFrame.skipProfileUpdateButton.button.text:SetText ("Skip this version")
|
|
Plater.db.profile.skipWagoUpdate = nil
|
|
checkProfilesUpdateEnabled()
|
|
else
|
|
profilesFrame.skipProfileUpdateButton.button.text:SetText ("Don't skip this version")
|
|
Plater.db.profile.skipWagoUpdate = companionVersion
|
|
checkProfilesUpdateEnabled()
|
|
end
|
|
end
|
|
end
|
|
|
|
function profilesFrame.CopyWagoUrl()
|
|
Plater.OpenCopyUrlDialog(Plater.db.profile.url)
|
|
end
|
|
|
|
profilesFrame:SetScript ("OnShow", function()
|
|
profilesFrame.HideStringField()
|
|
end)
|
|
|
|
--frames
|
|
--export profile button
|
|
local exportProfileButton = DF:CreateButton (profilesFrame, profilesFrame.ExportCurrentProfile, 160, 20, L["OPTIONS_PROFILE_CONFIG_EXPORTPROFILE"], -1, nil, nil, "ExportButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
exportProfileButton:SetPoint ("topleft", profilesFrame, "topleft", 10, startY)
|
|
|
|
--import profile button
|
|
local importProfileButton = DF:CreateButton (profilesFrame, profilesFrame.ImportProfile, 160, 20, L["OPTIONS_PROFILE_CONFIG_IMPORTPROFILE"], -1, nil, nil, "ImportButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
importProfileButton:SetPoint ("topleft", exportProfileButton, "bottomleft", 0, -2)
|
|
|
|
--open profile management button
|
|
local openManagementProfileButton = DF:CreateButton (profilesFrame, profilesFrame.OpenProfileManagement, 160, 20, L["OPTIONS_PROFILE_CONFIG_OPENSETTINGS"], -1, nil, nil, "ProfileSettingsButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
openManagementProfileButton:SetPoint ("topleft", importProfileButton, "bottomleft", 0, -10)
|
|
|
|
local moreProfilesLabel = DF:CreateLabel (profilesFrame, L["OPTIONS_PROFILE_CONFIG_MOREPROFILES"] .. ":", DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
moreProfilesLabel:SetPoint ("topleft", openManagementProfileButton, "bottomleft", 0, -20)
|
|
|
|
local moreProfilesTextEntry = DF:CreateTextEntry (profilesFrame, function()end, 160, 20, "moreProfilesTextEntry", nil, nil, DF:GetTemplate ("dropdown", "PLATER_DROPDOWN_OPTIONS"))
|
|
moreProfilesTextEntry:SetPoint ("topleft", moreProfilesLabel, "bottomleft", 0, -2)
|
|
moreProfilesTextEntry:SetText ("https://wago.io/plater")
|
|
|
|
moreProfilesTextEntry:SetHook ("OnEditFocusGained", function()
|
|
moreProfilesTextEntry:HighlightText()
|
|
end)
|
|
|
|
local profileInfoLabel = DF:CreateLabel (profilesFrame, "Current Profile Info" .. ":", DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
profileInfoLabel:SetPoint ("topleft", moreProfilesTextEntry, "bottomleft", 0, -30)
|
|
|
|
local profileInfoText = ""
|
|
profileInfoText = profileInfoText .. "Name: " .. Plater.db:GetCurrentProfile() .. "\n\n"
|
|
profileInfoText = profileInfoText .. "Profile-Revision: " .. (Plater.db.profile.version or "-") .. "\n"
|
|
profileInfoText = profileInfoText .. "Profile-Version: " .. (Plater.db.profile.semver or "-") .. "\n\n"
|
|
profileInfoText = profileInfoText .. (Plater.db.profile.url or "")
|
|
|
|
local profileInfo = DF:CreateLabel(profilesFrame, profileInfoText, 10, "orange")
|
|
profileInfo.width = 160
|
|
profileInfo.height = 80
|
|
profileInfo.valign = "top"
|
|
profileInfo.align = "left"
|
|
profileInfo:SetPoint("topleft", profileInfoLabel, "bottomleft", 0, -2)
|
|
|
|
local copyWagoURLButton = DF:CreateButton (profilesFrame, profilesFrame.CopyWagoUrl, 160, 20, "Copy Wago URL", -1, nil, nil, "CopyWagoUrlButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
copyWagoURLButton:SetPoint ("topleft", profileInfo, "bottomleft", 0, -2)
|
|
if not Plater.db.profile.url then
|
|
copyWagoURLButton:Disable()
|
|
end
|
|
|
|
local updateProfileLabel = DF:CreateLabel (profilesFrame, "Update from wago.io" .. ":", DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
updateProfileLabel:SetPoint ("topleft", copyWagoURLButton, "bottomleft", 0, -30)
|
|
|
|
--import profile button
|
|
local updateProfileButton = DF:CreateButton (profilesFrame, profilesFrame.UpdateProfile, 160, 20, "Update Profile", -1, nil, nil, "WagoUpdateProfileButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
updateProfileButton:SetPoint ("topleft", updateProfileLabel, "bottomleft", 0, -2)
|
|
profilesFrame.updateProfileButton = updateProfileButton
|
|
|
|
local updateIcon = updateProfileButton.button:CreateTexture ("$parentIcon", "overlay")
|
|
updateIcon:SetSize (16, 10)
|
|
updateIcon:SetTexture([[Interface\AddOns\Plater\images\wagologo.tga]])
|
|
updateIcon:SetPoint("bottomright", updateProfileButton.button, "bottomright", -2, 2)
|
|
updateProfileButton.updateIcon = updateIcon
|
|
|
|
--ignore profile update button
|
|
local ignoreProfileUpdateButton = DF:CreateButton (profilesFrame, profilesFrame.IgnoreUpdateProfile, 160, 20, "Ignore Profile Update", -1, nil, nil, "WagoIgnoreUpdateProfileButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
ignoreProfileUpdateButton:SetPoint ("topleft", updateProfileButton, "bottomleft", 0, -2)
|
|
profilesFrame.ignoreProfileUpdateButton = ignoreProfileUpdateButton
|
|
|
|
--ignore profile update button
|
|
local skipProfileUpdateButton = DF:CreateButton (profilesFrame, profilesFrame.SkipUpdateProfile, 160, 20, "Skip this version", -1, nil, nil, "WagoSkipUpdateProfileButton", nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
skipProfileUpdateButton:SetPoint ("topleft", ignoreProfileUpdateButton, "bottomleft", 0, -2)
|
|
profilesFrame.skipProfileUpdateButton = skipProfileUpdateButton
|
|
|
|
local wagoInfoLabel = DF:CreateLabel (profilesFrame, "Wago ProfileInfo" .. ":", DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
wagoInfoLabel:SetPoint ("topleft", skipProfileUpdateButton, "bottomleft", 0, -10)
|
|
|
|
local wagoInfo = DF:CreateLabel(profilesFrame, "", 10, "orange")
|
|
wagoInfo.width = 160
|
|
wagoInfo.height = 80
|
|
wagoInfo.valign = "top"
|
|
wagoInfo.align = "left"
|
|
wagoInfo:SetPoint("topleft", wagoInfoLabel, "bottomleft", 0, -2)
|
|
|
|
local hasProfileUpdate = Plater.HasWagoUpdate(Plater.db.profile)
|
|
if hasProfileUpdate then
|
|
|
|
local url = Plater.db.profile.url or ""
|
|
local id = url:match("wago.io/([^/]+)/([0-9]+)") or url:match("wago.io/([^/]+)$")
|
|
if id and Plater.CompanionDataSlugs[id] then
|
|
local update = Plater.CompanionDataSlugs[id]
|
|
|
|
local wagoProfile = Plater.DecompressData (update.encoded, "print")
|
|
if (wagoProfile and type(wagoProfile) == "table" and wagoProfile.plate_config) then
|
|
|
|
local wagoInfoText = ""
|
|
wagoInfoText = wagoInfoText .. "Name: " .. update.name .. "\n\n"
|
|
wagoInfoText = wagoInfoText .. "Wago-Revision: " .. (wagoProfile.version or "-") .. "\n"
|
|
wagoInfoText = wagoInfoText .. "Wago-Version: " .. (wagoProfile.semver or "-") .. "\n\n"
|
|
wagoInfoText = wagoInfoText .. (wagoProfile.url or "")
|
|
|
|
wagoInfo.label:SetText (wagoInfoText)
|
|
end
|
|
end
|
|
else
|
|
updateProfileButton:Disable()
|
|
end
|
|
|
|
if (Plater.db.profile.url) then
|
|
if Plater.db.profile.ignoreWagoUpdate then
|
|
ignoreProfileUpdateButton.button.text:SetText ("Don't ignore Profile Update")
|
|
end
|
|
|
|
local wago_update = Plater.GetWagoUpdateDataFromCompanion(Plater.db.profile)
|
|
local companionVersion = wago_update and tonumber(wago_update.wagoVersion) or nil
|
|
if (Plater.db.profile.skipWagoUpdate and wago_update) or hasProfileUpdate then
|
|
if Plater.db.profile.skipWagoUpdate or companionVersion and Plater.db.profile.skipWagoUpdate == companionVersion then
|
|
skipProfileUpdateButton.button.text:SetText ("Don't skip this version")
|
|
end
|
|
else
|
|
skipProfileUpdateButton:Disable()
|
|
end
|
|
else
|
|
ignoreProfileUpdateButton:Disable()
|
|
skipProfileUpdateButton:Disable()
|
|
end
|
|
|
|
profilesFrame.moreProfilesLabel = moreProfilesLabel
|
|
profilesFrame.moreProfilesTextEntry = moreProfilesTextEntry
|
|
|
|
--text editor
|
|
local luaeditor_backdrop_color = {.2, .2, .2, .5}
|
|
local luaeditor_border_color = {0, 0, 0, 1}
|
|
local edit_script_size = {620, 431}
|
|
local buttons_size = {120, 20}
|
|
|
|
local importStringField = DF:NewSpecialLuaEditorEntry (profilesFrame, edit_script_size[1], edit_script_size[2], "ImportEditor", "$parentImportEditor", true)
|
|
importStringField:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
|
importStringField:SetBackdropBorderColor (unpack (luaeditor_border_color))
|
|
importStringField:SetBackdropColor (unpack (luaeditor_backdrop_color))
|
|
importStringField:Hide()
|
|
profilesFrame.ImportStringField = importStringField
|
|
DF:ReskinSlider (importStringField.scroll)
|
|
|
|
local block_mouse_frame = CreateFrame ("frame", nil, importStringField, BackdropTemplateMixin and "BackdropTemplate")
|
|
--block_mouse_frame:SetFrameLevel (block_mouse_frame:GetFrameLevel()-5)
|
|
block_mouse_frame:SetAllPoints()
|
|
|
|
local function importStringFieldTextHighlight()
|
|
importStringField:SetFocus (true)
|
|
if profilesFrame.IsImporting then
|
|
--importStringField.editbox:SetText("")
|
|
importStringField.editbox:HighlightText()
|
|
else
|
|
importStringField.editbox:HighlightText()
|
|
end
|
|
end
|
|
block_mouse_frame:SetScript ("OnMouseDown", importStringFieldTextHighlight)
|
|
importStringField.editbox:SetScript ("OnCursorChanged", importStringFieldTextHighlight)
|
|
|
|
--import button
|
|
local okayButton = DF:CreateButton (importStringField, function() profilesFrame.ConfirmImportProfile(false) end, buttons_size[1], buttons_size[2], L["OPTIONS_OKAY"], -1, nil, nil, nil, nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
okayButton:SetIcon ([[Interface\BUTTONS\UI-Panel-BiggerButton-Up]], 20, 20, "overlay", {0.1, .9, 0.1, .9})
|
|
|
|
--cancel button
|
|
local cancelButton = DF:CreateButton (importStringField, profilesFrame.HideStringField, buttons_size[1], buttons_size[2], L["OPTIONS_CANCEL"], -1, nil, nil, nil, nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
cancelButton:SetIcon ([[Interface\BUTTONS\UI-Panel-MinimizeButton-Up]], 20, 20, "overlay", {0.1, .9, 0.1, .9})
|
|
|
|
importStringField:SetPoint ("topleft", profilesFrame, "topleft", 220, startY)
|
|
okayButton:SetPoint ("topright", importStringField, "bottomright", 0, -10)
|
|
cancelButton:SetPoint ("right", okayButton, "left", -20, 0)
|
|
|
|
--new profile name
|
|
local newProfileNameLabel = DF:CreateLabel (profilesFrame, L["OPTIONS_PROFILE_CONFIG_PROFILENAME"] .. ":", DF:GetTemplate ("font", "OPTIONS_FONT_TEMPLATE"))
|
|
local newProfileNameTextEntry = DF:CreateTextEntry (profilesFrame, function()end, 160, 20, "ProfileNameTextEntry", _, _, DF:GetTemplate ("dropdown", "PLATER_DROPDOWN_OPTIONS"))
|
|
newProfileNameTextEntry:SetText ("MyNewProfile")
|
|
newProfileNameTextEntry.tooltip = L["OPTIONS_PROFILE_CONFIG_PROFILENAME_DESC"]
|
|
newProfileNameLabel:SetPoint ("topleft", importStringField, "bottomleft", 0, -16)
|
|
newProfileNameTextEntry:SetPoint ("left", newProfileNameLabel, "right", 2, 0)
|
|
|
|
profilesFrame.NewProfileLabel = newProfileNameLabel
|
|
profilesFrame.NewProfileTextEntry = newProfileNameTextEntry
|
|
profilesFrame.NewProfileLabel:Hide()
|
|
profilesFrame.NewProfileTextEntry:Hide()
|
|
|
|
-- don't do this anymore, this causes huge lag when pasting large strings... buffer instead on importing. Setting values for good measure, though
|
|
profilesFrame.ImportStringField.editbox:SetMaxBytes (IMPORT_EXPORT_EDIT_MAX_BYTES)
|
|
profilesFrame.ImportStringField.editbox:SetMaxLetters (IMPORT_EXPORT_EDIT_MAX_LETTERS)
|
|
|
|
--profile options (this is the panel in the right side of the profile tab)
|
|
local scriptUpdatesTitleLocTable = DetailsFramework.Language.CreateLocTable(addonId, "OPTIONS_NOESSENTIAL_TITLE")
|
|
local scriptUpdatesTitle = DF:CreateLabel(profilesFrame, scriptUpdatesTitleLocTableL, DF:GetTemplate("font", "YELLOW_FONT_TEMPLATE"))
|
|
scriptUpdatesTitle:SetPoint("topleft", profilesFrame, "topright", -235, startY)
|
|
scriptUpdatesTitle.textsize = 9
|
|
|
|
local scriptUpdatesDescLocTable = DetailsFramework.Language.CreateLocTable(addonId, "OPTIONS_NOESSENTIAL_DESC")
|
|
local scriptUpdatesDesc = DF:CreateLabel(profilesFrame, scriptUpdatesDescLocTable, DF:GetTemplate("font", "ORANGE_FONT_TEMPLATE"))
|
|
scriptUpdatesDesc:SetPoint("topleft", scriptUpdatesTitle, "bottomleft", 0, -5)
|
|
scriptUpdatesDesc.width = 180
|
|
scriptUpdatesDesc.textsize = 9
|
|
|
|
local scriptUpdatesCheckBox = DF:CreateSwitch(
|
|
profilesFrame,
|
|
function() PlaterDB.SkipNonEssentialPatches = not PlaterDB.SkipNonEssentialPatches end,
|
|
PlaterDB.SkipNonEssentialPatches, _, _, _, _,
|
|
"ScriptUpdatesCheckBox", "$parentScriptUpdatesCheckBox",
|
|
nil, nil, nil, nil,
|
|
DF:GetTemplate("switch", "OPTIONS_CHECKBOX_BRIGHT_TEMPLATE")
|
|
)
|
|
scriptUpdatesCheckBox:SetAsCheckBox()
|
|
scriptUpdatesCheckBox:SetPoint("topleft", scriptUpdatesDesc, "bottomleft", 0, -10)
|
|
|
|
local scriptUpdatesCheckBoxLabelLocTable = DetailsFramework.Language.CreateLocTable(addonId, "OPTIONS_NOESSENTIAL_NAME")
|
|
local scriptUpdatesCheckBoxLabel = DF:CreateLabel(profilesFrame, scriptUpdatesCheckBoxLabelLocTable, DF:GetTemplate("font", "YELLOW_FONT_TEMPLATE"))
|
|
scriptUpdatesCheckBoxLabel:SetPoint("left", scriptUpdatesCheckBox, "right", 5, 0)
|
|
scriptUpdatesCheckBoxLabel.textsize = 9
|
|
scriptUpdatesCheckBoxLabel.width = 180
|
|
|
|
end
|
|
|
|
|
|
-------------------------
|
|
-- fun��es gerais dos dropdowns ~dropdowns
|
|
local textures = LibSharedMedia:HashTable ("statusbar")
|
|
|
|
--outline table
|
|
local outline_modes = {"NONE", "MONOCHROME", "OUTLINE", "THICKOUTLINE", "MONOCHROME, OUTLINE", "MONOCHROME, THICKOUTLINE"}
|
|
local outline_modes_names = {"None", "Monochrome", "Outline", "Thick Outline", "Monochrome Outline", "Monochrome Thick Outline"}
|
|
local build_outline_modes_table = function (actorType, member)
|
|
local t = {}
|
|
for i = 1, #outline_modes do
|
|
local value = outline_modes[i]
|
|
local label = outline_modes_names[i]
|
|
|
|
tinsert (t, {
|
|
label = label,
|
|
value = value,
|
|
statusbar = dropdownStatusBarTexture,
|
|
statusbarcolor = dropdownStatusBarColor,
|
|
onclick = function (_, _, value)
|
|
if (actorType) then
|
|
Plater.db.profile.plate_config [actorType][member] = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateAllNames()
|
|
else
|
|
Plater.db.profile [member] = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateAllNames()
|
|
end
|
|
end
|
|
})
|
|
end
|
|
return t
|
|
end
|
|
|
|
--anchor table
|
|
local build_anchor_side_table = function (actorType, member)
|
|
local anchorOptions = {}
|
|
local phraseIdTable = Plater.AnchorNamesByPhraseId
|
|
local languageId = DF.Language.GetLanguageIdForAddonId(addonId)
|
|
|
|
for i = 1, 13 do
|
|
tinsert (anchorOptions, {
|
|
label = DF.Language.GetText(addonId, phraseIdTable[i]),
|
|
languageId = languageId,
|
|
phraseId = phraseIdTable[i],
|
|
value = i,
|
|
statusbar = dropdownStatusBarTexture,
|
|
statusbarcolor = dropdownStatusBarColor,
|
|
onclick = function (_, _, value)
|
|
if (actorType) then
|
|
Plater.db.profile.plate_config [actorType][member].side = value
|
|
Plater.RefreshDBUpvalues()
|
|
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateAllNames()
|
|
else
|
|
Plater.db.profile [member].side = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateAllNames()
|
|
end
|
|
end
|
|
})
|
|
end
|
|
return anchorOptions
|
|
end
|
|
--
|
|
local health_bar_texture_selected = function (self, capsule, value)
|
|
Plater.db.profile.health_statusbar_texture = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local health_bar_texture_options = {}
|
|
for name, texturePath in pairs (textures) do
|
|
health_bar_texture_options [#health_bar_texture_options + 1] = {value = name, label = name, statusbar = texturePath, onclick = health_bar_texture_selected}
|
|
end
|
|
table.sort (health_bar_texture_options, function (t1, t2) return t1.label < t2.label end)
|
|
--
|
|
local health_bar_bgtexture_selected = function (self, capsule, value)
|
|
Plater.db.profile.health_statusbar_bgtexture = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local health_bar_bgtexture_options = {}
|
|
for name, texturePath in pairs (textures) do
|
|
health_bar_bgtexture_options [#health_bar_bgtexture_options + 1] = {value = name, label = name, statusbar = texturePath, onclick = health_bar_bgtexture_selected}
|
|
end
|
|
table.sort (health_bar_bgtexture_options, function (t1, t2) return t1.label < t2.label end)
|
|
|
|
local health_selection_overlay_selected = function (self, capsule, value)
|
|
Plater.db.profile.health_selection_overlay = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local health_selection_overlay_options = {}
|
|
for name, texturePath in pairs (textures) do
|
|
health_selection_overlay_options [#health_selection_overlay_options + 1] = {value = name, label = name, statusbar = texturePath, onclick = health_selection_overlay_selected}
|
|
end
|
|
table.sort (health_selection_overlay_options, function (t1, t2) return t1.label < t2.label end)
|
|
--
|
|
local target_selection_texture_selected = function (self, capsule, value)
|
|
Plater.db.profile.target_highlight_texture = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local target_selection_texture_selected_options = {}
|
|
for index, texturePath in ipairs (Plater.TargetHighlights) do
|
|
target_selection_texture_selected_options [#target_selection_texture_selected_options + 1] = {value = texturePath, label = "Highlight " .. index, statusbar = texturePath, onclick = target_selection_texture_selected}
|
|
end
|
|
--
|
|
local cooldown_edge_texture_selected = function (self, capsule, value)
|
|
Plater.db.profile.aura_cooldown_edge_texture = value
|
|
Plater.IncreaseRefreshID()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local cooldown_edge_texture_selected_options = {}
|
|
for index, texturePath in ipairs (Plater.CooldownEdgeTextures) do
|
|
cooldown_edge_texture_selected_options [#cooldown_edge_texture_selected_options + 1] = {value = texturePath, label = "Texture " .. index, statusbar = texturePath, onclick = cooldown_edge_texture_selected}
|
|
end
|
|
--
|
|
local extra_icon_cooldown_edge_texture_selected = function (self, capsule, value)
|
|
Plater.db.profile.extra_icon_cooldown_edge_texture = value
|
|
Plater.IncreaseRefreshID()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local extra_icon_cooldown_edge_texture_selected_options = {}
|
|
for index, texturePath in ipairs (Plater.CooldownEdgeTextures) do
|
|
extra_icon_cooldown_edge_texture_selected_options [#extra_icon_cooldown_edge_texture_selected_options + 1] = {value = texturePath, label = "Texture " .. index, statusbar = texturePath, onclick = extra_icon_cooldown_edge_texture_selected}
|
|
end
|
|
--
|
|
|
|
|
|
|
|
-------------------------------------------------------------------------------
|
|
--op��es do painel de interface da blizzard
|
|
|
|
|
|
function Plater.ChangeNameplateAnchor (_, _, value)
|
|
if (value == 0) then
|
|
SetCVar ("nameplateOtherAtBase", "0") --head
|
|
elseif (value == 1) then
|
|
SetCVar ("nameplateOtherAtBase", "1") --both
|
|
elseif (value == 2) then
|
|
SetCVar ("nameplateOtherAtBase", "2") --feet
|
|
end
|
|
end
|
|
|
|
|
|
local interface_options = {
|
|
--{type = "label", get = function() return "Interface Options:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
}
|
|
|
|
local interface_title = Plater:CreateLabel (frontPageFrame, "", Plater:GetTemplate ("font", "ORANGE_FONT_TEMPLATE"))
|
|
interface_title:SetPoint (startX, startY)
|
|
|
|
local in_combat_background = Plater:CreateImage (frontPageFrame)
|
|
in_combat_background:SetColorTexture (.6, 0, 0, .1)
|
|
in_combat_background:SetPoint ("topleft", interface_title, "bottomleft", -5, 5)
|
|
in_combat_background:SetSize(275, 288)
|
|
in_combat_background:Hide()
|
|
|
|
local in_combat_label = Plater:CreateLabel (frontPageFrame, "you are in combat", 24, "silver")
|
|
in_combat_label:SetPoint ("right", in_combat_background, "right", -10, 10)
|
|
in_combat_label:Hide()
|
|
|
|
frontPageFrame:RegisterEvent ("PLAYER_REGEN_DISABLED")
|
|
frontPageFrame:RegisterEvent ("PLAYER_REGEN_ENABLED")
|
|
frontPageFrame:SetScript ("OnEvent", function (self, event)
|
|
if (event == "PLAYER_REGEN_DISABLED") then
|
|
in_combat_background:Show()
|
|
in_combat_label:Show()
|
|
elseif (event == "PLAYER_REGEN_ENABLED") then
|
|
in_combat_background:Hide()
|
|
in_combat_label:Hide()
|
|
end
|
|
end)
|
|
|
|
interface_options.always_boxfirst = true
|
|
interface_options.language_addonId = addonId
|
|
interface_options.Name = "Interface Options"
|
|
DF:BuildMenu (frontPageFrame, interface_options, startX, startY-20, 300 + 60, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
|
|
function frontPageFrame.OpenNewsWindow()
|
|
if (not PlaterNewsFrame) then
|
|
local options = {
|
|
width = 550,
|
|
height = 700,
|
|
line_amount = 13,
|
|
line_height = 50,
|
|
}
|
|
|
|
local newsFrame = DF:CreateNewsFrame (UIParent, "PlaterNewsFrame", options, Plater.GetChangelogTable(), Plater.db.profile.news_frame)
|
|
newsFrame:SetFrameStrata ("FULLSCREEN")
|
|
|
|
local lastNews = Plater.db.profile.last_news_time
|
|
|
|
newsFrame.NewsScroll.OnUpdateLineHook = function (line, lineIndex, data)
|
|
--/run Plater.db.profile.last_news_time = 1
|
|
local thisEntryTime = data [1]
|
|
if (thisEntryTime > lastNews) then
|
|
line.backdrop_color = {.4, .4, .4, .6}
|
|
line.backdrop_color_highlight = {.5, .5, .5, .8}
|
|
line:SetBackdropColor (.4, .4, .4, .6)
|
|
else
|
|
line.backdrop_color = {0, 0, 0, 0.2}
|
|
line.backdrop_color_highlight = {.2, .2, .2, 0.4}
|
|
line:SetBackdropColor (0, 0, 0, 0.2)
|
|
end
|
|
end
|
|
end
|
|
|
|
PlaterNewsFrame:Show()
|
|
PlaterNewsFrame.NewsScroll:Refresh()
|
|
Plater.db.profile.last_news_time = time()
|
|
|
|
local numNews = DF:GetNumNews (Plater.GetChangelogTable(), Plater.db.profile.last_news_time)
|
|
frontPageFrame.NewsButton:SetText ("Open Change Log")
|
|
|
|
end
|
|
|
|
local openNewsButton = DF:CreateButton (frontPageFrame, frontPageFrame.OpenNewsWindow, 160, 20, "Open Change Log", -1, nil, nil, nil, nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"), DF:GetTemplate ("font", "PLATER_BUTTON"))
|
|
openNewsButton:SetPoint ("topleft", frontPageFrame, "topleft", 10, -80)
|
|
frontPageFrame.NewsButton = openNewsButton
|
|
|
|
local numNews = DF:GetNumNews (Plater.GetChangelogTable(), Plater.db.profile.last_news_time)
|
|
if (numNews > 0) then
|
|
frontPageFrame.NewsButton:SetText ("Open Change Log (|cFFFFFF00" .. numNews .."|r)")
|
|
end
|
|
|
|
|
|
--go to frames
|
|
|
|
function Plater.CreateGoToTabFrame(parent, text, index)
|
|
local goToTab = CreateFrame("frame", nil, parent, BackdropTemplateMixin and "BackdropTemplate")
|
|
goToTab:SetSize (230, 55)
|
|
DF:ApplyStandardBackdrop (goToTab, false, 0.6)
|
|
|
|
local labelgoToTab = DF:CreateLabel(goToTab, text, 10, "orange")
|
|
labelgoToTab.width = 220
|
|
labelgoToTab.height = 50
|
|
labelgoToTab.valign = "middle"
|
|
labelgoToTab.align = "center"
|
|
labelgoToTab:SetPoint("center", goToTab, "center", 0, 0)
|
|
|
|
local goTo = function()
|
|
---@type df_tabcontainer
|
|
local platerOptionsPanelContainer = PlaterOptionsPanelContainer
|
|
platerOptionsPanelContainer:SelectTabByIndex(index)
|
|
end
|
|
|
|
local buttonGo = DF:CreateButton (parent, goTo, 20, 1, "", false, false, "", false, false, false, options_button_template)
|
|
buttonGo:SetPoint("topleft", goToTab, "topright", 1, 0)
|
|
buttonGo:SetPoint("bottomleft", goToTab, "bottomright", 1, 0)
|
|
DF:ApplyStandardBackdrop (buttonGo, false, 0.8)
|
|
|
|
local arrowTexture = DF:CreateImage (buttonGo, "Interface\\CHATFRAME\\ChatFrameExpandArrow", 18, 18, "overlay")
|
|
arrowTexture:SetPoint("center", buttonGo, "center")
|
|
|
|
return goToTab
|
|
end
|
|
|
|
local goToTabFrame1 = Plater.CreateGoToTabFrame(frontPageFrame, "Go to 'Enemy Npc' tab to setup health and castbar size.", 13)
|
|
goToTabFrame1:SetPoint("bottomright", frontPageFrame, "bottomright", -24, 22)
|
|
|
|
local goToTabFrame2 = Plater.CreateGoToTabFrame(enemyNPCsFrame, "Go to 'Threat / Aggro' tab to setup colors.", 2)
|
|
goToTabFrame2:SetPoint("bottomright", enemyNPCsFrame, "bottomright", -24, 22)
|
|
|
|
local goToTabFrame3 = Plater.CreateGoToTabFrame(threatFrame, "Go to 'Target' tab to choose how the nameplate looks like when the unit is your target.", 3)
|
|
goToTabFrame3:SetPoint("bottomright", threatFrame, "bottomright", -24, 22)
|
|
|
|
local goToTabFrame4 = Plater.CreateGoToTabFrame(targetFrame, "Go to 'Buff Settings' tab to setup the auras above the nameplate.", 9)
|
|
goToTabFrame4:SetPoint("bottomright", targetFrame, "bottomright", -24, 22)
|
|
|
|
-------------------------------------------------------------------------------
|
|
-- painel para configurar debuffs e buffs
|
|
|
|
|
|
|
|
|
|
local grow_direction_names = {"Left", "Center", "Right"}
|
|
local build_grow_direction_options = function (memberName)
|
|
local t = {}
|
|
for i = 1, #grow_direction_names do
|
|
tinsert (t, {
|
|
label = grow_direction_names [i],
|
|
value = i,
|
|
onclick = function (_, _, value)
|
|
Plater.db.profile [memberName] = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
})
|
|
end
|
|
return t
|
|
end
|
|
|
|
local on_select_stack_text_font = function (_, _, value)
|
|
Plater.db.profile.aura_stack_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_auratimer_text_font = function (_, _, value)
|
|
Plater.db.profile.aura_timer_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local debuff_options = {
|
|
|
|
--{type = "label", get = function() return "|TInterface\\GossipFrame\\AvailableLegendaryQuestIcon:0|tTest Auras:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{type = "label", get = function() return "Test Auras:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.DisableAuraTest and true or false end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.DisableAuraTest = value
|
|
if (value) then
|
|
auraOptionsFrame.DisableAuraTest()
|
|
elseif Plater.db.profile.aura_enabled then
|
|
auraOptionsFrame.EnableAuraTest()
|
|
end
|
|
end,
|
|
name = "|TInterface\\GossipFrame\\AvailableQuestIcon:0|tDisable Testing Auras",
|
|
desc = "OPTIONS_AURAS_ENABLETEST",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "General Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_enabled = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
|
|
if (not value) then
|
|
Plater.DisableAuraTest = true
|
|
auraOptionsFrame.DisableAuraTest()
|
|
for _, plateFrame in ipairs (Plater.GetAllShownPlates()) do
|
|
for _, frame in ipairs (plateFrame.unitFrame.BuffFrame.PlaterBuffList) do
|
|
frame:Hide()
|
|
end
|
|
for _, frame in ipairs (plateFrame.unitFrame.BuffFrame2.PlaterBuffList) do
|
|
frame:Hide()
|
|
end
|
|
end
|
|
else
|
|
Plater.DisableAuraTest = false
|
|
auraOptionsFrame.EnableAuraTest()
|
|
end
|
|
|
|
--refresh the aura options panel, as the canvasFrame was passed to BuildMenu() it require here to get the scrollChild to call RefreshOptions()
|
|
auraOptionsFrame.canvasFrame:GetScrollChild():RefreshOptions()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "OPTIONS_ENABLED",
|
|
childrenids = {"auras_general_tooltip", "auras_general_alpha", "auras_general_iconspacing", "auras_general_icon_row_spacing", "auras_general_stack_similar_aura", "auras_general_stack_auratime"},
|
|
children_follow_enabled = true,
|
|
--children_follow_reverse = true, --if the children should be enabled when the toogle is disabled, for cases like "do this automatically" if not, set manually
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_tooltip end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_tooltip = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHOWTOOLTIP",
|
|
desc = "OPTIONS_SHOWTOOLTIP_DESC",
|
|
id = "auras_general_tooltip",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
thumbscale = 1.8,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "OPTIONS_ALPHA",
|
|
id = "auras_general_alpha",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_padding end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_padding = value
|
|
Plater.RefreshDBUpvalues()
|
|
end,
|
|
min = 0,
|
|
max = 10,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
thumbscale = 1.8,
|
|
name = "OPTIONS_ICONSPACING",
|
|
desc = "OPTIONS_ICONSPACING",
|
|
id = "auras_general_iconspacing",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_breakline_space end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_breakline_space = value
|
|
Plater.RefreshDBUpvalues()
|
|
end,
|
|
min = 0,
|
|
max = 15,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
thumbscale = 1.8,
|
|
name = "OPTIONS_ICONROWSPACING",
|
|
desc = "OPTIONS_ICONROWSPACING",
|
|
id = "auras_general_icon_row_spacing",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_consolidate end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_consolidate = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_STACK_SIMILAR_AURAS",
|
|
desc = "OPTIONS_STACK_SIMILAR_AURAS_DESC",
|
|
id = "auras_general_stack_similar_aura",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_consolidate_timeleft_lower end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_consolidate_timeleft_lower = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_STACK_AURATIME",
|
|
desc = "OPTIONS_STACK_AURATIME_DESC",
|
|
id = "auras_general_stack_auratime",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_sort end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_sort = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_AURAS_SORT",
|
|
desc = "OPTIONS_AURAS_SORT_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Aura Size (Frame 1):" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_width end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_width = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 4,
|
|
max = 80,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_AURA_DEBUFF_WITH",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_height end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_height = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 4,
|
|
max = 80,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_AURA_DEBUFF_HEIGHT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_border_thickness end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_border_thickness = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 5,
|
|
step = 1,
|
|
name = "OPTIONS_BORDER_THICKNESS",
|
|
desc = "OPTIONS_BORDER_THICKNESS",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Aura Size (Frame 2):" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_width2 end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_width2 = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 4,
|
|
max = 80,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_AURA_WIDTH",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_height2 end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_height2 = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 4,
|
|
max = 80,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_AURA_HEIGHT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_border_thickness2 end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_border_thickness2 = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 5,
|
|
step = 1,
|
|
name = "OPTIONS_BORDER_THICKNESS",
|
|
desc = "OPTIONS_BORDER_THICKNESS",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Automatic Aura Tracking:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_aura_by_the_player end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_aura_by_the_player = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Auras Casted by You",
|
|
desc = "Show Auras Casted by You.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_aura_by_other_players end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_aura_by_other_players = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Auras Casted by other Players",
|
|
desc = "Show Auras Casted by other Players.\n\n" .. ImportantText .. "This may cause a lot of auras to show!",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_important end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_important = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Important Auras",
|
|
desc = "Show buffs and debuffs which the game tag as important.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_dispellable end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_dispellable = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Dispellable Buffs",
|
|
desc = "Show auras which can be dispelled or stolen.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_only_short_dispellable_on_players end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_only_short_dispellable_on_players = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Only short Dispellable Buffs on Players",
|
|
desc = "Show auras which can be dispelled or stolen on players if they are below 120sec duration (only applicable when 'Show Dispellable Buffs' is enabled).",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_enrage end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_enrage = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Enrage Buffs",
|
|
desc = "Show auras which are in the enrage category.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_magic end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_magic = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Magic Buffs",
|
|
desc = "Show auras which are in the magic type category.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_crowdcontrol end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_crowdcontrol = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Crowd Control",
|
|
desc = "Show crowd control effects.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_buff_by_the_unit end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_buff_by_the_unit = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Buffs Casted by the Unit",
|
|
desc = "Show Buffs Casted by the Unit it self",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_offensive_cd end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_offensive_cd = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show offensive player CDs",
|
|
desc = "Show offensive CDs on enemy/friendly players.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_show_defensive_cd end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_defensive_cd = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show defensive player CDs",
|
|
desc = "Show defensive CDs on enemy/friendly players.",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
{type = "label", get = function() return "Aura Frame 1:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
--> grow direction
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_grow_direction end,
|
|
values = function() return build_grow_direction_options ("aura_grow_direction") end,
|
|
name = "Grow Direction",
|
|
desc = "To which side aura icons should grow.\n\n" .. ImportantText .. "debuffs are added first, buffs after.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_frame1_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "aura_frame1_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "Which side of the nameplate this aura frame is attached to.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_frame1_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_frame1_anchor.x = value
|
|
Plater.db.profile.aura_x_offset = value -- keep backwards compatibility
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -200,
|
|
max = 200,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_frame1_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_frame1_anchor.y = value
|
|
Plater.db.profile.aura_y_offset = value -- keep backwards compatibility
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -200,
|
|
max = 200,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Aura Frame 2:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.buffs_on_aura2 end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.buffs_on_aura2 = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "When enabled auras are separated: Buffs are placed on this second frame, Debuffs on the first.",
|
|
},
|
|
--> grow direction
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura2_grow_direction end,
|
|
values = function() return build_grow_direction_options ("aura2_grow_direction") end,
|
|
name = "Grow Direction",
|
|
desc = "To which side aura icons should grow.",
|
|
},
|
|
--> offset
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_frame2_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "aura_frame2_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "Which side of the nameplate this aura frame is attached to.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_frame2_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_frame2_anchor.x = value
|
|
Plater.db.profile.aura2_x_offset = value -- keep backwards compatibility
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -200,
|
|
max = 200,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_frame2_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_frame2_anchor.y = value
|
|
Plater.db.profile.aura2_y_offset = value -- keep backwards compatibility
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -200,
|
|
max = 200,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Stack Counter:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_stack_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_stack_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_stack_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_stack_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 24,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "Size",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_stack_outline end,
|
|
values = function() return build_outline_modes_table (nil, "aura_stack_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_stack_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_stack_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_stack_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_stack_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "Color",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_stack_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "aura_stack_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "Which side of the buff icon the stack counter should attach to.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_stack_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_stack_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -20,
|
|
max = 20,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_stack_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_stack_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -20,
|
|
max = 20,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Aura Border Colors:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.is_show_all
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.is_show_all
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Important Auras Border Color",
|
|
desc = "Important Auras Border Color",
|
|
},
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.steal_or_purge
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.steal_or_purge
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Dispellable Buffs Border Color",
|
|
desc = "Dispellable Buffs Border Color",
|
|
},
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.enrage
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.enrage
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Enrage Buffs Border Color",
|
|
desc = "Enrage Buffs Border Color",
|
|
},
|
|
--border color is buff
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.is_buff
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.is_buff
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Buffs Border Color",
|
|
desc = "Buffs Border Color",
|
|
},
|
|
--border color is offensive
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.crowdcontrol
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.crowdcontrol
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Crowd Control Border Color",
|
|
desc = "Crowd Control Border Color",
|
|
},
|
|
--border color is offensive
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.offensive
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.offensive
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Offensive CD Border Color",
|
|
desc = "Offensive CD Border Color",
|
|
},
|
|
--border color is offensive
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.defensive
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.defensive
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Defensive CD Border Color",
|
|
desc = "Defensive CD Border Color",
|
|
},
|
|
--border color is default
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_border_colors.default
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_border_colors.default
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Default Border Color",
|
|
desc = "Default Border Color",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_border_colors_by_type end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_border_colors_by_type = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.RefreshAuras()
|
|
end,
|
|
name = "Use type based aura border colors",
|
|
desc = "Use the Blizzard debuff type colors for borders",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "Auras per Row:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.auras_per_row_auto end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auras_per_row_auto = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Automatic",
|
|
desc = "When enabled auras are split into rows automatically according to healthbar width when growing left/right. Mods can overwrite the amount.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.auras_per_row_amount end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auras_per_row_amount = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 10,
|
|
step = 1,
|
|
name = "Auras per Row 1",
|
|
desc = "Auras per Row if auto-mode is disabled for Aura Frame 1.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.auras_per_row_amount2 end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auras_per_row_amount2 = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 10,
|
|
step = 1,
|
|
name = "Auras per Row 2",
|
|
desc = "Auras per Row if auto-mode is disabled for Aura Frame 2.",
|
|
},
|
|
|
|
{type = "break"},
|
|
{type = "label", get = function() return "Aura Timer:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_timer end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_timer = value
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Time left on buff or debuff.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_timer_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_timer_decimals = value
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show decimals below 10s remaining time",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.disable_omnicc_on_auras end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.disable_omnicc_on_auras = value
|
|
Plater.RefreshOmniCCGroup()
|
|
end,
|
|
name = "Hide OmniCC/TullaCC Timer",
|
|
desc = "OmniCC/TullaCC timers won't show in the aura.\n\n" .. ImportantText .. "require /reload when toggling this feature.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_timer_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_auratimer_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_timer_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_timer_text_size = value
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 7,
|
|
max = 40,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "Size",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_timer_text_outline end,
|
|
values = function() return build_outline_modes_table (nil, "aura_timer_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_timer_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_timer_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.aura_timer_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.aura_timer_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "Color",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_timer_text_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "aura_timer_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "Which side of the buff icon the timer should attach to.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_timer_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_timer_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -20,
|
|
max = 20,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_timer_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_timer_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -20,
|
|
max = 20,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Swipe Animation:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.aura_cooldown_edge_texture end,
|
|
values = function() return cooldown_edge_texture_selected_options end,
|
|
name = "Swipe Texture",
|
|
desc = "Texture in the form of a line which rotates within the aura icon following the aura remaining time.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_cooldown_show_swipe end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_cooldown_show_swipe = value
|
|
Plater.IncreaseRefreshID()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Swipe Closure Texture",
|
|
desc = "Show a layer with a dark texture above the icon. This layer is applied or removed as the swipe moves.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.aura_cooldown_reverse end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_cooldown_reverse = value
|
|
Plater.IncreaseRefreshID()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Swipe Closure Inverted",
|
|
desc = "If enabled the swipe closure texture is applied as the swipe moves instead.",
|
|
},
|
|
}
|
|
|
|
if IS_WOW_PROJECT_CLASSIC_ERA then
|
|
tinsert(debuff_options, 5, {
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.auras_experimental_update_classic_era end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auras_experimental_update_classic_era = value
|
|
Plater.RefreshAuraCache()
|
|
end,
|
|
name = "Enable experimental aura updates",
|
|
desc = "Enable experimental aura updates for classic era.\nMight help in tracking enemy buffs that are applied while the nameplate is visible.",
|
|
})
|
|
end
|
|
|
|
_G.C_Timer.After(0.850, function() --~delay
|
|
debuff_options.always_boxfirst = true
|
|
debuff_options.language_addonId = addonId
|
|
|
|
debuff_options.align_as_pairs = true
|
|
debuff_options.align_as_pairs_string_space = 181
|
|
debuff_options.widget_width = 150
|
|
|
|
local canvasFrame = DF:CreateCanvasScrollBox(auraOptionsFrame, nil, "PlaterOptionsPanelCanvasAuraSettings")
|
|
canvasFrame:SetPoint("topleft", auraOptionsFrame, "topleft", 0, platerInternal.optionsYStart)
|
|
canvasFrame:SetPoint("bottomright", auraOptionsFrame, "bottomright", -26, 25)
|
|
auraOptionsFrame.canvasFrame = canvasFrame
|
|
|
|
debuff_options.use_scrollframe = true
|
|
|
|
--when passing a canvas frame for BuildMenu, it automatically get its childscroll and use as parent for the widgets
|
|
debuff_options.Name = "Debuff Options"
|
|
DF:BuildMenu(canvasFrame, debuff_options, startX, 0, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
|
|
--DF:DebugVisibility(canvasFrame:GetScrollChild())
|
|
end)
|
|
|
|
auraOptionsFrame.AuraTesting = {
|
|
DEBUFF = {
|
|
{
|
|
SpellName = "Shadow Word: Pain",
|
|
SpellTexture = 136207,
|
|
Count = 1,
|
|
Duration = 7,
|
|
SpellID = 589,
|
|
Type = "Magic",
|
|
},
|
|
{
|
|
SpellName = "Vampiric Touch",
|
|
SpellTexture = 135978,
|
|
Count = 1,
|
|
Duration = 5,
|
|
SpellID = 34914,
|
|
Type = "Magic",
|
|
},
|
|
{
|
|
SpellName = "Mind Flay",
|
|
SpellTexture = 136208,
|
|
Count = 3,
|
|
Duration = 5,
|
|
SpellID = 15407,
|
|
Type = "Magic",
|
|
},
|
|
{
|
|
SpellName = "Enrage",
|
|
SpellTexture = 132345,
|
|
Count = 1,
|
|
Duration = 0,
|
|
SpellID = 228318,
|
|
Type = "",
|
|
},
|
|
},
|
|
|
|
BUFF = {
|
|
{
|
|
SpellName = "Twist of Fate",
|
|
SpellTexture = 237566,
|
|
Count = 1,
|
|
Duration = 9,
|
|
SpellID = 123254,
|
|
},
|
|
{
|
|
SpellName = "Empty Mind",
|
|
SpellTexture = 136206,
|
|
Count = 4,
|
|
Duration = 7,
|
|
SpellID = 247226,
|
|
},
|
|
}
|
|
}
|
|
|
|
Plater.CreateAuraTesting()
|
|
|
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> aura tracking
|
|
|
|
-- ~aura ~bufftracking ~debuff ~tracking
|
|
|
|
local aura_options = {
|
|
width = 200,
|
|
height = 343,
|
|
row_height = 16,
|
|
button_text_template = "PLATER_BUTTON", --text template
|
|
font_size = 11,
|
|
}
|
|
|
|
local method_change_callback = function()
|
|
Plater.RefreshDBUpvalues()
|
|
end
|
|
|
|
local debuff_panel_texts = {
|
|
BUFFS_AVAILABLE = "Click to add buffs to blacklist",
|
|
DEBUFFS_AVAILABLE = "Click to add debuffs to blacklist",
|
|
BUFFS_IGNORED = "BUFFS on the BLACKLIST (filtered out)",
|
|
DEBUFFS_IGNORED = "DEBUFFS on the BLACKLIST (filtered out)",
|
|
BUFFS_TRACKED = "Additional BUFFS to TRACK",
|
|
DEBUFFS_TRACKED = "Additional DEBUFFS to TRACK",
|
|
MANUAL_DESC = "Auras are being tracked manually, the addon only check for auras you entered below.\nShow debuffs only casted by you, buffs from any source.\nYou may use the 'Buff Special' tab to add debuffs from any source.",
|
|
}
|
|
|
|
auraFilterFrame:SetSize (f:GetWidth(), f:GetHeight() + startY)
|
|
|
|
auraFilterFrame:SetScript("OnShow", function()
|
|
DF:LoadSpellCache(Plater.SpellHashTable, Plater.SpellIndexTable, Plater.SpellSameNameTable)
|
|
end)
|
|
auraFilterFrame:SetScript("OnHide", function()
|
|
--DF:UnloadSpellCache()
|
|
end)
|
|
|
|
local auraConfigPanel = DF:CreateAuraConfigPanel (auraFilterFrame, "$parentAuraConfig", Plater.db.profile, method_change_callback, aura_options, debuff_panel_texts)
|
|
auraConfigPanel:SetPoint ("topleft", auraFilterFrame, "topleft", 10, startY)
|
|
auraConfigPanel:SetSize (f:GetWidth() - 20, f:GetHeight() + startY)
|
|
auraConfigPanel:Show()
|
|
auraFilterFrame.auraConfigPanel = auraConfigPanel
|
|
|
|
--create bottom highlights
|
|
local debuffBackList = _G.PlaterOptionsPanelContainerDebuffBlacklistAuraConfig_AutomaticDebuffIgnored
|
|
debuffBackList.bottomTexture = debuffBackList:CreateTexture(nil, "artwork")
|
|
debuffBackList.bottomTexture:SetTexture([[Interface\AddOns\Plater\images\selection_indicator3]])
|
|
debuffBackList.bottomTexture:SetPoint("topleft", debuffBackList, "bottomleft", -12, 0)
|
|
debuffBackList.bottomTexture:SetPoint("topright", debuffBackList, "bottomright", 12, 0)
|
|
debuffBackList.bottomTexture:SetBlendMode("ADD")
|
|
debuffBackList.bottomTexture:SetTexCoord(0, 1, 1, 0)
|
|
debuffBackList.bottomTexture:SetVertexColor(1, .1, 0, 0.2)
|
|
|
|
local buffBackList = _G.PlaterOptionsPanelContainerDebuffBlacklistAuraConfig_AutomaticBuffIgnored
|
|
buffBackList.bottomTexture = buffBackList:CreateTexture(nil, "artwork")
|
|
buffBackList.bottomTexture:SetTexture([[Interface\AddOns\Plater\images\selection_indicator3]])
|
|
buffBackList.bottomTexture:SetPoint("topleft", buffBackList, "bottomleft", -12, 0)
|
|
buffBackList.bottomTexture:SetPoint("topright", buffBackList, "bottomright", 12, 0)
|
|
buffBackList.bottomTexture:SetBlendMode("ADD")
|
|
buffBackList.bottomTexture:SetTexCoord(0, 1, 1, 0)
|
|
buffBackList.bottomTexture:SetVertexColor(1, .1, 0, 0.2)
|
|
|
|
local debuffTrackList = _G.PlaterOptionsPanelContainerDebuffBlacklistAuraConfig_AutomaticDebuffTracked
|
|
debuffTrackList.bottomTexture = debuffTrackList:CreateTexture(nil, "artwork")
|
|
debuffTrackList.bottomTexture:SetTexture([[Interface\AddOns\Plater\images\selection_indicator3]])
|
|
debuffTrackList.bottomTexture:SetPoint("topleft", debuffTrackList, "bottomleft", -12, 0)
|
|
debuffTrackList.bottomTexture:SetPoint("topright", debuffTrackList, "bottomright", 12, 0)
|
|
debuffTrackList.bottomTexture:SetBlendMode("ADD")
|
|
debuffTrackList.bottomTexture:SetTexCoord(0, 1, 1, 0)
|
|
debuffTrackList.bottomTexture:SetVertexColor(0, .1, 1, 0.2)
|
|
|
|
local buffTrackList = _G.PlaterOptionsPanelContainerDebuffBlacklistAuraConfig_AutomaticBuffTracked
|
|
buffTrackList.bottomTexture = buffTrackList:CreateTexture(nil, "artwork")
|
|
buffTrackList.bottomTexture:SetTexture([[Interface\AddOns\Plater\images\selection_indicator3]])
|
|
buffTrackList.bottomTexture:SetPoint("topleft", buffTrackList, "bottomleft", -12, 0)
|
|
buffTrackList.bottomTexture:SetPoint("topright", buffTrackList, "bottomright", 12, 0)
|
|
buffTrackList.bottomTexture:SetBlendMode("ADD")
|
|
buffTrackList.bottomTexture:SetTexCoord(0, 1, 1, 0)
|
|
buffTrackList.bottomTexture:SetVertexColor(0, .1, 1, 0.2)
|
|
|
|
function auraFilterFrame.RefreshOptions()
|
|
auraConfigPanel:OnProfileChanged (Plater.db.profile)
|
|
end
|
|
|
|
|
|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> special auras ~special ~aura ~buffspecial
|
|
--> special aura container
|
|
local especial_aura_settings
|
|
do
|
|
|
|
--> fonts
|
|
local on_select_buff_special_timer_font = function (_, _, value)
|
|
Plater.db.profile.extra_icon_timer_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_buff_special_stack_font = function (_, _, value)
|
|
Plater.db.profile.extra_icon_stack_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_buff_special_caster_font = function (_, _, value)
|
|
Plater.db.profile.extra_icon_caster_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
--> scroll with auras added to the special aura container
|
|
local specialAuraFrame = CreateFrame ("frame", nil, auraSpecialFrame, BackdropTemplateMixin and "BackdropTemplate")
|
|
specialAuraFrame:SetHeight (480)
|
|
specialAuraFrame:SetPoint ("topleft", auraSpecialFrame, "topleft", startX, startY)
|
|
specialAuraFrame:SetPoint ("topright", auraSpecialFrame, "topright", -10, startY)
|
|
--DF:ApplyStandardBackdrop (specialAuraFrame, false, 0.6)
|
|
|
|
local scroll_width = 280
|
|
local scroll_height = 442
|
|
local scroll_lines = 21
|
|
local scroll_line_height = 20
|
|
local backdrop_color = {.8, .8, .8, 0.2}
|
|
local backdrop_color_on_enter = {.8, .8, .8, 0.4}
|
|
local y = startY
|
|
|
|
local showSpellWithSameName = function (self, spellId)
|
|
local spellName = GetSpellInfo(spellId)
|
|
if (spellName) then
|
|
--replace here with the cache
|
|
local spellNameLower = spellName:lower()
|
|
local spellsWithSameNameCache = Plater.SpellSameNameTable
|
|
local spellsWithSameName = spellsWithSameNameCache[spellNameLower]
|
|
|
|
if (spellsWithSameName) then
|
|
GameCooltip2:Preset(2)
|
|
GameCooltip2:SetOwner(self, "left", "right", 2, 0)
|
|
GameCooltip2:SetOption("TextSize", 10)
|
|
|
|
for i, spellID in ipairs(spellsWithSameName) do
|
|
local spellName, _, spellIcon = GetSpellInfo(spellID)
|
|
if (spellName) then
|
|
GameCooltip2:AddLine(spellName .. " (" .. spellID .. ")")
|
|
GameCooltip2:AddIcon(spellIcon, 1, 1, 14, 14, .1, .9, .1, .9)
|
|
end
|
|
end
|
|
|
|
GameCooltip2:Show()
|
|
end
|
|
end
|
|
end
|
|
|
|
local line_onenter = function (self)
|
|
self:SetBackdropColor (unpack (backdrop_color_on_enter))
|
|
local spellid = select (7, GetSpellInfo (self.value))
|
|
|
|
if not spellid then
|
|
-- if the player class does not know the spell, try checking the cache
|
|
spellid = Plater.SpellHashTable[self.value]
|
|
end
|
|
|
|
if (spellid) then
|
|
GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT");
|
|
GameTooltip:SetSpellByID (spellid)
|
|
GameTooltip:AddLine (" ")
|
|
GameTooltip:Show()
|
|
|
|
if not tonumber (self.value) then
|
|
showSpellWithSameName (self, spellid)
|
|
end
|
|
end
|
|
end
|
|
|
|
local line_onleave = function (self)
|
|
self:SetBackdropColor (unpack (backdrop_color))
|
|
GameTooltip:Hide()
|
|
GameCooltip2:Hide()
|
|
end
|
|
|
|
local onclick_remove_button = function (self)
|
|
local spell = self:GetParent().value
|
|
local data = self:GetParent():GetParent():GetData()
|
|
|
|
for i = 1, #data do
|
|
if (data[i] == spell) then
|
|
tremove (data, i)
|
|
break
|
|
end
|
|
end
|
|
|
|
self:GetParent():GetParent():Refresh()
|
|
Plater.RefreshDBUpvalues()
|
|
end
|
|
|
|
local on_toggle_mine = function (self, spellID, state)
|
|
Plater.db.profile.extra_icon_auras_mine [spellID] = state
|
|
Plater.RefreshDBLists()
|
|
end
|
|
|
|
local scroll_createline = function (self, index)
|
|
local line = CreateFrame ("button", "$parentLine" .. index, self, BackdropTemplateMixin and "BackdropTemplate")
|
|
line:SetPoint ("topleft", self, "topleft", 1, -((index-1)*(scroll_line_height+1)) - 1)
|
|
line:SetSize (scroll_width - 2, scroll_line_height)
|
|
line:SetScript ("OnEnter", line_onenter)
|
|
line:SetScript ("OnLeave", line_onleave)
|
|
|
|
line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
|
line:SetBackdropColor (unpack (backdrop_color))
|
|
|
|
local icon = line:CreateTexture ("$parentIcon", "overlay")
|
|
icon:SetSize (scroll_line_height - 2, scroll_line_height - 2)
|
|
|
|
local name = line:CreateFontString ("$parentName", "overlay", "GameFontNormal")
|
|
|
|
local remove_button = CreateFrame ("button", "$parentRemoveButton", line, "UIPanelCloseButton, BackdropTemplate")
|
|
remove_button:SetSize (21, 21)
|
|
remove_button:SetScript ("OnClick", onclick_remove_button)
|
|
remove_button:SetPoint ("right", line, "right", -6, 0)
|
|
remove_button:SetNormalTexture([[Interface\GLUES\LOGIN\Glues-CheckBox-Check]])
|
|
remove_button:SetPushedTexture([[Interface\GLUES\LOGIN\Glues-CheckBox-Check]])
|
|
remove_button:GetNormalTexture():SetDesaturated (true)
|
|
remove_button:GetPushedTexture():SetDesaturated (true)
|
|
remove_button:GetPushedTexture():ClearAllPoints()
|
|
remove_button:GetPushedTexture():SetPoint ("center")
|
|
remove_button:GetPushedTexture():SetSize (18, 18)
|
|
|
|
local onlyMineCheckbox = DF:CreateSwitch (line, on_toggle_mine, true, _, _, _, _, "mineCheckbox", "$parentMineToggle" .. index, _, _, _, nil, DF:GetTemplate ("switch", "OPTIONS_CHECKBOX_BRIGHT_TEMPLATE"))
|
|
onlyMineCheckbox:SetAsCheckBox()
|
|
onlyMineCheckbox:SetPoint ("right", remove_button, "left", -22, 0)
|
|
|
|
icon:SetPoint ("left", line, "left", 2, 0)
|
|
name:SetPoint ("left", icon, "right", 2, 0)
|
|
|
|
line.icon = icon
|
|
line.name = name
|
|
line.removebutton = remove_button
|
|
line.mineCheckbox = onlyMineCheckbox
|
|
|
|
return line
|
|
end
|
|
|
|
local scroll_refresh = function (self, data, offset, total_lines)
|
|
local needsRefresh
|
|
for i = 1, total_lines do
|
|
local index = i + offset
|
|
local aura = data [index]
|
|
if (aura) then
|
|
local line = self:GetLine (i)
|
|
local spellName, _, spellIcon = GetSpellInfo (aura)
|
|
line.value = aura
|
|
|
|
if not spellName then
|
|
-- if the player class does not know the spell, try checking the cache
|
|
-- avoids "unknown spell" in this case
|
|
local id = Plater.SpellHashTable[lower(aura)]
|
|
spellName, _, spellIcon = GetSpellInfo (id)
|
|
end
|
|
|
|
if (spellName) then
|
|
line.name:SetText (spellName)
|
|
line.icon:SetTexture (spellIcon)
|
|
line.icon:SetTexCoord (.1, .9, .1, .9)
|
|
line.mineCheckbox:SetFixedParameter (aura)
|
|
line.mineCheckbox:SetValue (Plater.db.profile.extra_icon_auras_mine [aura] or false)
|
|
else
|
|
line.name:SetText ("unknown aura")
|
|
line.icon:SetTexture ("")
|
|
line.icon:SetTexture ([[Interface\InventoryItems\WoWUnknownItem01]])
|
|
needsRefresh = true
|
|
end
|
|
end
|
|
end
|
|
if needsRefresh then
|
|
C_Timer.After(1, function() self:Refresh() end)
|
|
end
|
|
end
|
|
|
|
local special_auras_added = DF:CreateScrollBox (specialAuraFrame, "$parentSpecialAurasAdded", scroll_refresh, Plater.db.profile.extra_icon_auras, scroll_width, scroll_height, scroll_lines, scroll_line_height)
|
|
DF:ReskinSlider (special_auras_added)
|
|
special_auras_added.__background:SetAlpha (.4)
|
|
special_auras_added:SetPoint ("topleft", specialAuraFrame, "topleft", 0, -40)
|
|
|
|
local title = DF:CreateLabel (specialAuraFrame, "Special Auras:", DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE"))
|
|
DF:SetFontSize (title, 12)
|
|
title:SetPoint ("bottomleft", special_auras_added, "topleft", 0, 2)
|
|
|
|
local removeLabel = DF:CreateLabel (specialAuraFrame, "remove", DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE"))
|
|
--DF:SetFontSize (title, 12)
|
|
removeLabel:SetPoint ("bottomright", special_auras_added, "topright", 0, 2)
|
|
|
|
local onlyMineLabel = DF:CreateLabel (specialAuraFrame, "only mine", DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE"))
|
|
--DF:SetFontSize (title, 12)
|
|
onlyMineLabel:SetPoint ("bottomright", special_auras_added, "topright", -40, 2)
|
|
|
|
for i = 1, scroll_lines do
|
|
special_auras_added:CreateLine (scroll_createline)
|
|
end
|
|
|
|
--> text entry to input the aura name
|
|
local new_buff_string = DF:CreateLabel (specialAuraFrame, "Add Special Aura", DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE"))
|
|
DF:SetFontSize (new_buff_string, 12)
|
|
|
|
local new_buff_entry = DF:CreateTextEntry (specialAuraFrame, function()end, 200, 20, "NewSpecialAuraTextBox", _, _, options_dropdown_template)
|
|
new_buff_entry.tooltip = "Enter the aura name using lower case letters or spell-IDs.\n\nYou can add several spells at once using |cFFFFFF00;|r to separate each spell name."
|
|
new_buff_entry:SetJustifyH ("left")
|
|
|
|
new_buff_entry:SetHook ("OnEditFocusGained", function (self, capsule)
|
|
new_buff_entry.SpellAutoCompleteList = Plater.SpellIndexTable
|
|
new_buff_entry:SetAsAutoComplete ("SpellAutoCompleteList", nil, true)
|
|
end)
|
|
|
|
new_buff_entry.GetSpellIDFromString = function (text)
|
|
--check if the user entered a spell ID
|
|
local isSpellID = tonumber (text)
|
|
if (isSpellID and isSpellID > 1 and isSpellID < 10000000) then
|
|
local isValidSpellID = GetSpellInfo (isSpellID)
|
|
if (isValidSpellID) then
|
|
return isSpellID
|
|
else
|
|
return
|
|
end
|
|
end
|
|
|
|
--get the spell ID from the spell name
|
|
local lowertext = lower (text)
|
|
local spellID = Plater.SpellHashTable [lowertext]
|
|
if (not spellID) then
|
|
return
|
|
end
|
|
|
|
-- ensure proper name (case sensitive)
|
|
text = GetSpellInfo (spellID)
|
|
|
|
return text
|
|
end
|
|
|
|
--> add aura button
|
|
local add_buff_button = DF:CreateButton (specialAuraFrame, function()
|
|
|
|
local text = new_buff_entry.text
|
|
new_buff_entry:SetText ("")
|
|
new_buff_entry:ClearFocus()
|
|
|
|
if (text ~= "") then
|
|
--> check for more than one spellname
|
|
if (text:find (";")) then
|
|
for _, spellName in ipairs ({strsplit (";", text)}) do
|
|
spellName = DF:trim (spellName)
|
|
local spellID = new_buff_entry.GetSpellIDFromString (spellName)
|
|
|
|
if (spellID) then
|
|
tinsert (Plater.db.profile.extra_icon_auras, spellID)
|
|
else
|
|
print ("spellId not found for spell:", spellName)
|
|
end
|
|
end
|
|
else
|
|
--get the spellId
|
|
local spellID = new_buff_entry.GetSpellIDFromString (text)
|
|
if (not spellID) then
|
|
print ("spellID for spell ", text, "not found")
|
|
return
|
|
end
|
|
|
|
tinsert (Plater.db.profile.extra_icon_auras, spellID)
|
|
end
|
|
|
|
special_auras_added:Refresh()
|
|
Plater.RefreshDBUpvalues()
|
|
end
|
|
|
|
end, 100, 20, "Add Aura", nil, nil, nil, nil, nil, nil, DF:GetTemplate ("button", "OPTIONS_BUTTON_TEMPLATE"))
|
|
|
|
new_buff_entry:SetPoint ("topleft", special_auras_added, "topright", 40, 0)
|
|
new_buff_string:SetPoint ("bottomleft", new_buff_entry, "topleft", 0, 2)
|
|
add_buff_button:SetPoint ("topleft", new_buff_entry, "bottomleft", 0, -2)
|
|
add_buff_button.tooltip = "Add the aura to be tracked."
|
|
|
|
--
|
|
especial_aura_settings = {
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Icon Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_anchor.side end,
|
|
values = function() return build_anchor_side_table (false, "extra_icon_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "Slightly move horizontally.",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "Slightly move vertically.",
|
|
},
|
|
--width
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_width end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_width = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 8,
|
|
max = 128,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_WIDTH",
|
|
},
|
|
--height
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_height end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_height = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 8,
|
|
max = 128,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_HEIGHT",
|
|
},
|
|
--border size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_border_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_border_size = value
|
|
end,
|
|
min = 0,
|
|
max = 10,
|
|
step = 1,
|
|
name = "OPTIONS_BORDER_THICKNESS",
|
|
desc = "Border Thickness" .. CVarNeedReload,
|
|
},
|
|
--wide icons
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_wide_icon end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_wide_icon = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Wide Icons",
|
|
desc = "Wide Icons",
|
|
},
|
|
--use blizzard border colors
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_use_blizzard_border_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_use_blizzard_border_color = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Blizzard border colors",
|
|
desc = "Use Blizzard border colors if enabled or the below defined default border color if disabled.",
|
|
},
|
|
--border color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.extra_icon_border_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.extra_icon_border_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Default Border Color",
|
|
desc = "Default Border Color",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_cooldown_edge_texture end,
|
|
values = function() return extra_icon_cooldown_edge_texture_selected_options end,
|
|
name = "Swipe Texture",
|
|
desc = "Texture in the form of a line which rotates within the aura icon following the aura remaining time.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_swipe end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_swipe = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Swipe Closure Texture",
|
|
desc = "If enabled the swipe closure texture is applied as the swipe moves instead.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_cooldown_reverse end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_cooldown_reverse = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Swipe Closure Inverted",
|
|
desc = "If enabled the swipe closure texture is applied as the swipe moves instead.",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
--{type = "label", get = function() return "Text Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--show timer
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_timer end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_timer = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Timer",
|
|
desc = "Show Timer",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_timer_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_timer_decimals = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show decimals below 10s remaining time",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_timer_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_buff_special_timer_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_timer_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_timer_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_timer_outline end,
|
|
values = function() return build_outline_modes_table (nil, "extra_icon_timer_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--show caster name
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_caster_name end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_caster_name = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Caster Name",
|
|
desc = "Show Caster Name (if player)",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_caster_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_buff_special_caster_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_caster_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_caster_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_caster_outline end,
|
|
values = function() return build_outline_modes_table (nil, "extra_icon_caster_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--show stacks
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_stacks end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_stacks = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Stacks",
|
|
desc = "Show Stacks",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_stack_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_buff_special_stack_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.extra_icon_stack_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_stack_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.extra_icon_stack_outline end,
|
|
values = function() return build_outline_modes_table (nil, "extra_icon_stack_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Auto Add These Types of Auras:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
--show crowd control auras
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.debuff_show_cc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.debuff_show_cc = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Crowd Control",
|
|
desc = "When the unit has a crowd control spell (such as Polymorph).",
|
|
},
|
|
--show purge icons
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_purge end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_purge = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Dispellable",
|
|
desc = "When the unit has an aura which can be dispellable or purge by you",
|
|
},
|
|
--show enrages
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_enrage end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_enrage = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Enrage",
|
|
desc = "When the unit has an enrage effect on it, show it.",
|
|
},
|
|
--show enrages
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_magic end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_magic = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Magic",
|
|
desc = "When the unit has a magic buff on it, show it.",
|
|
},
|
|
--show offensive CDs
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_offensive end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_offensive = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Offensive player CDs",
|
|
desc = "When the unit has an offensive effect on it, show it.",
|
|
},
|
|
--show defensive CDs
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.extra_icon_show_defensive end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.extra_icon_show_defensive = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Defensive player CDs",
|
|
desc = "When the unit has a defensive effect on it, show it.",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "Aura Border Colors:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--cc border color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.debuff_show_cc_border
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.debuff_show_cc_border
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Crowd Control Border Color",
|
|
desc = "Crowd Control Border Color",
|
|
},
|
|
--purge border color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.extra_icon_show_purge_border
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.extra_icon_show_purge_border
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Dispellable Border Color",
|
|
desc = "Dispellable Border Color",
|
|
},
|
|
--enrage border color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.extra_icon_show_enrage_border
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.extra_icon_show_enrage_border
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Enrage Border Color",
|
|
desc = "Enrage Border Color",
|
|
},
|
|
--offensive border color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.extra_icon_show_offensive_border
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.extra_icon_show_offensive_border
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Offensive Border Color",
|
|
desc = "Offensive Border Color",
|
|
},
|
|
--defensive border color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.extra_icon_show_defensive_border
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.extra_icon_show_defensive_border
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Defensive Border Color",
|
|
desc = "Defensive Border Color",
|
|
},
|
|
|
|
{type = "blank"},
|
|
--{type = "blank"},
|
|
{type = "label", get = function() return "DBM / BigWigs Support:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.bossmod_support_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_support_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Enable the boss mod icon support for BigWigs and DBM.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.bossmod_bw_castrename_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_bw_castrename_enabled = value
|
|
--Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Enable BigWigs cast spell renaming",
|
|
desc = "Enable cast rename based on BigWigs spell names.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.bossmod_support_bars_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_support_bars_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "DBM CD-Bar Icons enabled",
|
|
desc = "Enable the boss mod bar support for DBM, to show timer bars as icons on the nameplates.",
|
|
},
|
|
|
|
--{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Icon Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
--width
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.bossmod_aura_width end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_aura_width = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 8,
|
|
max = 64,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_WIDTH",
|
|
},
|
|
--height
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.bossmod_aura_height end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_aura_height = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 8,
|
|
max = 64,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_HEIGHT",
|
|
},
|
|
|
|
--anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.bossmod_icons_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "bossmod_icons_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "Which side of the nameplate the icons should attach to.",
|
|
},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.bossmod_icons_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_icons_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -40,
|
|
max = 40,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.bossmod_icons_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_icons_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -60,
|
|
max = 60,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
--text enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.bossmod_support_bars_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_support_bars_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Icon text enabled",
|
|
desc = "Enable Bar Text.",
|
|
},
|
|
|
|
--{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Cooldown Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.bossmod_cooldown_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_cooldown_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Enable Cooldown Text.",
|
|
},
|
|
--cd text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.bossmod_cooldown_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.bossmod_cooldown_text_size = value
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 32,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "Size",
|
|
},
|
|
}
|
|
|
|
auraSpecialFrame.ExampleImageDesc = DF:CreateLabel (auraSpecialFrame, "Special auras look like this:", 14)
|
|
auraSpecialFrame.ExampleImageDesc:SetPoint (330, -235)
|
|
auraSpecialFrame.ExampleImage = DF:CreateImage (auraSpecialFrame, [[Interface\AddOns\Plater\images\extra_icon_example]], 256*0.8, 128*0.8)
|
|
auraSpecialFrame.ExampleImage:SetPoint (330, -249)
|
|
auraSpecialFrame.ExampleImage:SetAlpha (.834)
|
|
|
|
local fff = CreateFrame ("frame", "$parentExtraIconsSettings", auraSpecialFrame, BackdropTemplateMixin and "BackdropTemplate")
|
|
fff:SetAllPoints()
|
|
|
|
_G.C_Timer.After(0.6, function() --~delay
|
|
especial_aura_settings.always_boxfirst = true
|
|
especial_aura_settings.language_addonId = addonId
|
|
especial_aura_settings.Name = "Special Auras Options"
|
|
DF:BuildMenu (fff, especial_aura_settings, 330, startY - 27, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
|
|
--when the profile has changed
|
|
function auraSpecialFrame:RefreshOptions()
|
|
--update the script data for the scroll and refresh
|
|
special_auras_added:SetData (Plater.db.profile.extra_icon_auras)
|
|
special_auras_added:Refresh()
|
|
end
|
|
|
|
specialAuraFrame:SetScript ("OnShow", function()
|
|
special_auras_added:Refresh()
|
|
DF:LoadSpellCache(Plater.SpellHashTable, Plater.SpellIndexTable, Plater.SpellSameNameTable)
|
|
end)
|
|
specialAuraFrame:SetScript ("OnHide", function()
|
|
--DF:UnloadSpellCache()
|
|
end)
|
|
|
|
--create the description
|
|
auraSpecialFrame.TitleDescText = Plater:CreateLabel (auraSpecialFrame, "Track auras adding them to a special buff frame separated from the main buff line. Use it to emphasize important auras from raid bosses or mythic dungeons.", 10, "silver")
|
|
auraSpecialFrame.TitleDescText:SetPoint ("bottomleft", special_auras_added, "topleft", 0, 26)
|
|
end
|
|
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
-- personal player ~player
|
|
local options_personal
|
|
|
|
do
|
|
local on_select_player_percent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.player.percent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_player_power_percent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_player_npccastname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.player.spellname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_player_spellpercent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.player.spellpercent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
--local _, _, _, iconWindWalker = GetSpecializationInfoByID (269)
|
|
--local _, _, _, iconArcane = GetSpecializationInfoByID (62)
|
|
--local _, _, _, iconRune = GetSpecializationInfoByID (250)
|
|
--local _, _, _, iconHolyPower = GetSpecializationInfoByID (66)
|
|
--local _, _, _, iconRogueCB = GetSpecializationInfoByID (261)
|
|
--local _, _, _, iconDruidCB = GetSpecializationInfoByID (103)
|
|
--local _, _, _, iconSoulShard = GetSpecializationInfoByID (267)
|
|
|
|
local locClass = UnitClass ("player")
|
|
|
|
options_personal = {
|
|
|
|
{type = "label", get = function() return "General Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return "player" end,
|
|
values = function() return copy_settings_options end,
|
|
name = "Copy",
|
|
desc = "Copy settings from another tab.\n\nWhen selecting an option a confirmation box is shown to confirm the copy.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.module_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.module_enabled = value
|
|
ReloadUI()
|
|
end,
|
|
nocombat = true,
|
|
name = "Module Enabled",
|
|
desc = "Enable Plater nameplates for the personal bar.\n\n" .. ImportantText .. "Forces a /reload on change.\nThis option is dependent on the client`s nameplate state (on/off)",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.click_through end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.click_through = value
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
name = "Click Through",
|
|
desc = "Player nameplate won't receive mouse clicks.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return GetCVarBool ("nameplatePersonalShowAlways") end,
|
|
set = function (self, fixedparam, value)
|
|
if (value) then
|
|
SetCVar ("nameplatePersonalShowAlways", CVAR_ENABLED)
|
|
else
|
|
SetCVar ("nameplatePersonalShowAlways", CVAR_DISABLED)
|
|
end
|
|
end,
|
|
nocombat = true,
|
|
name = "Always Show" .. CVarIcon,
|
|
desc = "If enabled, the personal health bar is always shown.\n\n" .. ImportantText .. "'Personal Health and Mana Bars' (in the Main Menu tab) must be enabled." .. CVarDesc,
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return GetCVarBool ("nameplatePersonalShowWithTarget") end,
|
|
set = function (self, fixedparam, value)
|
|
if (value) then
|
|
SetCVar ("nameplatePersonalShowWithTarget", CVAR_ENABLED)
|
|
else
|
|
SetCVar ("nameplatePersonalShowWithTarget", CVAR_DISABLED)
|
|
end
|
|
end,
|
|
nocombat = true,
|
|
name = "Show When you Have a Target" .. CVarIcon,
|
|
desc = "If enabled, show the personal bar when you have a target.\n\n" .. ImportantText .. "'Personal Health and Mana Bars' (in the Main Menu tab) must be enabled." .. CVarDesc,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return GetCVarBool ("nameplatePersonalShowInCombat") end,
|
|
set = function (self, fixedparam, value)
|
|
if (value) then
|
|
SetCVar ("nameplatePersonalShowInCombat", CVAR_ENABLED)
|
|
else
|
|
SetCVar ("nameplatePersonalShowInCombat", CVAR_DISABLED)
|
|
end
|
|
end,
|
|
nocombat = true,
|
|
name = "Show In Combat" .. CVarIcon,
|
|
desc = "If enabled, show the personal bar when you are in combat.\n\n" .. ImportantText .. "'Personal Health and Mana Bars' (in the Main Menu tab) must be enabled." .. CVarDesc,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateSelfAlpha")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateSelfAlpha", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0.1,
|
|
max = 1,
|
|
step = 0.1,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = L["OPTIONS_ALPHA"] .. CVarIcon,
|
|
desc = "Alpha" .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateSelfScale")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateSelfScale", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0.5,
|
|
max = 2.5,
|
|
step = 0.1,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = "Scale" .. CVarIcon,
|
|
desc = "Scale" .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Aura Frame:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aura_show_buffs_personal end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_buffs_personal = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_AURA_SHOW_BUFFS",
|
|
desc = "OPTIONS_AURA_SHOW_BUFFS_DESC",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aura_show_debuffs_personal end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_debuffs_personal = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_AURA_SHOW_DEBUFFS",
|
|
desc = "OPTIONS_AURA_SHOW_DEBUFFS_DESC",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aura_show_all_duration_buffs_personal end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_show_all_duration_buffs_personal = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Don't filter Buffs by Duration",
|
|
desc = "Show debuffs on you on the Personal Bar regardless of duration (show no-duration and >60sec).",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_width_personal end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_width_personal = value
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 4,
|
|
max = 80,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_AURA_WIDTH",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_height_personal end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_height_personal = value
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 4,
|
|
max = 80,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_AURA_HEIGHT",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.aura_border_thickness_personal end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aura_border_thickness_personal = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.RefreshAuras()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 5,
|
|
step = 1,
|
|
name = "OPTIONS_BORDER_THICKNESS",
|
|
desc = "OPTIONS_BORDER_THICKNESS",
|
|
},
|
|
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.buff_frame_y_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.buff_frame_y_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Personal Bar Constrain:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "execute",
|
|
func = function()
|
|
SetCVar ("nameplateSelfTopInset", 0.50)
|
|
SetCVar ("nameplateSelfBottomInset", 0.20)
|
|
end,
|
|
desc = "When using a fixed position and want to go back to Blizzard default." .. CVarDesc,
|
|
name = "Reset to Automatic Position" .. CVarIcon,
|
|
nocombat = true,
|
|
width = 140,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateSelfBottomInset")*100) end,
|
|
set = function (self, fixedparam, value)
|
|
--Plater.db.profile.plate_config.player.y_position_offset = value
|
|
|
|
if (InCombatLockdown()) then
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (tonumber (GetCVar ("nameplateSelfBottomInset")*100))
|
|
return
|
|
end
|
|
|
|
value = floor (value)
|
|
|
|
SetCVar ("nameplateSelfBottomInset", value / 100)
|
|
SetCVar ("nameplateSelfTopInset", abs (value - 99) / 100)
|
|
|
|
if (not Plater.PersonalAdjustLocation) then
|
|
Plater.PersonalAdjustLocation = CreateFrame ("frame", "PlaterPersonalBarLocation", UIParent, BackdropTemplateMixin and "BackdropTemplate")
|
|
local frame = Plater.PersonalAdjustLocation
|
|
frame:SetWidth (GetScreenWidth())
|
|
frame:SetHeight (20)
|
|
frame.Texture = frame:CreateTexture (nil, "background")
|
|
frame.Texture:SetTexture ([[Interface\AddOns\Plater\images\bar4_vidro]], true)
|
|
frame.Texture:SetAllPoints()
|
|
frame.Shadow = frame:CreateTexture (nil, "border")
|
|
frame.Shadow:SetTexture ([[Interface\ACHIEVEMENTFRAME\UI-Achievement-RecentHeader]], true)
|
|
frame.Shadow:SetPoint ("center")
|
|
frame.Shadow:SetSize (256, 18)
|
|
frame.Shadow:SetTexCoord (0, 1, 0, 22/32)
|
|
frame.Shadow:SetVertexColor (0, 0, 0, 1)
|
|
frame.Text = frame:CreateFontString (nil, "artwork", "GameFontNormal")
|
|
frame.Text:SetText ("Plater: Personal Bar Position")
|
|
frame.Text:SetPoint ("center")
|
|
|
|
frame.HideAnimation = DF:CreateAnimationHub (frame, nil, function() frame:Hide() end)
|
|
DF:CreateAnimation (frame.HideAnimation, "Alpha", 1, 1, 1, 0)
|
|
|
|
frame.CancelFunction = function()
|
|
frame.HideAnimation:Play()
|
|
end
|
|
end
|
|
|
|
if (Plater.PersonalAdjustLocation.HideAnimation:IsPlaying()) then
|
|
Plater.PersonalAdjustLocation.HideAnimation:Stop()
|
|
Plater.PersonalAdjustLocation:SetAlpha (1)
|
|
end
|
|
Plater.PersonalAdjustLocation:Show()
|
|
|
|
local percentValue = GetScreenHeight()/100
|
|
Plater.PersonalAdjustLocation:SetPoint ("bottom", UIParent, "bottom", 0, percentValue * value)
|
|
|
|
if (Plater.PersonalAdjustLocation.Timer) then
|
|
Plater.PersonalAdjustLocation.Timer:Cancel()
|
|
end
|
|
Plater.PersonalAdjustLocation.Timer = C_Timer.NewTimer (7, Plater.PersonalAdjustLocation.CancelFunction)
|
|
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 2,
|
|
max = 98,
|
|
step = 1,
|
|
nocombat = true,
|
|
name = "Fixed Position" .. CVarIcon,
|
|
desc = "With a fixed position, personal bar won't move.\n\nTo revert this, click the button above." .. CVarDesc,
|
|
},
|
|
|
|
--{type = "blank"},
|
|
{type = "label", get = function() return "Blizzard Cast Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
--hide castbar from blizzard
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.hide_blizzard_castbar end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.hide_blizzard_castbar = value
|
|
end,
|
|
name = "OPTIONS_CASTBAR_HIDEBLIZZARD",
|
|
desc = "OPTIONS_CASTBAR_HIDEBLIZZARD",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--life size
|
|
{type = "label", get = function() return "Health Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.healthbar_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.healthbar_enabled = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "OPTIONS_PERSONAL_SHOW_HEALTHBAR",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.health[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.health[1] = value
|
|
Plater.db.profile.plate_config.player.health_incombat[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_PERSONAL_HEALTHBAR_WIDTH",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.health[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.health[2] = value
|
|
Plater.db.profile.plate_config.player.health_incombat[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_PERSONAL_HEALTHBAR_HEIGHT",
|
|
},
|
|
|
|
--energy bar settings
|
|
--{type = "blank"},
|
|
{type = "label", get = function() return "Power Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.power_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_enabled = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "OPTIONS_SHOW_POWERBAR",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.mana[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.mana[1] = value
|
|
Plater.db.profile.plate_config.player.mana_incombat[1] = value
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_POWERBAR_WIDTH",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.mana[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.mana[2] = value
|
|
Plater.db.profile.plate_config.player.mana_incombat[2] = value
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_POWERBAR_HEIGHT",
|
|
},
|
|
|
|
--cast bar settings
|
|
--{type = "blank"},
|
|
{type = "label", get = function() return "Cast Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.castbar_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.castbar_enabled = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "OPTIONS_SHOW_CASTBAR",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.cast[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.cast[1] = value
|
|
Plater.db.profile.plate_config.player.cast_incombat[1] = value
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "OPTIONS_CASTBAR_WIDTH",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.cast[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.cast[2] = value
|
|
Plater.db.profile.plate_config.player.cast_incombat[2] = value
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateSelfPlate()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "OPTIONS_CASTBAR_HEIGHT",
|
|
},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.castbar_offset_x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.castbar_offset_x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.castbar_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.castbar_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
--cast text size
|
|
{type = "label", get = function() return "Spell Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.spellname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellname_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.spellname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_player_npccastname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--cast text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.spellname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.spellname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.spellname_text_outline end,
|
|
values = function() return build_outline_modes_table ("player", "spellname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.spellname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.spellname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--spell name text anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.spellname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("player", "spellname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.spellname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.spellname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "Spell Cast Time Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellpercent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the cast time progress.",
|
|
},
|
|
--cast time text
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellpercent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast time text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_player_spellpercent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_outline end,
|
|
values = function() return build_outline_modes_table ("player", "spellpercent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.spellpercent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.spellpercent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--cast time text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.spellpercent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.spellpercent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--cast time anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("player", "spellpercent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellpercent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.spellpercent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.spellpercent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
|
|
{type = "blank"},
|
|
|
|
|
|
{type = "label", get = function() return "Power Percent Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the percent text.",
|
|
},
|
|
--percent text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--percent text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_player_power_percent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--[=[
|
|
--show outline
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_outline end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_outline = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Outline",
|
|
desc = "If the text has a black outline.",
|
|
},
|
|
--]=]
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_outline end,
|
|
values = function() return build_outline_modes_table ("player", "power_percent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.power_percent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.power_percent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--pecent text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.power_percent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.power_percent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Text Color",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--percent text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--percent anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("player", "power_percent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.power_percent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.power_percent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--percent text
|
|
{type = "label", get = function() return "Health Information:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the percent text.",
|
|
},
|
|
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.healthbar_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.healthbar_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "Color",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.healthbar_color_by_hp end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.healthbar_color_by_hp = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Color by Health",
|
|
desc = "Use the regular color when full health and change it to red as the health goes lower",
|
|
},
|
|
|
|
--out of combat
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_ooc = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Out of Combat",
|
|
desc = "Show the percent even when isn't in combat.",
|
|
},
|
|
--percent amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_show_percent end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_show_percent = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Percent Amount",
|
|
desc = "Show Percent Amount",
|
|
},
|
|
--health amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_show_health end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_show_health = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Health Amount",
|
|
desc = "Show Health Amount",
|
|
},
|
|
|
|
--health decimals
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_show_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_show_decimals = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show Decimals",
|
|
},
|
|
|
|
--percent text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--percent text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_player_percent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_outline end,
|
|
values = function() return build_outline_modes_table ("player", "percent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.percent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.percent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--pecent text color"
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.player.percent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.player.percent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--percent text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--percent anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("player", "percent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -20,
|
|
max = 20,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.player.percent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.player.percent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -20,
|
|
max = 20,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
--class resources
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Resources:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.resources.alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.resources.alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Resource Alpha",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.resources.scale end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.resources.scale = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0.25,
|
|
max = 2,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
nocombat = true,
|
|
name = "Resource Scale",
|
|
desc = "Resource Scale",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.resources.y_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.resources.y_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
nocombat = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "Y Offset when resource bar are anchored to your personal bar",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.resources.y_offset_target end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.resources.y_offset_target = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
nocombat = true,
|
|
name = "Y OffSet on Target",
|
|
desc = "Y Offset when the resource are anchored on your current target",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.resources.y_offset_target_withauras end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.resources.y_offset_target_withauras = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
nocombat = true,
|
|
name = "Offset if Buff is Shown",
|
|
desc = "Add this to 'Y OffSet on Target' if there is buffs or debuffs shown in the nameplate",
|
|
},
|
|
|
|
}
|
|
|
|
if IS_WOW_PROJECT_NOT_MAINLINE then
|
|
options_personal = {
|
|
{type = "label", get = function() return "Not available in WoW Classic." end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
}
|
|
end
|
|
|
|
_G.C_Timer.After(1.3, function() --~delay
|
|
options_personal.always_boxfirst = true
|
|
options_personal.language_addonId = addonId
|
|
options_personal.Name = "Personal Options"
|
|
DF:BuildMenu (personalPlayerFrame, options_personal, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
end
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--target options
|
|
|
|
local on_select_target_indicator = function (_, _, indicator)
|
|
Plater.db.profile.target_indicator = indicator
|
|
Plater.OnPlayerTargetChanged()
|
|
end
|
|
local indicator_table = {}
|
|
for name, indicatoirTable in pairs (Plater.TargetIndicators) do
|
|
tinsert (indicator_table, {label = name, value = name, onclick = on_select_target_indicator, icon = indicatoirTable.path, texcoord = indicatoirTable.coords[1]})
|
|
end
|
|
local build_target_indicator_table = function()
|
|
return indicator_table
|
|
end
|
|
|
|
local focus_indicator_texture_selected = function (self, capsule, value)
|
|
Plater.db.profile.focus_texture = value
|
|
Plater.OnPlayerTargetChanged()
|
|
end
|
|
local focus_indicator_texture_options = {}
|
|
for name, texturePath in pairs (textures) do
|
|
focus_indicator_texture_options [#focus_indicator_texture_options + 1] = {value = name, label = name, statusbar = texturePath, onclick = focus_indicator_texture_selected}
|
|
end
|
|
table.sort (focus_indicator_texture_options, function (t1, t2) return t1.label < t2.label end)
|
|
|
|
--targetFrame
|
|
local targetOptions = {
|
|
{type = "label", get = function() return "Target:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
--target texture
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.health_selection_overlay end,
|
|
values = function() return health_selection_overlay_options end,
|
|
name = "TARGET_OVERLAY_TEXTURE",
|
|
desc = "TARGET_OVERLAY_TEXTURE_DESC",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.health_selection_overlay_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.health_selection_overlay_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "TARGET_OVERLAY_ALPHA",
|
|
desc = "TARGET_OVERLAY_ALPHA",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.health_selection_overlay_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.health_selection_overlay_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.OnPlayerTargetChanged()
|
|
end,
|
|
name = L["OPTIONS_COLOR"],
|
|
desc = "Focus Color",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.target_highlight end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.target_highlight = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "TARGET_HIGHLIGHT",
|
|
desc = "TARGET_HIGHLIGHT_DESC",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.target_highlight_texture end,
|
|
values = function() return target_selection_texture_selected_options end,
|
|
name = "TARGET_HIGHLIGHT_TEXTURE",
|
|
desc = "TARGET_HIGHLIGHT_TEXTURE",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.target_highlight_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.target_highlight_alpha = value
|
|
Plater.OnPlayerTargetChanged()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "TARGET_HIGHLIGHT_ALPHA",
|
|
desc = "TARGET_HIGHLIGHT_ALPHA",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.target_highlight_height end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.target_highlight_height = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 2,
|
|
max = 60,
|
|
step = 1,
|
|
name = "TARGET_HIGHLIGHT_SIZE",
|
|
desc = "TARGET_HIGHLIGHT_SIZE",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.target_highlight_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.target_highlight_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.OnPlayerTargetChanged()
|
|
end,
|
|
name = "TARGET_HIGHLIGHT_COLOR",
|
|
desc = "TARGET_HIGHLIGHT_COLOR",
|
|
},
|
|
|
|
--target_highlight_texture
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.hover_highlight end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.hover_highlight = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.FullRefreshAllPlates()
|
|
end,
|
|
name = "HIGHLIGHT_HOVEROVER",
|
|
desc = "HIGHLIGHT_HOVEROVER_DESC",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.hover_highlight_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.hover_highlight_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "HIGHLIGHT_HOVEROVER_ALPHA",
|
|
desc = "HIGHLIGHT_HOVEROVER_ALPHA",
|
|
usedecimals = true,
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.target_indicator end,
|
|
values = function() return build_target_indicator_table() end,
|
|
name = "Target Bracket Indicator",
|
|
desc = "Target Bracket Indicator",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
--target alpha
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.target_shady_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.target_shady_enabled = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.OnPlayerTargetChanged()
|
|
--update
|
|
end,
|
|
name = "Target Shading",
|
|
desc = "Apply a layer of shadow above the nameplate when the unit is in range but isn't your current target.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.target_shady_combat_only end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.target_shady_combat_only = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.OnPlayerTargetChanged()
|
|
--update
|
|
end,
|
|
name = "Target Shading Only in Combat",
|
|
desc = "Apply target shading only when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.target_shady_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.target_shady_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.OnPlayerTargetChanged()
|
|
--update
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "Target Shading Amount",
|
|
desc = "Amount of shade to apply.",
|
|
usedecimals = true,
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return GetCVarBool ("nameplateTargetRadialPosition") end,
|
|
set = function (self, fixedparam, value)
|
|
if (value) then
|
|
SetCVar ("clampTargetNameplateToScreen", CVAR_ENABLED)
|
|
SetCVar ("nameplateTargetRadialPosition", CVAR_ENABLED)
|
|
else
|
|
SetCVar ("clampTargetNameplateToScreen", CVAR_DISABLED)
|
|
SetCVar ("nameplateTargetRadialPosition", CVAR_DISABLED)
|
|
end
|
|
end,
|
|
nocombat = true,
|
|
name = "TARGET_CVAR_ALWAYSONSCREEN",
|
|
desc = "TARGET_CVAR_ALWAYSONSCREEN_DESC",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateOtherTopInset")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
if (value == 0) then
|
|
SetCVar ("nameplateOtherTopInset", -1)
|
|
SetCVar ("nameplateLargeTopInset", -1)
|
|
|
|
else
|
|
SetCVar ("nameplateOtherTopInset", value)
|
|
SetCVar ("nameplateLargeTopInset", value)
|
|
|
|
end
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0.000,
|
|
max = 0.1,
|
|
step = 0.005,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = "TARGET_CVAR_LOCKTOSCREEN",
|
|
desc = "TARGET_CVAR_LOCKTOSCREEN_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateOtherBottomInset")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
if (value == 0) then
|
|
SetCVar ("nameplateOtherBottomInset", -1)
|
|
SetCVar ("nameplateLargeBottomInset", -1)
|
|
|
|
else
|
|
SetCVar ("nameplateOtherBottomInset", value)
|
|
SetCVar ("nameplateLargeBottomInset", value)
|
|
|
|
end
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0.000,
|
|
max = 0.1,
|
|
step = 0.005,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = "Lock to Screen (Bottom Side)|cFFFF7700*|r",
|
|
desc = "Min space between the nameplate and the bottom of the screen. Increase this if some part of the nameplate are going out of the screen.\n\n|cFFFFFFFFDefault: 0.065|r\n\n|cFFFFFF00 Important |r: if you're having issue, manually set using these macros:\n/run SetCVar ('nameplateOtherBottomInset', '0.1')\n/run SetCVar ('nameplateLargeBottomInset', '0.15')\n\n|cFFFFFF00 Important |r: setting to 0 disables this feature.\n\n|cFFFF7700[*]|r |cFFa0a0a0CVar, saved within Plater profile and restored when loading the profile.|r",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateTargetBehindMaxDistance")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateTargetBehindMaxDistance", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 5,
|
|
max = 50,
|
|
step = 1,
|
|
thumbscale = 1.7,
|
|
name = "Target Behind You Distance" .. CVarIcon,
|
|
desc = "Max distance to allow show the nameplate of your target when the unit is behind you and not shown in the screen.\n\n|cFFFFFFFFDefault: 15|r" .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateSelectedScale")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateSelectedScale", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0.75,
|
|
max = 1.75,
|
|
step = 0.1,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = "Target Scale" .. CVarIcon,
|
|
desc = "The nameplate size for the current target is multiplied by this value.\n\n|cFFFFFFFFDefault: 1|r\n\n|cFFFFFFFFRecommended: 1.15|r" .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "Focus:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.focus_indicator_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.focus_indicator_enabled = value
|
|
Plater.OnPlayerTargetChanged()
|
|
end,
|
|
name = "Show Focus Overlay",
|
|
desc = "Focus Indicator",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.focus_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.focus_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.OnPlayerTargetChanged()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "Focus Color",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.focus_texture end,
|
|
values = function() return focus_indicator_texture_options end,
|
|
name = "OPTIONS_TEXTURE",
|
|
desc = "Focus Texture",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Raid Mark:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.indicator_raidmark_scale end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_raidmark_scale = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0.2,
|
|
max = 2,
|
|
step = 0.1,
|
|
usedecimals = true,
|
|
name = "Scale",
|
|
desc = "Scale",
|
|
},
|
|
|
|
--indicator icon anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.indicator_raidmark_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "indicator_raidmark_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--indicator icon anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.indicator_raidmark_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_raidmark_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "Slightly move horizontally.",
|
|
},
|
|
--indicator icon anchor y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.indicator_raidmark_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_raidmark_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "Slightly move vertically.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.indicator_extra_raidmark end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_extra_raidmark = value
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateRaidMarkersOnAllNameplates()
|
|
end,
|
|
name = "Extra Raid Mark",
|
|
desc = "Places an extra raid mark icon inside the health bar.",
|
|
},
|
|
|
|
}
|
|
|
|
_G.C_Timer.After(1.20, function() --~delay
|
|
targetOptions.always_boxfirst = true
|
|
targetOptions.language_addonId = addonId
|
|
targetOptions.Name = "Target Options"
|
|
DF:BuildMenu (targetFrame, targetOptions, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
--coloca as op��es gerais no main menu logo abaixo dos 4 bot�es
|
|
--OP��ES NO PAINEL PRINCIPAL
|
|
|
|
function Plater.ChangeNpcRelavance (_, _, value)
|
|
if (value == 1) then
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].only_names = false
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].all_names = false
|
|
|
|
elseif (value == 2) then
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].only_names = false
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].all_names = true
|
|
|
|
elseif (value == 3) then
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].only_names = true
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].all_names = false
|
|
|
|
elseif (value == 4) then
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].only_names = true
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].all_names = true
|
|
end
|
|
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].relevance_state = value
|
|
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local relevance_options = {
|
|
{label = "All Professions (Healthbars)", value = 1, onclick = Plater.ChangeNpcRelavance},
|
|
{label = "All Npcs (Healthbars)", value = 2, onclick = Plater.ChangeNpcRelavance},
|
|
{label = "All Professions (Name)", value = 3, onclick = Plater.ChangeNpcRelavance},
|
|
{label = "All Npcs (Name)", value = 4, onclick = Plater.ChangeNpcRelavance},
|
|
}
|
|
|
|
--
|
|
|
|
|
|
--menu 1 ~general ~geral
|
|
local options_table1 = {
|
|
|
|
{type = "label", get = function() return "Interface Options (from the client):" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return GetCVarBool ("nameplateShowEnemies") end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateShowEnemies", value and "1" or "0")
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (GetCVarBool ("nameplateShowEnemies"))
|
|
end
|
|
end,
|
|
name = "OPTIONS_NAMEPLATE_SHOW_ENEMY", --show enemy nameplates
|
|
desc = "OPTIONS_NAMEPLATE_SHOW_ENEMY_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return GetCVarBool ("nameplateShowFriends") end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateShowFriends", value and "1" or "0")
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (GetCVarBool ("nameplateShowFriends"))
|
|
end
|
|
end,
|
|
name = "OPTIONS_NAMEPLATE_SHOW_FRIENDLY", --show friendly nameplates
|
|
desc = "OPTIONS_NAMEPLATE_SHOW_FRIENDLY_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return GetCVarBool ("nameplateShowOnlyNames") end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateShowOnlyNames", value and "1" or "0")
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (GetCVarBool ("nameplateShowOnlyNames"))
|
|
end
|
|
|
|
Plater.UpdateBaseNameplateOptions()
|
|
end,
|
|
name = "OPTIONS_NAMEPLATE_HIDE_FRIENDLY_HEALTH", --"Hide Blizzard Health Bars"
|
|
desc = "OPTIONS_NAMEPLATE_HIDE_FRIENDLY_HEALTH_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return GetCVar ("nameplateShowSelf") == CVAR_ENABLED end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateShowSelf", math.abs (tonumber (GetCVar ("nameplateShowSelf") or 1)-1))
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (GetCVar ("nameplateShowSelf") == CVAR_ENABLED)
|
|
end
|
|
end,
|
|
name = "OPTIONS_CVAR_ENABLE_PERSONAL_BAR",
|
|
desc = "OPTIONS_CVAR_ENABLE_PERSONAL_BAR_DESC",
|
|
nocombat = true,
|
|
hidden = IS_WOW_PROJECT_NOT_MAINLINE,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return PlaterDBChr.resources_on_target end,
|
|
set = function (self, fixedparam, value)
|
|
PlaterDBChr.resources_on_target = value
|
|
if value then
|
|
Plater.db.profile.resources_settings.global_settings.show = false
|
|
end
|
|
if (not InCombatLockdown()) then
|
|
SetCVar (CVAR_RESOURCEONTARGET, CVAR_DISABLED) -- reset this to false always, as it conflicts
|
|
end
|
|
end,
|
|
name = "OPTIONS_RESOURCES_TARGET",
|
|
desc = "OPTIONS_RESOURCES_TARGET_DESC",
|
|
nocombat = true,
|
|
hidden = IS_WOW_PROJECT_NOT_MAINLINE,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return GetCVar (CVAR_SHOWALL) == CVAR_ENABLED end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar (CVAR_SHOWALL, math.abs (tonumber (GetCVar (CVAR_SHOWALL))-1))
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (GetCVar (CVAR_SHOWALL) == CVAR_ENABLED)
|
|
end
|
|
end,
|
|
name = "OPTIONS_CVAR_NAMEPLATES_ALWAYSSHOW",
|
|
desc = "OPTIONS_CVAR_NAMEPLATES_ALWAYSSHOW_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.honor_blizzard_plate_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.honor_blizzard_plate_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Blizzard's Nameplate Alpha",
|
|
desc = "Use the 'occluded' and other blizzard nameplate alpha values from blizzard settings.\n\nThis setting only works with 'Use custom strata channels' enabled.",
|
|
id = "transparency_blizzard_alpha",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateOccludedAlphaMult")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateOccludedAlphaMult", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = "Occluded Alpha Multiplier" .. CVarIcon,
|
|
desc = "Alpha multiplyer for 'occluded' plates (when they are not in line of sight)." .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return GetCVarBool (CVAR_PLATEMOTION) end, --GetCVar (CVAR_PLATEMOTION) == CVAR_ENABLED
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar (CVAR_PLATEMOTION, value and "1" or "0")
|
|
Plater.db.profile.stacking_nameplates_enabled = value
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
self:SetValue (GetCVar (CVAR_PLATEMOTION) == CVAR_ENABLED)
|
|
end
|
|
end,
|
|
name = "OPTIONS_NAMEPLATES_STACKING",
|
|
desc = "OPTIONS_NAMEPLATES_STACKING_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplateOverlapV")) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplateOverlapV", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0.2,
|
|
max = 2.5,
|
|
step = 0.05,
|
|
thumbscale = 1.7,
|
|
usedecimals = true,
|
|
name = "OPTIONS_NAMEPLATES_OVERLAP",
|
|
desc = "OPTIONS_NAMEPLATES_OVERLAP_DESC",
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar (CVAR_CULLINGDISTANCE)) end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar (CVAR_CULLINGDISTANCE, value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = IS_WOW_PROJECT_MAINLINE and 0 or 20, --20y for tbc and classic
|
|
max = (IS_WOW_PROJECT_MAINLINE and 60) or ((IS_WOW_PROJECT_CLASSIC_TBC or IS_WOW_PROJECT_CLASSIC_WRATH) and 41) or 20, --41y for tbc, 20y for classic era
|
|
step = 1,
|
|
name = "View Distance" .. CVarIcon,
|
|
desc = "How far you can see nameplates (in yards).\n\n|cFFFFFFFFCurrent limitations: Retail = 60y, TBC = 20-41y, Classic = 20y|r" .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return tonumber (GetCVar ("nameplatePlayerMaxDistance")) or 0 end,
|
|
set = function (self, fixedparam, value)
|
|
if (not InCombatLockdown()) then
|
|
SetCVar ("nameplatePlayerMaxDistance", value)
|
|
else
|
|
Plater:Msg (L["OPTIONS_ERROR_CVARMODIFY"])
|
|
end
|
|
end,
|
|
min = 0,
|
|
max = (IS_WOW_PROJECT_MAINLINE and 60) or ((IS_WOW_PROJECT_CLASSIC_TBC or IS_WOW_PROJECT_CLASSIC_WRATH) and 0) or 0, --not available for classic/wrath
|
|
step = 1,
|
|
name = "Player View Distance" .. CVarIcon,
|
|
desc = "How far you can see player nameplates (in yards).\n\n|cFFFFFFFFLimitations: Retail = 60y, TBC/Classic: not available|r" .. CVarDesc,
|
|
nocombat = true,
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "OPTIONS_GENERALSETTINGS_HEALTHBAR_ANCHOR_TITLE" end, text_template = DF:GetTemplate("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.health_statusbar_texture end,
|
|
values = function() return health_bar_texture_options end,
|
|
name = "OPTIONS_GENERALSETTINGS_HEALTHBAR_TEXTURE", --health bar texture
|
|
desc = "OPTIONS_GENERALSETTINGS_HEALTHBAR_TEXTURE",
|
|
},
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.health_statusbar_bgtexture end,
|
|
values = function() return health_bar_bgtexture_options end,
|
|
name = "OPTIONS_GENERALSETTINGS_HEALTHBAR_BGTEXTURE", --health bar background texture
|
|
desc = "OPTIONS_GENERALSETTINGS_HEALTHBAR_BGTEXTURE",
|
|
},
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.health_statusbar_bgcolor
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.health_statusbar_bgcolor
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_GENERALSETTINGS_HEALTHBAR_BGCOLOR", --health bar background color
|
|
desc = "OPTIONS_GENERALSETTINGS_HEALTHBAR_BGCOLOR",
|
|
},
|
|
|
|
{
|
|
type = "color",
|
|
boxfirst = true,
|
|
get = function()
|
|
local color = Plater.db.profile.border_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.border_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdatePlateBorders()
|
|
end,
|
|
name = "OPTIONS_BORDER_COLOR",
|
|
desc = "OPTIONS_BORDER_COLOR",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.border_thickness end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.border_thickness = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdatePlateBorderThickness()
|
|
end,
|
|
min = 0.1,
|
|
max = 3,
|
|
step = 0.1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_BORDER_THICKNESS",
|
|
desc = "OPTIONS_BORDER_THICKNESS",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{ --global healthbar width
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.global_health_width end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
local plateConfig = Plater.db.profile.plate_config
|
|
|
|
plateConfig.global_health_width = value
|
|
|
|
-- do not propagate during import or profile switch!
|
|
if not PlaterOptionsPanelFrame:IsShown() or profilesFrame.IsImporting then
|
|
return
|
|
end
|
|
|
|
--change the health bars
|
|
plateConfig.friendlyplayer.health[1] = value
|
|
plateConfig.friendlyplayer.health_incombat[1] = value
|
|
|
|
plateConfig.enemyplayer.health[1] = value
|
|
plateConfig.enemyplayer.health_incombat[1] = value
|
|
|
|
plateConfig.friendlynpc.health[1] = value
|
|
plateConfig.friendlynpc.health_incombat[1] = value
|
|
|
|
plateConfig.enemynpc.health[1] = value
|
|
plateConfig.enemynpc.health_incombat[1] = value
|
|
|
|
--change the castbars
|
|
plateConfig.friendlyplayer.cast[1] = value
|
|
plateConfig.friendlyplayer.cast_incombat[1] = value
|
|
|
|
plateConfig.enemyplayer.cast[1] = value
|
|
plateConfig.enemyplayer.cast_incombat[1] = value
|
|
|
|
plateConfig.friendlynpc.cast[1] = value
|
|
plateConfig.friendlynpc.cast_incombat[1] = value
|
|
|
|
plateConfig.enemynpc.cast[1] = value
|
|
plateConfig.enemynpc.cast_incombat[1] = value
|
|
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates(nil, true)
|
|
PlaterOptionsPanelFrame.RefreshOptionsFrame()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_HEALTHBAR_WIDTH", --Health Bar Width
|
|
desc = "OPTIONS_HEALTHBAR_SIZE_GLOBAL_DESC",
|
|
},
|
|
|
|
{ --global healthbar height
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.global_health_height end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
local plateConfig = Plater.db.profile.plate_config
|
|
|
|
plateConfig.global_health_height = value
|
|
|
|
-- do not propagate during import or profile switch!
|
|
if not PlaterOptionsPanelFrame:IsShown() or profilesFrame.IsImporting then
|
|
return
|
|
end
|
|
|
|
plateConfig.friendlyplayer.health[2] = value
|
|
plateConfig.friendlyplayer.health_incombat[2] = value
|
|
|
|
plateConfig.enemyplayer.health[2] = value
|
|
plateConfig.enemyplayer.health_incombat[2] = value
|
|
|
|
plateConfig.friendlynpc.health[2] = value
|
|
plateConfig.friendlynpc.health_incombat[2] = value
|
|
|
|
plateConfig.enemynpc.health[2] = value
|
|
plateConfig.enemynpc.health_incombat[2] = value
|
|
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates(nil, true)
|
|
PlaterOptionsPanelFrame.RefreshOptionsFrame()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEALTHBAR_HEIGHT",
|
|
desc = "OPTIONS_HEALTHBAR_SIZE_GLOBAL_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "OPTIONS_GENERALSETTINGS_TRANSPARENCY_ANCHOR_TITLE" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.transparency_behavior == 0x1 end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
if (not value) then
|
|
local checkBoxRangeCheck = generalOptionsAnchor:GetWidgetById("transparency_rangecheck")
|
|
checkBoxRangeCheck:SetValue(true)
|
|
return
|
|
end
|
|
|
|
Plater.db.profile.transparency_behavior = 0x1
|
|
Plater.db.profile.range_check_enabled = true
|
|
Plater.db.profile.non_targeted_alpha_enabled = false
|
|
|
|
local checkBoxNonTargets = generalOptionsAnchor:GetWidgetById("transparency_nontargets")
|
|
checkBoxNonTargets:SetValue(false)
|
|
local checkBoxAll = generalOptionsAnchor:GetWidgetById("transparency_both")
|
|
checkBoxAll:SetValue(false)
|
|
local checkBoxNone = generalOptionsAnchor:GetWidgetById("transparency_none")
|
|
checkBoxNone:SetValue(false)
|
|
local checkBoxFocusTargetAlpha = generalOptionsAnchor:GetWidgetById("focus_target_alpha")
|
|
checkBoxFocusTargetAlpha:Disable()
|
|
local checkBoxDivisionByTwo = generalOptionsAnchor:GetWidgetById("transparency_division")
|
|
checkBoxDivisionByTwo:Disable()
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_RANGECHECK_OUTOFRANGE", --Units Out of Your Range
|
|
desc = "OPTIONS_RANGECHECK_OUTOFRANGE_DESC",
|
|
boxfirst = true,
|
|
id = "transparency_rangecheck",
|
|
novolatile = true,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.transparency_behavior == 0x2 end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
if (not value) then
|
|
local checkBoxNonTargets = generalOptionsAnchor:GetWidgetById("transparency_nontargets")
|
|
checkBoxNonTargets:SetValue(true)
|
|
return
|
|
end
|
|
|
|
Plater.db.profile.transparency_behavior = 0x2
|
|
Plater.db.profile.range_check_enabled = false
|
|
Plater.db.profile.non_targeted_alpha_enabled = true
|
|
|
|
local checkBoxRangeCheck = generalOptionsAnchor:GetWidgetById("transparency_rangecheck")
|
|
checkBoxRangeCheck:SetValue(false)
|
|
local checkBoxAll = generalOptionsAnchor:GetWidgetById("transparency_both")
|
|
checkBoxAll:SetValue(false)
|
|
local checkBoxNone = generalOptionsAnchor:GetWidgetById("transparency_none")
|
|
checkBoxNone:SetValue(false)
|
|
local checkBoxFocusTargetAlpha = generalOptionsAnchor:GetWidgetById("focus_target_alpha")
|
|
checkBoxFocusTargetAlpha:Enable()
|
|
local checkBoxDivisionByTwo = generalOptionsAnchor:GetWidgetById("transparency_division")
|
|
checkBoxDivisionByTwo:Disable()
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_RANGECHECK_NOTMYTARGET", --When a nameplate isn't your current target, alpha is reduced
|
|
desc = "OPTIONS_RANGECHECK_NOTMYTARGET_DESC",
|
|
boxfirst = true,
|
|
id = "transparency_nontargets",
|
|
novolatile = true,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.transparency_behavior == 0x3 end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
if (not value) then
|
|
local checkBoxAll = generalOptionsAnchor:GetWidgetById("transparency_both")
|
|
checkBoxAll:SetValue(true)
|
|
return
|
|
end
|
|
|
|
Plater.db.profile.transparency_behavior = 0x3
|
|
Plater.db.profile.range_check_enabled = true
|
|
Plater.db.profile.non_targeted_alpha_enabled = true
|
|
|
|
local checkBoxRangeCheck = generalOptionsAnchor:GetWidgetById("transparency_rangecheck")
|
|
checkBoxRangeCheck:SetValue(false)
|
|
local checkBoxNonTargets = generalOptionsAnchor:GetWidgetById("transparency_nontargets")
|
|
checkBoxNonTargets:SetValue(false)
|
|
local checkBoxNone = generalOptionsAnchor:GetWidgetById("transparency_none")
|
|
checkBoxNone:SetValue(false)
|
|
local checkBoxFocusTargetAlpha = generalOptionsAnchor:GetWidgetById("focus_target_alpha")
|
|
checkBoxFocusTargetAlpha:Enable()
|
|
local checkBoxDivisionByTwo = generalOptionsAnchor:GetWidgetById("transparency_division")
|
|
checkBoxDivisionByTwo:Enable()
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_RANGECHECK_NOTMYTARGETOUTOFRANGE", --Out of Range + Isn't Your Target
|
|
desc = "OPTIONS_RANGECHECK_NOTMYTARGETOUTOFRANGE_DESC",
|
|
boxfirst = true,
|
|
id = "transparency_both",
|
|
novolatile = true,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.transparency_behavior == 0x4 end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
if (not value) then
|
|
local checkBoxNone = generalOptionsAnchor:GetWidgetById("transparency_none")
|
|
checkBoxNone:SetValue(true)
|
|
end
|
|
|
|
Plater.db.profile.transparency_behavior = 0x4
|
|
Plater.db.profile.range_check_enabled = false
|
|
Plater.db.profile.non_targeted_alpha_enabled = false
|
|
|
|
local checkBoxRangeCheck = generalOptionsAnchor:GetWidgetById("transparency_rangecheck")
|
|
checkBoxRangeCheck:SetValue(false)
|
|
local checkBoxNonTargets = generalOptionsAnchor:GetWidgetById("transparency_nontargets")
|
|
checkBoxNonTargets:SetValue(false)
|
|
local checkBoxAll = generalOptionsAnchor:GetWidgetById("transparency_both")
|
|
checkBoxAll:SetValue(false)
|
|
local checkBoxFocusTargetAlpha = generalOptionsAnchor:GetWidgetById("focus_target_alpha")
|
|
checkBoxFocusTargetAlpha:Disable()
|
|
local checkBoxDivisionByTwo = generalOptionsAnchor:GetWidgetById("transparency_division")
|
|
checkBoxDivisionByTwo:Disable()
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_RANGECHECK_NONE", --Nothing
|
|
desc = "OPTIONS_RANGECHECK_NONE_DESC",
|
|
boxfirst = true,
|
|
id = "transparency_none",
|
|
novolatile = true,
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "General:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.focus_as_target_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.focus_as_target_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Focus Target Alpha",
|
|
desc = "Use 'target alpha' for focus targets as well.",
|
|
id = "focus_target_alpha",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.transparency_behavior_use_division end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.transparency_behavior_use_division = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Extra Contrast",
|
|
desc = "When the unit is out of range and isn't your target, alpha is greatly reduced.",
|
|
id = "transparency_division",
|
|
},
|
|
|
|
--no combat alpha
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.not_affecting_combat_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.not_affecting_combat_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_NOCOMBATALPHA_ENABLED", --Use No Combat Alpha
|
|
desc = "OPTIONS_NOCOMBATALPHA_ENABLED_DESC",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.not_affecting_combat_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.not_affecting_combat_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_AMOUNT", --No Combat Alpha Amount
|
|
desc = "OPTIONS_NOCOMBATALPHA_AMOUNT_DESC",
|
|
usedecimals = true,
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Range Check By Yards - Enemy" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
}
|
|
|
|
if IS_WOW_PROJECT_MAINLINE then
|
|
local playerSpecs = Plater.SpecList [select (2, UnitClass ("player"))]
|
|
for specID, _ in pairs (playerSpecs) do
|
|
local specId, specName, specDescription, specIcon, specBackground, specRole, specClass = GetSpecializationInfoByID(specID)
|
|
if specId then
|
|
tinsert (options_table1, {
|
|
type = "select",
|
|
get = function() return PlaterDBChr.spellRangeCheckRangeEnemy [specID] end,
|
|
values = function()
|
|
local onSelectFunc = function (_, _, range)
|
|
PlaterDBChr.spellRangeCheckRangeEnemy [specID] = range
|
|
PlaterDBChr.spellRangeCheckRangeEnemy [1444] = range -- workaround for "DAMAGER" (level 1-10) spec
|
|
Plater.GetSpellForRangeCheck()
|
|
end
|
|
local t = {}
|
|
local checkers = LibRangeCheck:GetHarmCheckers(true)
|
|
for range, checker in checkers do
|
|
tinsert (t, {label = range, onclick = onSelectFunc, value = range})
|
|
end
|
|
return t
|
|
end,
|
|
--the string between two '@' make the framework to consider it a PhraseID for the language system
|
|
name = "|T" .. specIcon .. ":16:16|t " .. "@OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK@",
|
|
desc = "OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK_SPEC_DESC",
|
|
})
|
|
end
|
|
end
|
|
else
|
|
local playerClass = select (3, UnitClass ("player"))
|
|
tinsert (options_table1, {
|
|
type = "select",
|
|
get = function() return PlaterDBChr.spellRangeCheckRangeEnemy [playerClass] end,
|
|
values = function()
|
|
local onSelectFunc = function (_, _, range)
|
|
PlaterDBChr.spellRangeCheckRangeEnemy [playerClass] = range
|
|
Plater.GetSpellForRangeCheck()
|
|
end
|
|
local t = {}
|
|
local checkers = LibRangeCheck:GetHarmCheckers(true)
|
|
for range, checker in checkers do
|
|
tinsert (t, {label = range, onclick = onSelectFunc, value = range})
|
|
end
|
|
return t
|
|
end,
|
|
name = "OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK",
|
|
desc = "OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK_SPEC_DESC",
|
|
})
|
|
end
|
|
|
|
local options_table1_continue1 = {
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Range Check By Yards - Friendly" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
}
|
|
|
|
for _, t in ipairs (options_table1_continue1) do
|
|
tinsert (options_table1, t)
|
|
end
|
|
|
|
if IS_WOW_PROJECT_MAINLINE then
|
|
local playerSpecs = Plater.SpecList [select (2, UnitClass ("player"))]
|
|
for specID, _ in pairs (playerSpecs) do
|
|
local spec_id, spec_name, spec_description, spec_icon, spec_background, spec_role, spec_class = GetSpecializationInfoByID (specID)
|
|
if spec_id then
|
|
tinsert (options_table1, {
|
|
type = "select",
|
|
get = function() return PlaterDBChr.spellRangeCheckRangeFriendly [specID] end,
|
|
values = function()
|
|
local onSelectFunc = function (_, _, range)
|
|
PlaterDBChr.spellRangeCheckRangeFriendly [specID] = range
|
|
PlaterDBChr.spellRangeCheckRangeFriendly [1444] = range -- workaround for "DAMAGER" (level 1-10) spec
|
|
Plater.GetSpellForRangeCheck()
|
|
end
|
|
local t = {}
|
|
local checkers = LibRangeCheck:GetFriendCheckers(true)
|
|
for range, checker in checkers do
|
|
tinsert (t, {label = range, onclick = onSelectFunc, value = range})
|
|
end
|
|
return t
|
|
end,
|
|
name = "|T" .. spec_icon .. ":16:16|t " .. "@OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK@",
|
|
desc = "OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK_SPEC_DESC",
|
|
})
|
|
end
|
|
end
|
|
else
|
|
local playerClass = select (3, UnitClass ("player"))
|
|
tinsert (options_table1, {
|
|
type = "select",
|
|
get = function() return PlaterDBChr.spellRangeCheckRangeFriendly [playerClass] end,
|
|
values = function()
|
|
local onSelectFunc = function (_, _, range)
|
|
PlaterDBChr.spellRangeCheckRangeFriendly [playerClass] = range
|
|
Plater.GetSpellForRangeCheck()
|
|
end
|
|
local t = {}
|
|
local checkers = LibRangeCheck:GetFriendCheckers(true)
|
|
for range, checker in checkers do
|
|
tinsert (t, {label = range, onclick = onSelectFunc, value = range})
|
|
end
|
|
return t
|
|
end,
|
|
name = "OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK",
|
|
desc = "OPTIONS_GENERALSETTINGS_TRANSPARENCY_RANGECHECK_SPEC_DESC",
|
|
})
|
|
end
|
|
|
|
local options_table1_continue2 = {
|
|
|
|
{type = "breakline"},
|
|
--enemies
|
|
|
|
{type = "label", get = function() return "OPTIONS_ALPHABYFRAME_TITLE_ENEMIES" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.transparency_behavior_on_enemies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.transparency_behavior_on_enemies = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ALPHABYFRAME_ENABLE_ENEMIES", --Enable for enemies
|
|
desc = "OPTIONS_ALPHABYFRAME_ENABLE_ENEMIES_DESC",
|
|
},
|
|
|
|
{type = "break"},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHABYFRAME_DEFAULT", --default
|
|
desc = "OPTIONS_ALPHABYFRAME_DEFAULT_DESC",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_health_bar_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_health_bar_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_HEALTHBAR",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_cast_bar_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_cast_bar_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_TABNAME_CASTBAR",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_power_bar_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_power_bar_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_POWERBAR",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_buffs_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_buffs_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_BUFFFRAMES",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_in_range_or_target_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_in_range_or_target_alpha = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHABYFRAME_TARGET_INRANGE", --In-Range/Target alpha
|
|
desc = "OPTIONS_ALPHABYFRAME_TARGET_INRANGE_DESC",
|
|
usedecimals = true,
|
|
},
|
|
|
|
{type = "break"},
|
|
--friendlies
|
|
|
|
{type = "label", get = function() return "OPTIONS_ALPHABYFRAME_TITLE_FRIENDLY" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.transparency_behavior_on_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.transparency_behavior_on_friendlies = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ALPHABYFRAME_ENABLE_FRIENDLY", --Enable for friendlies
|
|
desc = "OPTIONS_ALPHABYFRAME_ENABLE_FRIENDLY_DESC",
|
|
},
|
|
|
|
{type = "break"},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_alpha_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_alpha_friendlies = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHABYFRAME_DEFAULT", --Overall
|
|
desc = "OPTIONS_ALPHABYFRAME_DEFAULT_DESC",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_health_bar_alpha_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_health_bar_alpha_friendlies = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_HEALTHBAR",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_cast_bar_alpha_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_cast_bar_alpha_friendlies = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_TABNAME_CASTBAR",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_power_bar_alpha_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_power_bar_alpha_friendlies = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_POWERBAR",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_buffs_alpha_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_buffs_alpha_friendlies = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_BUFFFRAMES",
|
|
desc = "OPTIONS_ALPHABYFRAME_ALPHAMULTIPLIER",
|
|
usedecimals = true,
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.range_check_in_range_or_target_alpha_friendlies end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.range_check_in_range_or_target_alpha_friendlies = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHABYFRAME_TARGET_INRANGE",
|
|
desc = "OPTIONS_ALPHABYFRAME_TARGET_INRANGE_DESC",
|
|
usedecimals = true,
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "OPTIONS_INDICATORS" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_pet end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_pet = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_PET",
|
|
desc = "OPTIONS_ICON_PET",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_shield end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_shield = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHIELD_BAR",
|
|
desc = "OPTIONS_SHIELD_BAR",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.health_cutoff end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.health_cutoff = value
|
|
Plater.GetHealthCutoffValue()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_EXECUTERANGE",
|
|
desc = "OPTIONS_EXECUTERANGE_DESC",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.health_cutoff_upper end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.health_cutoff_upper = value
|
|
Plater.GetHealthCutoffValue()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_EXECUTERANGE_HIGH_HEALTH",
|
|
desc = "OPTIONS_EXECUTERANGE_HIGH_HEALTH_DESC",
|
|
hidden = IS_WOW_PROJECT_NOT_MAINLINE,
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.health_cutoff_extra_glow end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.health_cutoff_extra_glow = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Add Extra Glow to Execute Range",
|
|
desc = "Add Extra Glow to Execute Range",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_worldboss end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_worldboss = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_WORLDBOSS",
|
|
desc = "OPTIONS_ICON_WORLDBOSS",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_elite end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_elite = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_ELITE",
|
|
desc = "OPTIONS_ICON_ELITE",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_rare end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_rare = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_RARE",
|
|
desc = "OPTIONS_ICON_RARE",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_quest end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_quest = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_QUEST",
|
|
desc = "OPTIONS_ICON_QUEST",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_faction end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_faction = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_ENEMYFACTION",
|
|
desc = "OPTIONS_ICON_ENEMYFACTION",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_enemyclass end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_enemyclass = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_ENEMYCLASS",
|
|
desc = "OPTIONS_ICON_ENEMYCLASS",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_spec end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_spec = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_ENEMYSPEC",
|
|
desc = "OPTIONS_ICON_ENEMYSPEC",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_friendlyfaction end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_friendlyfaction = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_FRIENDLYFACTION",
|
|
desc = "OPTIONS_ICON_FRIENDLYFACTION",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_friendlyclass end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_friendlyclass = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_FRIENDLYCLASS",
|
|
desc = "OPTIONS_ICON_FRIENDLYCLASS",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_friendlyspec end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_friendlyspec = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ICON_FRIENDLY_SPEC",
|
|
desc = "OPTIONS_ICON_FRIENDLY_SPEC",
|
|
},
|
|
{
|
|
type = "range",
|
|
boxfirst = true,
|
|
get = function() return Plater.db.profile.indicator_scale end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_scale = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0.2,
|
|
max = 3,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
name = "OPTIONS_SCALE",
|
|
desc = "OPTIONS_SCALE",
|
|
},
|
|
|
|
--indicator icon anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.indicator_anchor.side end,
|
|
values = function() return build_anchor_side_table (nil, "indicator_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--indicator icon anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.indicator_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_MOVE_HORIZONTAL",
|
|
},
|
|
--indicator icon anchor y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.indicator_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.indicator_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_MOVE_VERTICAL",
|
|
},
|
|
}
|
|
|
|
for _, t in ipairs (options_table1_continue2) do
|
|
tinsert (options_table1, t)
|
|
end
|
|
options_table1.always_boxfirst = true
|
|
options_table1.language_addonId = addonId
|
|
options_table1.Name = "General Options"
|
|
DF:BuildMenu (generalOptionsAnchor, options_table1, 0, 0, mainHeightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
|
|
local checkBoxDivisionByTwo = generalOptionsAnchor:GetWidgetById("transparency_division")
|
|
if (Plater.db.profile.transparency_behavior == 0x3) then
|
|
checkBoxDivisionByTwo:Enable()
|
|
else
|
|
checkBoxDivisionByTwo:Disable()
|
|
end
|
|
local checkBoxBlizzPlateAlpha = generalOptionsAnchor:GetWidgetById("transparency_blizzard_alpha")
|
|
if (Plater.db.profile.use_ui_parent) then
|
|
checkBoxBlizzPlateAlpha:Enable()
|
|
else
|
|
checkBoxBlizzPlateAlpha:Disable()
|
|
end
|
|
|
|
frontPageFrame.RefreshOptionsOrig = frontPageFrame.RefreshOptionsOrig or frontPageFrame.RefreshOptions
|
|
frontPageFrame.RefreshOptions = function ()
|
|
frontPageFrame:RefreshOptionsOrig()
|
|
generalOptionsAnchor:RefreshOptions()
|
|
end
|
|
|
|
------------------------------------------------
|
|
--order functions
|
|
|
|
local on_select_friendlyplayer_order = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.order = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlynpc_order = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.order = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemyplayer_order = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemyplayer.order = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemynpc_order = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.order = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
------------------------------------------------
|
|
--FriendlyPC painel de op��es ~friendly ~friendlynpc
|
|
|
|
local on_select_friendly_playername_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.actorname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendly_playercastname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlyplayer_level_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.level_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlyplayer_percent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlyplayer_spellpercent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local options_table3 = {
|
|
|
|
|
|
{type = "label", get = function() return "General Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return "player" end,
|
|
values = function() return copy_settings_options end,
|
|
name = "Copy",
|
|
desc = "Copy settings from another tab.\n\nWhen selecting an option a confirmation box is shown to confirm the copy.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.module_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.module_enabled = value
|
|
ReloadUI()
|
|
end,
|
|
nocombat = true,
|
|
name = "Module Enabled",
|
|
desc = "Enable Plater nameplates for friendly players.\n\n" .. ImportantText .. "Forces a /reload on change.\nThis option is dependent on the client`s nameplate state (on/off)",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.use_playerclass_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.use_playerclass_color = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Class Colors",
|
|
desc = "Player name plates uses the player class color",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].fixed_class_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].fixed_class_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Fixed Color",
|
|
desc = "Use this color for health-bars and guild/friend text when not using class colors.\nGuild and friend colors for the name/guild texts can be overwritten with their respective color settings below.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].only_damaged end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].only_damaged = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Only Damaged Players",
|
|
desc = "Hide the health bar when a friendly character has full health.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].only_thename end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].only_thename = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Only Show Player Name",
|
|
desc = "Hide the health bar, only show the character name.\n\n" .. ImportantText .. "If 'Only Damaged Players' is selected and the player is damaged, this setting will be overwritten and the health bar will be shown.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.show_guild_name end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.show_guild_name = value
|
|
Plater.UpdateAllPlates (true)
|
|
end,
|
|
name = "Show Guild Name",
|
|
desc = "Show Guild Name",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.click_through end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.click_through = value
|
|
Plater.UpdatePlateClickSpace (nil, true)
|
|
end,
|
|
name = "Click Through",
|
|
desc = "Friendly player nameplates won't receive mouse clicks.\n\n" .. ImportantText .. "also affects friendly npcs and can affect some neutral npcs too.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Aura Frame:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.buff_frame_y_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.buff_frame_y_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "label", get = function() return "Cast Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.castbar_offset_x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.castbar_offset_x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.castbar_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.castbar_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Player Name Text Colors" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--player name color
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_use_class_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_use_class_color = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Class Colors",
|
|
desc = "Player name/guild text uses the class color instead of the selected color. Guild or Friend colors will overwrite this, if used.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_use_friends_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_use_friends_color = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Friends Colors",
|
|
desc = "Player name/guild text uses the selected friend color, if the player is on your friend list.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_use_guild_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_use_guild_color = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Guild Colors",
|
|
desc = "Player name/guild text uses the selected guild color, if it is a guild mate.",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.actorname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.actorname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "The color of the text, if neither class, friend or guild colors are used.",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_friend_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_friend_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Friend Color",
|
|
desc = "Use this color for name/guild texts if the player is your friend.",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_guild_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_PLAYER].actorname_guild_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Guild Color",
|
|
desc = "Use this color for name/guild texts if the player is in your guild.",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--health bar size out of combat
|
|
{type = "label", get = function() return "Health Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.health[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.health[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.health[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.health[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when out of combat.",
|
|
},
|
|
|
|
--health bar size in combat
|
|
{type = "label", get = function() return "Health Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.health_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.health_incombat[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.health_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.health_incombat[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when in combat.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.cast[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.cast[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.cast[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.cast[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when out of combat.",
|
|
},
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.cast_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.cast_incombat[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.cast_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.cast_incombat[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when in combat.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
--player name size
|
|
{type = "label", get = function() return "Player Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.actorname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.actorname_text_size = value
|
|
Plater.db.profile.plate_config.friendlyplayer.actorname_text_spacing = value-1
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--player name font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.actorname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendly_playername_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.actorname_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlyplayer", "actorname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.actorname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.actorname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--npc name anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.actorname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlyplayer", "actorname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.actorname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.actorname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.actorname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.actorname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
--cast text size
|
|
{type = "breakline"},
|
|
|
|
--cast text size
|
|
{type = "label", get = function() return "Spell Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellname_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendly_playercastname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--cast text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellname_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlyplayer", "spellname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--spell name text anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlyplayer", "spellname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Spell Cast Time Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the cast time progress.",
|
|
},
|
|
--cast time text
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast time text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlyplayer_spellpercent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlyplayer", "spellpercent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--cast time text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--cast time anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlyplayer", "spellpercent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.spellpercent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--percent text
|
|
{type = "label", get = function() return "Health Information:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_enabled = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the percent text.",
|
|
},
|
|
--out of combat
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_ooc = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Out of Combat",
|
|
desc = "Show the percent even when isn't in combat.",
|
|
},
|
|
--percent amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_show_percent end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_show_percent = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Percent Amount",
|
|
desc = "Show Percent Amount",
|
|
},
|
|
--health amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_show_health end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_show_health = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Health Amount",
|
|
desc = "Show Health Amount",
|
|
},
|
|
--health decimals
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_show_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_show_decimals = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show Decimals",
|
|
},
|
|
|
|
--percent text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--percent text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlyplayer_percent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlyplayer", "percent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.percent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.percent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--pecent text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.percent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.percent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--percent text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--percent anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlyplayer", "percent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.percent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.percent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
|
|
--level text settings
|
|
{type = "breakline"},
|
|
{type = "label", get = function() return "Level Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--level enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.level_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Check this box to show the level of the actor.",
|
|
},
|
|
--level text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.level_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--level text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlyplayer_level_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlyplayer", "level_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.level_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlyplayer.level_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--level text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.level_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--level anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlyplayer", "level_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.level_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlyplayer.level_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlyplayer.level_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
|
|
|
|
}
|
|
|
|
_G.C_Timer.After(1.420, function() --~delay
|
|
options_table3.always_boxfirst = true
|
|
options_table3.language_addonId = addonId
|
|
options_table3.Name = "Friendly PCs Options"
|
|
DF:BuildMenu (friendlyPCsFrame, options_table3, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
--------------------------------
|
|
--Enemy Player painel de op��es ~enemy
|
|
|
|
local on_select_enemy_playername_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemyplayer.actorname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemy_playercastname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_enemyplayer_level_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemyplayer.level_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemyplayer_percent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_enemyplayer_spellpercent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellpercent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local options_table4 = {
|
|
|
|
|
|
{type = "label", get = function() return "General Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return "player" end,
|
|
values = function() return copy_settings_options end,
|
|
name = "Copy",
|
|
desc = "Copy settings from another tab.\n\nWhen selecting an option a confirmation box is shown to confirm the copy.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.module_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.module_enabled = value
|
|
ReloadUI()
|
|
end,
|
|
nocombat = true,
|
|
name = "Module Enabled",
|
|
desc = "Enable Plater nameplates for enemy players.\n\n" .. ImportantText .. "Forces a /reload on change.\nThis option is dependent on the client`s nameplate state (on/off)",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.use_playerclass_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.use_playerclass_color = value
|
|
Plater.UpdateAllPlates (true)
|
|
end,
|
|
name = "Use Class Colors",
|
|
desc = "Player name plates uses the player class color",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.fixed_class_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.fixed_class_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Fixed Color",
|
|
desc = "Use this color when not using class colors.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.show_guild_name end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.show_guild_name = value
|
|
Plater.UpdateAllPlates (true)
|
|
end,
|
|
name = "Show Guild Name",
|
|
desc = "Show Guild Name",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Aura Frame:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.buff_frame_y_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.buff_frame_y_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "label", get = function() return "Cast Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.castbar_offset_x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.castbar_offset_x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.castbar_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.castbar_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank" },
|
|
|
|
{type = "label", get = function() return "Player Name Text Colors" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--player name color
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_use_class_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.actorname_use_class_color = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Class Colors",
|
|
desc = "Player name text uses the class color instead of the selected color.",
|
|
},
|
|
--player name color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.actorname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.actorname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--health bar size out of combat
|
|
{type = "label", get = function() return "Health Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.health[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.health[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.health[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.health[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when out of combat.",
|
|
},
|
|
|
|
--health bar size in combat
|
|
{type = "label", get = function() return "Health Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.health_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.health_incombat[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.health_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.health_incombat[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when in combat.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.cast[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.cast[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.cast[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.cast[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when out of combat.",
|
|
},
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.cast_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.cast_incombat[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.cast_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.cast_incombat[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when in combat.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
--player name size
|
|
{type = "label", get = function() return "Player Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.actorname_text_size = value
|
|
Plater.db.profile.plate_config.enemyplayer.actorname_text_spacing = value-1
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--player name font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_playername_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemyplayer", "actorname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.actorname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.actorname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--npc name anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemyplayer", "actorname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.actorname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.actorname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.actorname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--cast text size
|
|
{type = "label", get = function() return "Spell Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellname_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_playercastname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--cast text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellname_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemyplayer", "spellname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--spell name text anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemyplayer", "spellname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
--level text settings
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Spell Cast Time Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellpercent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the cast time progress.",
|
|
},
|
|
--cast time text
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellpercent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast time text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemyplayer_spellpercent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemyplayer", "spellpercent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellpercent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellpercent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--cast time text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellpercent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.spellpercent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--cast time anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemyplayer", "spellpercent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellpercent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.spellpercent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.spellpercent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--percent text
|
|
{type = "label", get = function() return "Health Information:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_enabled = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the percent text.",
|
|
},
|
|
--out of combat
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_ooc = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Out of Combat",
|
|
desc = "Show the percent even when isn't in combat.",
|
|
},
|
|
--percent amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_show_percent end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_show_percent = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Percent Amount",
|
|
desc = "Show Percent Amount",
|
|
},
|
|
--health amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_show_health end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_show_health = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Health Amount",
|
|
desc = "Show Health Amount",
|
|
},
|
|
|
|
--health decimals
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_show_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_show_decimals = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show Decimals",
|
|
},
|
|
|
|
--percent text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--percent text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemyplayer_percent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemyplayer", "percent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.percent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.percent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--pecent text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.percent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.percent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--percent text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--percent anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemyplayer", "percent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.percent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.percent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
{type = "label", get = function() return "Level Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--level enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.level_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Check this box to show the level of the actor.",
|
|
},
|
|
--level text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.level_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--level text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemyplayer_level_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemyplayer", "level_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemyplayer.level_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemyplayer.level_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
|
|
--level text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.level_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--level anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemyplayer", "level_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.level_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemyplayer.level_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemyplayer.level_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
}
|
|
|
|
_G.C_Timer.After(0.720, function() --~delay
|
|
options_table4.always_boxfirst = true
|
|
options_table4.language_addonId = addonId
|
|
options_table4.Name = "Enemy PCs Options"
|
|
DF:BuildMenu (enemyPCsFrame, options_table4, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
-----------------------------------------------
|
|
--Friendly NPC painel de op��es ~friendly
|
|
|
|
local on_select_friendly_npcname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.actorname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendly_npccastname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_friendlynpc_level_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.level_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlynpc_percent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlynpc_titletext_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlynpc_bignametext_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.big_actorname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_friendlynpc_bigtitletext_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_friendlynpc_spellpercent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellpercent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_enemynpc_bigtitletext_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.big_actortitle_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
--menu 2
|
|
local friendly_npc_options_table = {
|
|
|
|
{type = "label", get = function() return "General Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return "player" end,
|
|
values = function() return copy_settings_options end,
|
|
name = "Copy",
|
|
desc = "Copy settings from another tab.\n\nWhen selecting an option a confirmation box is shown to confirm the copy.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return GetCVarBool ("nameplateShowFriendlyNPCs") end,
|
|
set = function (self, fixedparam, value)
|
|
if (value) then
|
|
SetCVar ("nameplateShowFriendlyNPCs", CVAR_ENABLED)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].enabled = true
|
|
else
|
|
SetCVar ("nameplateShowFriendlyNPCs", CVAR_DISABLED)
|
|
Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].enabled = false
|
|
end
|
|
end,
|
|
nocombat = true,
|
|
name = L["OPTIONS_ENABLED"] .. CVarIcon,
|
|
desc = "Show nameplate for friendly npcs.\n\n" .. ImportantText .. "This option is dependent on the client`s nameplate state (on/off).\n\n" .. ImportantText .. "when disabled but enabled on the client through (" .. (GetBindingKey ("FRIENDNAMEPLATES") or "") .. ") the healthbar isn't visible but the nameplate is still clickable." .. CVarDesc,
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.module_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
if (value) then
|
|
--SetCVar ("nameplateShowFriendlyNPCs", CVAR_ENABLED)
|
|
Plater.db.profile.plate_config.friendlynpc.module_enabled = true
|
|
else
|
|
--SetCVar ("nameplateShowFriendlyNPCs", CVAR_DISABLED)
|
|
Plater.db.profile.plate_config.friendlynpc.module_enabled = false
|
|
end
|
|
ReloadUI()
|
|
end,
|
|
nocombat = true,
|
|
name = "Module Enabled",
|
|
desc = "Enable Plater nameplates for friendly NPCs.\n\n" .. ImportantText .. "Forces a /reload on change.\nThis option is dependent on the client`s nameplate state (on/off)",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.follow_blizzard_npc_option end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.follow_blizzard_npc_option = value
|
|
end,
|
|
nocombat = true,
|
|
name = "Follow Blizzard 'NPC Names' Option",
|
|
desc = "Hides npc nameplates for untis that would not show a name according to blizzard UI settings.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config [ACTORTYPE_FRIENDLY_NPC].relevance_state end,
|
|
values = function() return relevance_options end,
|
|
name = "Show",
|
|
desc = "Modify the way friendly npcs are shown.\n\n" .. ImportantText .. "This option is dependent on the client`s nameplate state (on/off).",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Aura Frame:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.buff_frame_y_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.buff_frame_y_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "label", get = function() return "Cast Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.castbar_offset_x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.castbar_offset_x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.castbar_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.castbar_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--health bar size out of combat
|
|
{type = "label", get = function() return "Health Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.health[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.health[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.health[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.health[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when out of combat.",
|
|
},
|
|
|
|
--health bar size in combat
|
|
{type = "label", get = function() return "Health Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.health_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.health_incombat[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.health_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.health_incombat[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when in combat.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.cast[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.cast[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.cast[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.cast[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when out of combat.",
|
|
},
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.cast_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.cast_incombat[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.cast_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.cast_incombat[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when in combat.",
|
|
},
|
|
|
|
--player name size
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Npc Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.actorname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.actorname_text_size = value
|
|
Plater.db.profile.plate_config.friendlynpc.actorname_text_spacing = value-1
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--player name font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.actorname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendly_npcname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--player name color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.actorname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.actorname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.actorname_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "actorname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.actorname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.actorname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--npc name anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.actorname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlynpc", "actorname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.actorname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.actorname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.actorname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.actorname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--cast text size
|
|
{type = "label", get = function() return "Spell Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellname_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendly_npccastname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--cast text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellname_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "spellname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--spell name text anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlynpc", "spellname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Spell Cast Time Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellpercent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the cast time progress.",
|
|
},
|
|
--cast time text
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellpercent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast time text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlynpc_spellpercent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "spellpercent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellpercent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellpercent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--cast time text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellpercent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.spellpercent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--cast time anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlynpc", "spellpercent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellpercent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.spellpercent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.spellpercent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--percent text
|
|
{type = "label", get = function() return "Health Information:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_enabled = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the percent text.",
|
|
},
|
|
--out of combat
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_ooc = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Out of Combat",
|
|
desc = "Show the percent even when isn't in combat.",
|
|
},
|
|
--percent amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_show_percent end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_show_percent = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Percent Amount",
|
|
desc = "Show Percent Amount",
|
|
},
|
|
--health amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_show_health end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_show_health = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Health Amount",
|
|
desc = "Show Health Amount",
|
|
},
|
|
|
|
--health decimals
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_show_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_show_decimals = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show Decimals",
|
|
},
|
|
|
|
--percent text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--percent text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlynpc_percent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "percent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.percent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.percent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--pecent text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.percent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.percent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--percent text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--percent anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlynpc", "percent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.percent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.percent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Npc Name Text When no Health Bar Shown:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.big_actorname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.big_actorname_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.big_actorname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlynpc_bignametext_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.big_actorname_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "big_actorname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actorname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actorname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actorname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actorname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--level text settings
|
|
{type = "label", get = function() return "Level Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--level enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.level_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Check this box to show the level of the actor.",
|
|
},
|
|
--level text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.level_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--level text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlynpc_level_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "level_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.level_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.level_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--level text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.level_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--level anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("friendlynpc", "level_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.level_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.level_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.level_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Quest Tracking Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.quest_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.quest_enabled = value
|
|
-- this seems to be gone as of 18.12.2020
|
|
--if value then
|
|
--SetCVar("showQuestTrackingTooltips", 1)
|
|
--end
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Track Quests Progress",
|
|
desc = "Track Quests Progress on enemy npc units.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.quest_color_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.quest_color_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Quest Color",
|
|
desc = "Enemy npc units which are objective of a quest have a different color.\nRequries 'Track Quests Progress' to be active.",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.quest_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.quest_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Quest Color",
|
|
desc = "Nameplate has this color when a friendly npc unit is a quest objective.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Npc Title Text When no Health Bar Shown:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--profession text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--profession text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_friendlynpc_bigtitletext_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--profession text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_outline end,
|
|
values = function() return build_outline_modes_table ("friendlynpc", "big_actortitle_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--profession text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--profession text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.friendlynpc.big_actortitle_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Profession Text Color",
|
|
desc = "The color of the profession text below the npc name.",
|
|
},
|
|
|
|
}
|
|
|
|
_G.C_Timer.After(0.780, function() --~delay
|
|
friendly_npc_options_table.always_boxfirst = true
|
|
friendly_npc_options_table.language_addonId = addonId
|
|
friendly_npc_options_table.Name = "Friendly NPCs Options"
|
|
DF:BuildMenu (friendlyNPCsFrame, friendly_npc_options_table, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
|
|
-----------------------------------------------
|
|
--Enemy NPC painel de op��es ~enemy
|
|
local options_table2
|
|
|
|
do
|
|
|
|
local on_select_enemy_npcname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.actorname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemy_npccastname_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellname_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemy_level_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.level_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
local on_select_enemy_percent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_enemy_spellpercent_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellpercent_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local on_select_enemynpc_bignametext_text_font = function (_, _, value)
|
|
Plater.db.profile.plate_config.enemynpc.big_actorname_text_font = value
|
|
Plater.db.profile.plate_config.enemynpc.big_actortitle_text_font = value
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
--menu 2 --enemy npc
|
|
options_table2 = {
|
|
|
|
{type = "label", get = function() return "General Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return "player" end,
|
|
values = function() return copy_settings_options end,
|
|
name = "Copy",
|
|
desc = "Copy settings from another tab.\n\nWhen selecting an option a confirmation box is shown to confirm the copy.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.module_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.module_enabled = value
|
|
ReloadUI()
|
|
end,
|
|
nocombat = true,
|
|
name = "Module Enabled",
|
|
desc = "Enable Plater nameplates for enemy NPCs.\n\n" .. ImportantText .. "Forces a /reload on change.\nThis option is dependent on the client`s nameplate state (on/off)",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Aura Frame:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.buff_frame_y_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.buff_frame_y_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "label", get = function() return "Cast Bar:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.castbar_offset_x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.castbar_offset_x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--y offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.castbar_offset end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.castbar_offset = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -128,
|
|
max = 128,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Npc Name Text When no Health Bar Shown:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--profession text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.big_actorname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.big_actorname_text_size = value
|
|
--Plater.db.profile.plate_config.enemynpc.big_actortitle_text_size = value --why? there's a separate setting.
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--profession text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.big_actorname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemynpc_bignametext_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.big_actorname_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "big_actorname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actorname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actorname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--[=[
|
|
--profession text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actorname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actorname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--profession text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actortitle_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actortitle_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Profession Text Color",
|
|
desc = "The color of the profession text below the npc name.",
|
|
},
|
|
--]=]
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Npc Title Text When no Health Bar Shown:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--profession text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.big_actortitle_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.big_actortitle_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--profession text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.big_actortitle_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemynpc_bigtitletext_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--profession text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.big_actortitle_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "big_actortitle_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--profession text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actortitle_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actortitle_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--[[--profession text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actortitle_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.big_actortitle_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Profession Text Color",
|
|
desc = "The color of the profession text below the npc name.",
|
|
},]]--
|
|
|
|
{type = "breakline"},
|
|
|
|
--health bar size out of combat
|
|
{type = "label", get = function() return "Health Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.health[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.health[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.health[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.health[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when out of combat.",
|
|
},
|
|
|
|
--health bar size in combat
|
|
{type = "label", get = function() return "Health Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.health_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.health_incombat[1] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the health bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.health_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.health_incombat[2] = value
|
|
Plater.UpdateAllPlates (nil, true)
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the health bar when in combat.",
|
|
},
|
|
{type = "blank"},
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size out of Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.cast[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.cast[1] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when out of combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.cast[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.cast[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when out of combat.",
|
|
},
|
|
--cast bar size out of combat
|
|
{type = "label", get = function() return "Cast Bar Size in Combat:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.cast_incombat[1] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.cast_incombat[1] = value
|
|
Plater.UpdateAllPlates()
|
|
Plater.UpdateMaxCastbarTextLength()
|
|
end,
|
|
min = 50,
|
|
max = 300,
|
|
step = 1,
|
|
name = "OPTIONS_WIDTH",
|
|
desc = "Width of the cast bar when in combat.",
|
|
},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.cast_incombat[2] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.cast_incombat[2] = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 1,
|
|
max = 100,
|
|
step = 1,
|
|
name = "OPTIONS_HEIGHT",
|
|
desc = "Height of the cast bar when in combat.",
|
|
},
|
|
{type = "blank"},
|
|
--player name size
|
|
{type = "label", get = function() return "Npc Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.actorname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.actorname_text_size = value
|
|
Plater.db.profile.plate_config.enemynpc.actorname_text_spacing = value-1
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--player name font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.actorname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_npcname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--player name color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.actorname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.actorname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.actorname_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "actorname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.actorname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.actorname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--npc name anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.actorname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemynpc", "actorname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.actorname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.actorname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--npc name anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.actorname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.actorname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--cast text size
|
|
{type = "label", get = function() return "Spell Name Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellname_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellname_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellname_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_npccastname_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
--cast text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellname_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellname_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellname_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "spellname_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellname_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellname_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--spell name text anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellname_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemynpc", "spellname_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellname_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellname_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--spell name text anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellname_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellname_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Spell Cast Time Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellpercent_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the cast time progress.",
|
|
},
|
|
--cast time text
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellpercent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--cast time text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_spellpercent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "spellpercent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellpercent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellpercent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
|
|
--cast time text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellpercent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.spellpercent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
|
|
--cast time anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemynpc", "spellpercent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellpercent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--cast time anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.spellpercent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.spellpercent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
--percent text
|
|
{type = "label", get = function() return "Health Information:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_enabled = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Show the percent text.",
|
|
},
|
|
--out of combat
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_ooc = value
|
|
Plater.UpdateSettingsCache()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Out of Combat",
|
|
desc = "Show the percent even when isn't in combat.",
|
|
},
|
|
--percent amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_show_percent end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_show_percent = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Percent Amount",
|
|
desc = "Show Percent Amount",
|
|
},
|
|
--health amount
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_show_health end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_show_health = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Health Amount",
|
|
desc = "Show Health Amount",
|
|
},
|
|
|
|
--health decimals
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_show_decimals end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_show_decimals = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Show Decimals",
|
|
desc = "Show Decimals",
|
|
},
|
|
|
|
--percent text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--percent text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_percent_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "percent_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.percent_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.percent_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
|
|
--pecent text color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.percent_text_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.percent_text_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_COLOR",
|
|
desc = "OPTIONS_TEXT_COLOR",
|
|
},
|
|
--percent text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--percent anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemynpc", "percent_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--percent anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.percent_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.percent_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
--level text settings
|
|
{type = "breakline"},
|
|
{type = "label", get = function() return "Level Text:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
--level enabled
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.level_text_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "Check this box to show the level of the actor.",
|
|
},
|
|
--level text size
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_size end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.level_text_size = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 6,
|
|
max = 99,
|
|
step = 1,
|
|
name = "OPTIONS_SIZE",
|
|
desc = "OPTIONS_TEXT_SIZE",
|
|
},
|
|
--level text font
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_font end,
|
|
values = function() return DF:BuildDropDownFontList (on_select_enemy_level_text_font) end,
|
|
name = "OPTIONS_FONT",
|
|
desc = "OPTIONS_TEXT_FONT",
|
|
},
|
|
|
|
--text outline options
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_outline end,
|
|
values = function() return build_outline_modes_table ("enemynpc", "level_text_outline") end,
|
|
name = "OPTIONS_OUTLINE",
|
|
desc = "OPTIONS_OUTLINE",
|
|
},
|
|
|
|
--text shadow color
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.level_text_shadow_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.level_text_shadow_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_SHADOWCOLOR",
|
|
desc = "OPTIONS_TOGGLE_TO_CHANGE",
|
|
},
|
|
|
|
--level text alpha
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_alpha end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.level_text_alpha = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = 0,
|
|
max = 1,
|
|
step = 0.1,
|
|
name = "OPTIONS_ALPHA",
|
|
desc = "Set the transparency of the text.",
|
|
usedecimals = true,
|
|
},
|
|
--level anchor
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_anchor.side end,
|
|
values = function() return build_anchor_side_table ("enemynpc", "level_text_anchor") end,
|
|
name = "OPTIONS_ANCHOR",
|
|
desc = "OPTIONS_ANCHOR_TARGET_SIDE",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_anchor.x end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.level_text_anchor.x = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_XOFFSET",
|
|
desc = "OPTIONS_XOFFSET_DESC",
|
|
},
|
|
--level anchor x offset
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.level_text_anchor.y end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.level_text_anchor.y = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -100,
|
|
max = 100,
|
|
step = 1,
|
|
usedecimals = true,
|
|
name = "OPTIONS_YOFFSET",
|
|
desc = "OPTIONS_YOFFSET_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Quest Tracking Settings:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.quest_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.quest_enabled = value
|
|
-- this seems to be gone as of 18.12.2020
|
|
--if value then
|
|
--SetCVar("showQuestTrackingTooltips", 1)
|
|
--end
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Track Quests Progress",
|
|
desc = "Track Quests Progress on enemy npc units.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.plate_config.enemynpc.quest_color_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.plate_config.enemynpc.quest_color_enabled = value
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Use Quest Color",
|
|
desc = "Enemy npc units which are objective of a quest have a different color.\nRequries 'Track Quests Progress' to be active.",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.quest_color_enemy
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.quest_color_enemy
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Quest Color (hostile npc)",
|
|
desc = "Nameplate has this color when a hostile mob is a quest objective.",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.plate_config.enemynpc.quest_color_neutral
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.plate_config.enemynpc.quest_color_neutral
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "Quest Color (neutral npc)",
|
|
desc = "Nameplate has this color when a neutral mob is a quest objective.",
|
|
},
|
|
|
|
}
|
|
|
|
_G.C_Timer.After(0.900, function() --~delay
|
|
options_table2.always_boxfirst = true
|
|
options_table2.language_addonId = addonId
|
|
options_table2.Name = "Enemy NPCs Options"
|
|
DF:BuildMenu (enemyNPCsFrame, options_table2, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
end
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> ~keybind ~bindings
|
|
|
|
--[=[
|
|
local keybind_changed_callback = function()
|
|
local data = Plater.db.profile.keybinds [DF:GetCurrentSpec()]
|
|
if (data) then
|
|
local bind_string, bind_type_func, bind_macro_func = DF:BuildKeybindFunctions (data, "PL")
|
|
if (bind_string) then
|
|
for _, plateFrame in ipairs (Plater.GetAllShownPlates()) do
|
|
DF:SetKeybindsOnProtectedFrame (plateFrame, bind_string, bind_type_func, bind_macro_func)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
local editKeybindFrame = DF:CreateKeybindBox (keybindsFrame, "PlaterKeybindSettings", Plater.db.profile.keybinds, keybind_changed_callback, 800, 600, 12, 20)
|
|
editKeybindFrame:SetPoint ("topleft", keybindsFrame, 0, -110)
|
|
editKeybindFrame:Hide()
|
|
|
|
function keybindsFrame.RefreshOptions()
|
|
editKeybindFrame:SetData (Plater.db.profile.keybinds)
|
|
end
|
|
--]=]
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> ~scripts ~scripting ~code �nimations ~animations
|
|
Plater.CreateScriptingPanel()
|
|
Plater.CreateHookingPanel()
|
|
Plater.CreateWagoPanel() --wago_imports
|
|
Plater.CreateSpellAnimationPanel()
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> experimental frame ~experimental
|
|
|
|
--overlay frame to indicate the feature is disabled
|
|
uiParentFeatureFrame.disabledOverlayFrame = CreateFrame ("frame", nil, uiParentFeatureFrame, BackdropTemplateMixin and "BackdropTemplate")
|
|
uiParentFeatureFrame.disabledOverlayFrame:SetPoint ("topleft", uiParentFeatureFrame, "topleft", 1, -175)
|
|
uiParentFeatureFrame.disabledOverlayFrame:SetPoint ("bottomright", uiParentFeatureFrame, "bottomright", -1, 21)
|
|
uiParentFeatureFrame.disabledOverlayFrame:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true})
|
|
uiParentFeatureFrame.disabledOverlayFrame:SetFrameLevel (uiParentFeatureFrame:GetFrameLevel() + 100)
|
|
uiParentFeatureFrame.disabledOverlayFrame:SetBackdropColor (.1, .1, .1, 1)
|
|
uiParentFeatureFrame.disabledOverlayFrame:EnableMouse (true)
|
|
|
|
if (Plater.db.profile.use_ui_parent) then
|
|
uiParentFeatureFrame.disabledOverlayFrame:Hide()
|
|
end
|
|
|
|
local on_select_strata_level = function (self, fixedParameter, value)
|
|
Plater.db.profile.ui_parent_base_strata = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
|
|
local strataTable = {
|
|
{value = "BACKGROUND", label = "Background", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Green]], iconcolor = {0, .5, 0, .8}, texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
|
|
{value = "LOW", label = "Low", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Green]] , texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
|
|
{value = "MEDIUM", label = "Medium", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Yellow]] , texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
|
|
{value = "HIGH", label = "High", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Yellow]] , iconcolor = {1, .7, 0, 1}, texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
|
|
{value = "DIALOG", label = "Dialog", onclick = onStrataSelect, icon = [[Interface\Buttons\UI-MicroStream-Red]] , iconcolor = {1, 0, 0, 1}, texcoord = nil}, --Interface\Buttons\UI-MicroStream-Green UI-MicroStream-Red UI-MicroStream-Yellow
|
|
}
|
|
|
|
--anchor table
|
|
local frame_levels = {"BACKGROUND", "LOW", "MEDIUM", "HIGH", "DIALOG"}
|
|
local build_framelevel_table = function (frame)
|
|
local t = {}
|
|
for i = 1, #frame_levels do
|
|
tinsert (t, {
|
|
label = frame_levels[i],
|
|
value = frame_levels[i],
|
|
onclick = function (_, _, value)
|
|
Plater.db.profile [frame] = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end
|
|
})
|
|
end
|
|
return t
|
|
end
|
|
|
|
local experimental_options = {
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.use_ui_parent end,
|
|
set = function (self, fixedparam, value)
|
|
|
|
if (value) then
|
|
--user is enabling the feature
|
|
DF:ShowPromptPanel ("Click okay to confirm using this feature (will force a /reload)", function()
|
|
Plater.db.profile.use_ui_parent = true
|
|
Plater.db.profile.use_ui_parent_just_enabled = true
|
|
Plater.db.profile.reopoen_options_panel_on_tab = TAB_INDEX_UIPARENTING
|
|
ReloadUI()
|
|
end, function()
|
|
PlaterOptionsPanelFrame.RefreshOptionsFrame()
|
|
end)
|
|
else
|
|
Plater.db.profile.use_ui_parent = false
|
|
Plater.db.profile.use_ui_parent_just_enabled = false
|
|
Plater.db.profile.reopoen_options_panel_on_tab = TAB_INDEX_UIPARENTING
|
|
--reset the scale fine tune, so next time the ui parent feature is enabled it can be recalculated
|
|
Plater.db.profile.ui_parent_scale_tune = 0
|
|
ReloadUI()
|
|
end
|
|
|
|
Plater:Msg ("this setting require a /reload to take effect.")
|
|
end,
|
|
name = "Use Custom Strata Channels",
|
|
desc = "Allow nameplates to be placed in custom frame strata channels.\n\n" .. ImportantText .. "a /reload will be triggered on changing this setting.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Strata Channels:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.ui_parent_target_strata end,
|
|
values = function() return build_framelevel_table ("ui_parent_target_strata") end,
|
|
name = "Current Target",
|
|
desc = "Which strata the nameplate of the current target is placed in.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.ui_parent_base_strata end,
|
|
values = function() return build_framelevel_table ("ui_parent_base_strata") end,
|
|
name = "Health Bar",
|
|
desc = "Which strata the unit frame will be placed in.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.ui_parent_cast_strata end,
|
|
values = function() return build_framelevel_table ("ui_parent_cast_strata") end,
|
|
name = "Cast Bar",
|
|
desc = "Which strata the cast bar will be placed in.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.ui_parent_buff_strata end,
|
|
values = function() return build_framelevel_table ("ui_parent_buff_strata") end,
|
|
name = "Aura Frame 1",
|
|
desc = "Which strata aura frame 1 will be placed in.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.ui_parent_buff2_strata end,
|
|
values = function() return build_framelevel_table ("ui_parent_buff2_strata") end,
|
|
name = "Aura Frame 2",
|
|
desc = "Which strata aura frame 2 will be placed in.",
|
|
},
|
|
|
|
{
|
|
type = "select",
|
|
get = function() return Plater.db.profile.ui_parent_buff_special_strata end,
|
|
values = function() return build_framelevel_table ("ui_parent_buff_special_strata") end,
|
|
name = "Buff Special Frame",
|
|
desc = "Which strata buff special frame frame will be placed in.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Frame Levels:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.ui_parent_cast_level end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.ui_parent_cast_level = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -5000,
|
|
max = 5000,
|
|
step = 1,
|
|
name = "Cast Bar",
|
|
desc = "Move frames up or down within the strata channel.",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.ui_parent_buff_level end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.ui_parent_buff_level = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -5000,
|
|
max = 5000,
|
|
step = 1,
|
|
name = "Aura Frame 1",
|
|
desc = "Move frames up or down within the strata channel.",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.ui_parent_buff2_level end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.ui_parent_buff2_level = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -5000,
|
|
max = 5000,
|
|
step = 1,
|
|
name = "Aura Frame 2",
|
|
desc = "Move frames up or down within the strata channel.",
|
|
},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.ui_parent_buff_special_level end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.ui_parent_buff_special_level = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -5000,
|
|
max = 5000,
|
|
step = 1,
|
|
name = "Buff Special Frame",
|
|
desc = "Move frames up or down within the strata channel.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Scaling:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "range",
|
|
get = function() return Plater.db.profile.ui_parent_scale_tune end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.ui_parent_scale_tune = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
min = -2.5,
|
|
max = 2.5,
|
|
step = 0.01,
|
|
usedecimals = true,
|
|
name = "Fine Tune Scale",
|
|
desc = "Slightly adjust the scale of the unit frame.",
|
|
},
|
|
}
|
|
|
|
_G.C_Timer.After(1.5, function() --~delay
|
|
experimental_options.always_boxfirst = true
|
|
experimental_options.language_addonId = addonId
|
|
experimental_options.Name = "UI Parent Options"
|
|
DF:BuildMenu (uiParentFeatureFrame, experimental_options, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> ~auto ãuto
|
|
|
|
--autoFrame
|
|
|
|
local auto_options = {
|
|
{type = "label", get = function() return "Auto Toggle Friendly Nameplates:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_friendly_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_friendly_enabled = value
|
|
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "When enabled, Plater will enable or disable friendly plates based on the settings below.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_friendly ["party"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_friendly ["party"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Dungeons",
|
|
desc = "Show friendly nameplates when inside dungeons.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_friendly ["raid"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_friendly ["raid"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Raid",
|
|
desc = "Show friendly nameplates when inside raids.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_friendly ["arena"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_friendly ["arena"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Arena / BG",
|
|
desc = "Show friendly nameplates when inside arena or battleground.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_friendly ["cities"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_friendly ["cities"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Major Cities",
|
|
desc = "Show friendly nameplates when inside a major city.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_friendly ["world"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_friendly ["world"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Open World",
|
|
desc = "Show friendly nameplates when at any place not listed on the other options.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Auto Toggle Enemy Nameplates:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_enemy_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_enemy_enabled = value
|
|
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = L["OPTIONS_ENABLED"],
|
|
desc = "When enabled, Plater will enable or disable enemy plates based on the settings below.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_enemy ["party"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_enemy ["party"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Dungeons",
|
|
desc = "Show enemy nameplates when inside dungeons.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_enemy ["raid"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_enemy ["raid"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Raid",
|
|
desc = "Show enemy nameplates when inside raids.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_enemy ["arena"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_enemy ["arena"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Arena / BG",
|
|
desc = "Show enemy nameplates when inside arena or battleground.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_enemy ["cities"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_enemy ["cities"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Major Cities",
|
|
desc = "Show enemy nameplates when inside a major city.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_enemy ["world"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_enemy ["world"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Open World",
|
|
desc = "Show enemy nameplates when at any place not listed on the other options.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Combat toggle:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat_enabled = value
|
|
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = L["OPTIONS_ENABLED"],
|
|
desc = "When enabled, Plater will enable or disable nameplates and healthbars based on the settings below, when the player enters or leaves combat.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat.enemy_ic end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat.enemy_ic = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Enemy Nameplates in combat",
|
|
desc = "Automatically enable / disable enemy nameplates in combat.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat.enemy_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat.enemy_ooc = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Enemy Nameplates out of combat",
|
|
desc = "Automatically enable / disable enemy nameplates out of combat.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat.friendly_ic end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat.friendly_ic = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Friendly Nameplates in combat",
|
|
desc = "Automatically enable / disable friendly nameplates in combat.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat.friendly_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat.friendly_ooc = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Friendly Nameplates out of combat",
|
|
desc = "Automatically enable / disable friendly nameplates out of combat.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat.blizz_healthbar_ic end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat.blizz_healthbar_ic = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Hide Blizzard Healthbars in combat",
|
|
desc = "Automatically enable / disable showing blizzard nameplate healthbars in combat.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_combat.blizz_healthbar_ooc end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_combat.blizz_healthbar_ooc = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Hide Blizzard Healthbars out of combat",
|
|
desc = "Automatically enable / disable showing blizzard nameplate healthbars out of combat.",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
{type = "breakline"},
|
|
{type = "label", get = function() return "Auto Toggle Stacking Nameplates:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_stacking_enabled end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_stacking_enabled = value
|
|
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "When enabled, Plater will enable or disable stacking nameplates based on the settings below.\n\n" .. ImportantText .. "only toggle on if 'Stacking Nameplates' is enabled in the General Settings tab.",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_stacking ["party"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_stacking ["party"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Dungeons",
|
|
desc = "Set stacking on when inside dungeons.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_stacking ["raid"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_stacking ["raid"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Raid",
|
|
desc = "Set stacking on when inside raids.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_stacking ["arena"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_stacking ["arena"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Arena / BG",
|
|
desc = "Set stacking on when inside arena or battleground.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_stacking ["cities"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_stacking ["cities"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Major Cities",
|
|
desc = "Set stacking on when inside a major city.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_toggle_stacking ["world"] end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_toggle_stacking ["world"] = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "In Open World",
|
|
desc = "Set stacking on when at any place not listed on the other options.",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "Raid and Party:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_inside_raid_dungeon.hide_enemy_player_pets end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_inside_raid_dungeon.hide_enemy_player_pets = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Hide Enemy Pets",
|
|
desc = "Disable show enemy pets within a raid or a dungeon.",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.auto_inside_raid_dungeon.hide_enemy_player_totems end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.auto_inside_raid_dungeon.hide_enemy_player_totems = value
|
|
Plater.RefreshAutoToggle()
|
|
end,
|
|
name = "Hide Enemy Totems",
|
|
desc = "Disable show enemy totems within a raid or a dungeon.",
|
|
},
|
|
}
|
|
|
|
_G.C_Timer.After(1.2, function() --~delay
|
|
auto_options.always_boxfirst = true
|
|
auto_options.language_addonId = addonId
|
|
auto_options.Name = "Auto Options"
|
|
DF:BuildMenu (autoFrame, auto_options, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
|
|
|
|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
--> ~threat ~aggro
|
|
|
|
|
|
local thread_options = {
|
|
|
|
{type = "label", get = function() return "OPTIONS_THREAT_MODIFIERS_ANCHOR_TITLE" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aggro_modifies.health_bar_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aggro_modifies.health_bar_color = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
if (not value) then
|
|
Plater.UpdateAllNameplateColors()
|
|
end
|
|
end,
|
|
name = "OPTIONS_THREAT_MODIFIERS_HEALTHBARCOLOR",
|
|
desc = "OPTIONS_THREAT_MODIFIERS_HEALTHBARCOLOR",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aggro_modifies.border_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aggro_modifies.border_color = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_THREAT_MODIFIERS_BORDERCOLOR",
|
|
desc = "OPTIONS_THREAT_MODIFIERS_BORDERCOLOR",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aggro_modifies.actor_name_color end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aggro_modifies.actor_name_color = value
|
|
Plater.RefreshDBUpvalues()
|
|
Plater.UpdateAllPlates()
|
|
end,
|
|
name = "OPTIONS_THREAT_MODIFIERS_NAMECOLOR",
|
|
desc = "OPTIONS_THREAT_MODIFIERS_NAMECOLOR",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "OPTIONS_THREAT_COLOR_TANK_ANCHOR_TITLE" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tank.colors.aggro
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tank.colors.aggro
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_ONYOU_SOLID",
|
|
desc = "OPTIONS_THREAT_COLOR_TANK_ONYOU_SOLID_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tank.colors.anothertank
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tank.colors.anothertank
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_ANOTHERTANK",
|
|
desc = "OPTIONS_THREAT_COLOR_TANK_ANOTHERTANK_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tank.colors.pulling
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tank.colors.pulling
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_ONYOU_LOWAGGRO",
|
|
desc = "OPTIONS_THREAT_AGGROSTATE_ONYOU_LOWAGGRO_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tank.colors.noaggro
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tank.colors.noaggro
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_NOAGGRO",
|
|
desc = "OPTIONS_THREAT_COLOR_TANK_NOAGGRO_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tank.colors.pulling_from_tank
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tank.colors.pulling_from_tank
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_PULL_FROM_ANOTHER_TANK",
|
|
desc = "OPTIONS_THREAT_PULL_FROM_ANOTHER_TANK_DESC",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{type = "label", get = function() return "OPTIONS_THREAT_COLOR_DPS_ANCHOR_TITLE" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.dps.colors.aggro
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.dps.colors.aggro
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_ONYOU_SOLID",
|
|
desc = "OPTIONS_THREAT_COLOR_DPS_ONYOU_SOLID_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.dps.colors.pulling
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.dps.colors.pulling
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_HIGHTHREAT",
|
|
desc = "OPTIONS_THREAT_COLOR_DPS_HIGHTHREAT_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.dps.colors.noaggro
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.dps.colors.noaggro
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_NOAGGRO",
|
|
desc = "OPTIONS_THREAT_COLOR_DPS_NOAGGRO_DESC",
|
|
},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.dps.use_aggro_solo end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.dps.use_aggro_solo = value
|
|
end,
|
|
name = "OPTIONS_THREAT_USE_SOLO_COLOR_ENABLE",
|
|
desc = "OPTIONS_THREAT_USE_SOLO_COLOR_DESC",
|
|
},
|
|
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.dps.colors.solo
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.dps.colors.solo
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_USE_SOLO_COLOR",
|
|
desc = "OPTIONS_THREAT_USE_SOLO_COLOR",
|
|
},
|
|
|
|
{type = "blank"},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.aggro_can_check_notank end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.aggro_can_check_notank = value
|
|
end,
|
|
name = "OPTIONS_THREAT_DPS_CANCHECKNOTANK",
|
|
desc = "OPTIONS_THREAT_DPS_CANCHECKNOTANK_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.dps.colors.notontank
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.dps.colors.notontank
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_NOTANK",
|
|
desc = "OPTIONS_THREAT_COLOR_DPS_NOTANK_DESC",
|
|
},
|
|
|
|
|
|
|
|
{type = "blank"},
|
|
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tank.colors.nocombat
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tank.colors.nocombat
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_NOTINCOMBAT",
|
|
desc = "OPTIONS_THREAT_COLOR_TANK_NOTINCOMBAT_DESC",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.tap_denied_color
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.tap_denied_color
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
end,
|
|
name = "OPTIONS_THREAT_AGGROSTATE_TAPPED",
|
|
desc = "OPTIONS_THREAT_COLOR_TAPPED_DESC",
|
|
},
|
|
|
|
{type = "breakline"},
|
|
|
|
}
|
|
|
|
|
|
if IS_WOW_PROJECT_NOT_MAINLINE and not IS_WOW_PROJECT_CLASSIC_WRATH then
|
|
local thread_options_tank = {
|
|
{type = "label", get = function() return "Tank or DPS Colors:" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.tank_threat_colors end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.tank_threat_colors = value
|
|
Plater.RefreshTankCache()
|
|
end,
|
|
name = "OPTIONS_THREAT_CLASSIC_USE_TANK_COLORS",
|
|
desc = "OPTIONS_THREAT_CLASSIC_USE_TANK_COLORS",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
}
|
|
|
|
for _, t in ipairs (thread_options_tank) do
|
|
tinsert (thread_options, t)
|
|
end
|
|
end
|
|
|
|
local thread_options2 = {
|
|
|
|
{type = "label", get = function() return "OPTIONS_THREAT_COLOR_OVERRIDE_ANCHOR_TITLE" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.color_override end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.color_override = value
|
|
Plater.RefreshColorOverride()
|
|
end,
|
|
name = "OPTIONS_ENABLED",
|
|
desc = "OPTIONS_THREAT_COLOR_OVERRIDE_DESC",
|
|
},
|
|
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.color_override_colors [UNITREACTION_HOSTILE]
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.color_override_colors [UNITREACTION_HOSTILE]
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllNameplateColors()
|
|
end,
|
|
name = "OPTIONS_HOSTILE",
|
|
desc = "OPTIONS_HOSTILE",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.color_override_colors [UNITREACTION_NEUTRAL]
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.color_override_colors [UNITREACTION_NEUTRAL]
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllNameplateColors()
|
|
end,
|
|
name = "OPTIONS_NEUTRAL",
|
|
desc = "OPTIONS_NEUTRAL",
|
|
},
|
|
{
|
|
type = "color",
|
|
get = function()
|
|
local color = Plater.db.profile.color_override_colors [UNITREACTION_FRIENDLY]
|
|
return {color[1], color[2], color[3], color[4]}
|
|
end,
|
|
set = function (self, r, g, b, a)
|
|
local color = Plater.db.profile.color_override_colors [UNITREACTION_FRIENDLY]
|
|
color[1], color[2], color[3], color[4] = r, g, b, a
|
|
Plater.UpdateAllNameplateColors()
|
|
end,
|
|
name = "OPTIONS_FRIENDLY",
|
|
desc = "OPTIONS_FRIENDLY",
|
|
},
|
|
|
|
{type = "blank"},
|
|
|
|
{type = "label", get = function() return "Misc" .. ":" end, text_template = DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")},
|
|
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.show_aggro_flash end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.show_aggro_flash = value
|
|
end,
|
|
name = "OPTIONS_THREAT_USE_AGGRO_FLASH",
|
|
desc = "OPTIONS_THREAT_USE_AGGRO_FLASH_DESC",
|
|
},
|
|
{
|
|
type = "toggle",
|
|
get = function() return Plater.db.profile.show_aggro_glow end,
|
|
set = function (self, fixedparam, value)
|
|
Plater.db.profile.show_aggro_glow = value
|
|
end,
|
|
name = "OPTIONS_THREAT_USE_AGGRO_GLOW",
|
|
desc = "OPTIONS_THREAT_USE_AGGRO_GLOW_DESC",
|
|
},
|
|
|
|
}
|
|
|
|
for _, t in ipairs (thread_options2) do
|
|
tinsert (thread_options, t)
|
|
end
|
|
|
|
_G.C_Timer.After(0.990, function() --~delay
|
|
thread_options.always_boxfirst = true
|
|
thread_options.language_addonId = addonId
|
|
thread_options.Name = "Threat Options"
|
|
DF:BuildMenu (threatFrame, thread_options, startX, startY, heightSize, false, options_text_template, options_dropdown_template, options_switch_template, true, options_slider_template, options_button_template, globalCallback)
|
|
end)
|
|
|
|
|
|
|
|
|
|
PlaterOptionsPanelFrame.AllSettingsTable = {
|
|
--interface_options, -- general
|
|
options_table1, -- general
|
|
thread_options, -- threat & aggro
|
|
targetOptions, -- target
|
|
--castBar_options, -- cast bar (loaded on demand)
|
|
experimental_options, -- level & strata
|
|
options_personal, -- personal bar
|
|
debuff_options, -- buff settings
|
|
especial_aura_settings, -- buff special
|
|
--ghost auras settings
|
|
options_table2, -- enemy npc
|
|
options_table4, -- enemy player
|
|
options_table3, -- friendly player
|
|
friendly_npc_options_table, -- friendly npc
|
|
--spell feedback (animations)
|
|
auto_options, -- auto
|
|
advanced_options, -- advanced
|
|
--resources
|
|
}
|
|
|
|
--
|
|
Plater.CheckOptionsTab()
|
|
|
|
--__benchmark() --~perf
|
|
end
|
|
|
|
|
|
--endd functiond
|
|
|