mirror of
https://github.com/Bluewhale1337/ElvUIModernized.git
synced 2026-07-27 16:34:45 +00:00
1064 lines
31 KiB
Lua
1064 lines
31 KiB
Lua
local E, L, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local NP = E:GetModule("NamePlates");
|
|
local ACD = LibStub("AceConfigDialog-3.0");
|
|
|
|
--Cache global variables
|
|
--Lua functions
|
|
local getn = table.getn
|
|
|
|
local selectedFilter
|
|
local filters
|
|
|
|
local positionValues = {
|
|
TOPLEFT = "TOPLEFT",
|
|
LEFT = "LEFT",
|
|
BOTTOMLEFT = "BOTTOMLEFT",
|
|
RIGHT = "RIGHT",
|
|
TOPRIGHT = "TOPRIGHT",
|
|
BOTTOMRIGHT = "BOTTOMRIGHT",
|
|
CENTER = "CENTER",
|
|
TOP = "TOP",
|
|
BOTTOM = "BOTTOM"
|
|
}
|
|
|
|
local function UpdateFilterGroup()
|
|
if not selectedFilter or not E.global["nameplates"]["filter"][selectedFilter] then
|
|
E.Options.args.nameplate.args.generalGroup.args.filters.args.filterGroup = nil
|
|
return
|
|
end
|
|
|
|
E.Options.args.nameplate.args.generalGroup.args.filters.args.filterGroup = {
|
|
type = "group",
|
|
name = selectedFilter,
|
|
guiInline = true,
|
|
order = -10,
|
|
get = function(info) return E.global["nameplates"]["filter"][selectedFilter][ info[getn(info) ]] end,
|
|
set = function(info, value) E.global["nameplates"]["filter"][selectedFilter][ info[getn(info) ]] = value; NP:ForEachPlate("CheckFilter"); NP:ConfigureAll(); UpdateFilterGroup() end,
|
|
args = {
|
|
enable = {
|
|
type = "toggle",
|
|
order = 1,
|
|
name = L["Enable"],
|
|
desc = L["Use this filter."],
|
|
},
|
|
hide = {
|
|
type = "toggle",
|
|
order = 2,
|
|
name = HIDE,
|
|
desc = L["Prevent any nameplate with this unit name from showing."],
|
|
},
|
|
customColor = {
|
|
type = "toggle",
|
|
order = 3,
|
|
name = L["Custom Color"],
|
|
desc = L["Disable threat coloring for this plate and use the custom color."],
|
|
},
|
|
color = {
|
|
type = "color",
|
|
order = 4,
|
|
name = COLOR,
|
|
get = function(info)
|
|
local t = E.global["nameplates"]["filter"][selectedFilter][ info[getn(info) ]]
|
|
if t then
|
|
return t.r, t.g, t.b, t.a
|
|
end
|
|
end,
|
|
set = function(info, r, g, b)
|
|
E.global["nameplates"]["filter"][selectedFilter][ info[getn(info) ]] = {}
|
|
local t = E.global["nameplates"]["filter"][selectedFilter][ info[getn(info) ]]
|
|
if t then
|
|
t.r, t.g, t.b = r, g, b
|
|
UpdateFilterGroup()
|
|
NP:ForEachPlate("CheckFilter")
|
|
NP:ConfigureAll()
|
|
end
|
|
end
|
|
},
|
|
customScale = {
|
|
type = "range",
|
|
name = L["Custom Scale"],
|
|
desc = L["Set the scale of the nameplate."],
|
|
min = 0.67, max = 2, step = 0.01
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
local ORDER = 100
|
|
local function GetUnitSettings(unit, name)
|
|
local copyValues = {}
|
|
for x, y in pairs(NP.db.units) do
|
|
if(type(y) == "table" and x ~= unit) then
|
|
copyValues[x] = L[x]
|
|
end
|
|
end
|
|
local group = {
|
|
order = ORDER,
|
|
type = "group",
|
|
name = name,
|
|
childGroups = "tab",
|
|
get = function(info) return E.db.nameplates.units[unit][ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit][ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
copySettings = {
|
|
order = -10,
|
|
type = "select",
|
|
name = L["Copy Settings From"],
|
|
desc = L["Copy settings from another unit."],
|
|
values = copyValues,
|
|
get = function() return "" end,
|
|
set = function(info, value)
|
|
NP:CopySettings(value, unit)
|
|
NP:ConfigureAll()
|
|
end
|
|
},
|
|
defaultSettings = {
|
|
order = -9,
|
|
type = "execute",
|
|
name = L["Default Settings"],
|
|
desc = L["Set Settings to Default"],
|
|
func = function(info, value)
|
|
NP:ResetSettings(unit)
|
|
NP:ConfigureAll()
|
|
end
|
|
},
|
|
healthGroup = {
|
|
order = 1,
|
|
name = HEALTH,
|
|
type = "group",
|
|
get = function(info) return E.db.nameplates.units[unit].healthbar[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].healthbar[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = HEALTH
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"]
|
|
},
|
|
height = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["Height"],
|
|
min = 4, max = 20, step = 1
|
|
},
|
|
width = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Width"],
|
|
min = 50, max = 200, step = 1
|
|
},
|
|
textGroup = {
|
|
order = 100,
|
|
type = "group",
|
|
name = L["Text"],
|
|
guiInline = true,
|
|
get = function(info) return E.db.nameplates.units[unit].healthbar.text[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].healthbar.text[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"]
|
|
},
|
|
format = {
|
|
order = 2,
|
|
name = L["Format"],
|
|
type = "select",
|
|
values = {
|
|
["CURRENT"] = L["Current"],
|
|
["CURRENT_MAX"] = L["Current / Max"],
|
|
["CURRENT_PERCENT"] = L["Current - Percent"],
|
|
["CURRENT_MAX_PERCENT"] = L["Current - Max | Percent"],
|
|
["PERCENT"] = L["Percent"],
|
|
["DEFICIT"] = L["Deficit"]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
castGroup = {
|
|
order = 3,
|
|
name = L["Cast Bar"],
|
|
type = "group",
|
|
get = function(info) return E.db.nameplates.units[unit].castbar[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].castbar[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Cast Bar"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
name = L["Enable"],
|
|
type = "toggle",
|
|
},
|
|
hideSpellName = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Hide Spell Name"]
|
|
},
|
|
hideTime = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Hide Time"]
|
|
},
|
|
height = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["Height"],
|
|
min = 4, max = 20, step = 1
|
|
},
|
|
offset = {
|
|
order = 5,
|
|
type = "range",
|
|
name = L["Offset"],
|
|
min = 0, max = 30, step = 1
|
|
},
|
|
castTimeFormat = {
|
|
order = 6,
|
|
type = "select",
|
|
name = L["Cast Time Format"],
|
|
values = {
|
|
["CURRENT"] = L["Current"],
|
|
["CURRENT_MAX"] = L["Current / Max"],
|
|
["REMAINING"] = L["Remaining"]
|
|
}
|
|
},
|
|
channelTimeFormat = {
|
|
order = 7,
|
|
type = "select",
|
|
name = L["Channel Time Format"],
|
|
values = {
|
|
["CURRENT"] = L["Current"],
|
|
["CURRENT_MAX"] = L["Current / Max"],
|
|
["REMAINING"] = L["Remaining"]
|
|
}
|
|
},
|
|
timeToHold = {
|
|
order = 8,
|
|
type = "range",
|
|
name = L["Time To Hold"],
|
|
desc = L["How many seconds the castbar should stay visible after the cast failed or was interrupted."],
|
|
min = 0, max = 4, step = 0.1
|
|
}
|
|
}
|
|
},
|
|
buffsGroup = {
|
|
order = 4,
|
|
name = L["Buffs"],
|
|
type = "group",
|
|
get = function(info) return E.db.nameplates.units[unit].buffs.filters[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].buffs.filters[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
disabled = function() return not E.db.nameplates.units[unit].healthbar.enable end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Buffs"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
get = function(info) return E.db.nameplates.units[unit].buffs[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].buffs[ info[getn(info) ]] = value; NP:ConfigureAll() end
|
|
},
|
|
numAuras = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["# Displayed Auras"],
|
|
desc = L["Controls how many auras are displayed, this will also affect the size of the auras."],
|
|
min = 1, max = 8, step = 1,
|
|
get = function(info) return E.db.nameplates.units[unit].buffs[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].buffs[ info[getn(info) ]] = value; NP:ConfigureAll() end
|
|
},
|
|
baseHeight = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Icon Base Height"],
|
|
desc = L["Base Height for the Aura Icon"],
|
|
min = 6, max = 60, step = 1,
|
|
get = function(info) return E.db.nameplates.units[unit].buffs[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].buffs[ info[getn(info) ]] = value; NP:ConfigureAll() end
|
|
},
|
|
filtersGroup = {
|
|
name = FILTERS,
|
|
order = 4,
|
|
type = "group",
|
|
guiInline = true,
|
|
args = {
|
|
personal = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Personal Auras"]
|
|
},
|
|
maxDuration = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["Maximum Duration"],
|
|
min = 5, max = 3000, step = 1
|
|
},
|
|
filter = {
|
|
order = 3,
|
|
type = "select",
|
|
name = FILTER,
|
|
values = function()
|
|
local filters = {}
|
|
filters[""] = NONE
|
|
for filter in pairs(E.global.unitframe["aurafilters"]) do
|
|
filters[filter] = filter
|
|
end
|
|
return filters
|
|
end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
debuffsGroup = {
|
|
order = 5,
|
|
name = L["Debuffs"],
|
|
type = "group",
|
|
get = function(info) return E.db.nameplates.units[unit].debuffs.filters[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].debuffs.filters[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
disabled = function() return not E.db.nameplates.units[unit].healthbar.enable end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Debuffs"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
get = function(info) return E.db.nameplates.units[unit].debuffs[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].debuffs[ info[getn(info) ]] = value; NP:ConfigureAll() end
|
|
},
|
|
numAuras = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["# Displayed Auras"],
|
|
desc = L["Controls how many auras are displayed, this will also affect the size of the auras."],
|
|
min = 1, max = 8, step = 1,
|
|
get = function(info) return E.db.nameplates.units[unit].debuffs[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].debuffs[ info[getn(info) ]] = value; NP:ConfigureAll() end
|
|
},
|
|
baseHeight = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Icon Base Height"],
|
|
desc = L["Base Height for the Aura Icon"],
|
|
min = 6, max = 60, step = 1,
|
|
get = function(info) return E.db.nameplates.units[unit].debuffs[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].debuffs[ info[getn(info) ]] = value; NP:ConfigureAll() end
|
|
},
|
|
filtersGroup = {
|
|
name = FILTERS,
|
|
order = 4,
|
|
type = "group",
|
|
guiInline = true,
|
|
args = {
|
|
personal = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Personal Auras"]
|
|
},
|
|
maxDuration = {
|
|
order = 2,
|
|
type = "range",
|
|
name = L["Maximum Duration"],
|
|
min = 5, max = 3000, step = 1
|
|
},
|
|
filter = {
|
|
order = 3,
|
|
type = "select",
|
|
name = FILTER,
|
|
values = function()
|
|
local filters = {}
|
|
filters[""] = NONE
|
|
for filter in pairs(E.global.unitframe["aurafilters"]) do
|
|
filters[filter] = filter
|
|
end
|
|
return filters
|
|
end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
levelGroup = {
|
|
order = 6,
|
|
name = LEVEL,
|
|
type = "group",
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = LEVEL
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
name = L["Enable"],
|
|
type = "toggle",
|
|
get = function(info) return E.db.nameplates.units[unit].showLevel end,
|
|
set = function(info, value) E.db.nameplates.units[unit].showLevel = value; NP:ConfigureAll() end
|
|
}
|
|
}
|
|
},
|
|
nameGroup = {
|
|
order = 7,
|
|
name = NAME,
|
|
type = "group",
|
|
get = function(info) return E.db.nameplates.units[unit].name[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].name[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = NAME
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
name = L["Enable"],
|
|
type = "toggle",
|
|
get = function(info) return E.db.nameplates.units[unit].showName end,
|
|
set = function(info, value) E.db.nameplates.units[unit].showName = value; NP:ConfigureAll() end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (unit == "FRIENDLY_PLAYER" or unit == "ENEMY_PLAYER") then
|
|
group.args.healthGroup.args.useClassColor = {
|
|
order = 4,
|
|
type = "toggle",
|
|
name = L["Use Class Color"],
|
|
desc = L["Depends on Class Caching module!"],
|
|
disabled = function() return not E.private.general.classCache end
|
|
}
|
|
group.args.nameGroup.args.useClassColor = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Use Class Color"],
|
|
desc = L["Depends on Class Caching module!"],
|
|
disabled = function() return not E.private.general.classCache end
|
|
}
|
|
elseif (unit == "ENEMY_NPC" or unit == "FRIENDLY_NPC") then
|
|
group.args.eliteIcon = {
|
|
order = 10,
|
|
name = L["Elite Icon"],
|
|
type = "group",
|
|
get = function(info) return E.db.nameplates.units[unit].eliteIcon[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.units[unit].eliteIcon[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
header = {
|
|
order = 0,
|
|
type = "header",
|
|
name = L["Elite Icon"]
|
|
},
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"]
|
|
},
|
|
position = {
|
|
order = 2,
|
|
type = "select",
|
|
name = L["Position"],
|
|
values = {
|
|
["LEFT"] = L["Left"],
|
|
["RIGHT"] = L["Right"],
|
|
["TOP"] = L["Top"],
|
|
["BOTTOM"] = L["Bottom"],
|
|
["CENTER"] = L["Center"]
|
|
}
|
|
},
|
|
size = {
|
|
order = 3,
|
|
type = "range",
|
|
name = L["Size"],
|
|
min = 12, max = 42, step = 1
|
|
},
|
|
xOffset = {
|
|
order = 4,
|
|
type = "range",
|
|
name = L["X-Offset"],
|
|
min = -100, max = 100, step = 1
|
|
},
|
|
yOffset = {
|
|
order = 5,
|
|
type = "range",
|
|
name = L["Y-Offset"],
|
|
min = -100, max = 100, step = 1
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
ORDER = ORDER + 100
|
|
return group
|
|
end
|
|
|
|
E.Options.args.nameplate = {
|
|
type = "group",
|
|
name = L["Nameplates"],
|
|
childGroups = "tree",
|
|
get = function(info) return E.db.nameplates[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates[ info[getn(info) ]] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
enable = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Enable"],
|
|
get = function(info) return E.private.nameplates[ info[getn(info) ]] end,
|
|
set = function(info, value) E.private.nameplates[ info[getn(info) ]] = value; E:StaticPopup_Show("PRIVATE_RL") end
|
|
},
|
|
intro = {
|
|
order = 2,
|
|
type = "description",
|
|
name = L["NAMEPLATE_DESC"]
|
|
},
|
|
header = {
|
|
order = 3,
|
|
type = "header",
|
|
name = L["Shortcuts"]
|
|
},
|
|
spacer1 = {
|
|
order = 4,
|
|
type = "description",
|
|
name = " ",
|
|
},
|
|
generalShortcut = {
|
|
order = 5,
|
|
type = "execute",
|
|
name = L["General"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "generalGroup", "general") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},
|
|
fontsShortcut = {
|
|
order = 6,
|
|
type = "execute",
|
|
name = L["Fonts"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "generalGroup", "fontGroup") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},
|
|
spacer2 = {
|
|
order = 7,
|
|
type = "description",
|
|
name = " ",
|
|
},
|
|
friendlyPlayerShortcut = {
|
|
order = 8,
|
|
type = "execute",
|
|
name = L["Friendly Player Frames"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "friendlyPlayerGroup") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},
|
|
enemyPlayerShortcut = {
|
|
order = 9,
|
|
type = "execute",
|
|
name = L["Enemy Player Frames"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "enemyPlayerGroup") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},
|
|
spacer5 = {
|
|
order = 10,
|
|
type = "description",
|
|
name = " ",
|
|
},
|
|
friendlyNPCShortcut = {
|
|
order = 11,
|
|
type = "execute",
|
|
name = L["Friendly NPC Frames"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "friendlyNPCGroup") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},
|
|
enemyNPCShortcut = {
|
|
order = 12,
|
|
type = "execute",
|
|
name = L["Enemy NPC Frames"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "enemyNPCGroup") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},
|
|
--[[ filtersShortcut = {
|
|
order = 13,
|
|
type = "execute",
|
|
name = L["Style Filter"],
|
|
buttonElvUI = true,
|
|
func = function() ACD:SelectGroup("ElvUI", "nameplate", "filters") end,
|
|
disabled = function() return not E.NamePlates; end,
|
|
},]]
|
|
generalGroup = {
|
|
order = 14,
|
|
type = "group",
|
|
name = GENERAL,
|
|
childGroups = "tab",
|
|
disabled = function() return not E.NamePlates end,
|
|
args = {
|
|
general = {
|
|
order = 1,
|
|
type = "group",
|
|
name = GENERAL,
|
|
args = {
|
|
statusbar = {
|
|
order = 0,
|
|
type = "select",
|
|
dialogControl = "LSM30_Statusbar",
|
|
name = L["StatusBar Texture"],
|
|
values = AceGUIWidgetLSMlists.statusbar
|
|
},
|
|
motionType = {
|
|
order = 1,
|
|
type = "select",
|
|
name = L["Nameplate Motion Type"],
|
|
desc = L["Set to either stack nameplates vertically or allow them to overlap."],
|
|
values = {
|
|
["STACKED"] = "STACKED",
|
|
["OVERLAP"] = "OVERLAP"
|
|
},
|
|
set = function(info, value) E.db.nameplates.motionType = value; E:StaticPopup_Show("CONFIG_RL") end,
|
|
},
|
|
lowHealthThreshold = {
|
|
order = 2,
|
|
name = L["Low Health Threshold"],
|
|
desc = L["Make the unitframe glow yellow when it is below this percent of health, it will glow red when the health value is half of this value."],
|
|
type = "range",
|
|
isPercent = true,
|
|
min = 0, max = 1, step = 0.01
|
|
},
|
|
showEnemyCombat = {
|
|
order = 10,
|
|
type = "select",
|
|
name = L["Enemy Combat Toggle"],
|
|
desc = L["Control enemy nameplates toggling on or off when in combat."],
|
|
values = {
|
|
["DISABLED"] = L["Disabled"],
|
|
["TOGGLE_ON"] = L["Toggle On While In Combat"],
|
|
["TOGGLE_OFF"] = L["Toggle Off While In Combat"],
|
|
},
|
|
set = function(info, value)
|
|
E.db.nameplates[ info[getn(info) ]] = value
|
|
NP:PLAYER_REGEN_ENABLED()
|
|
end,
|
|
},
|
|
showFriendlyCombat = {
|
|
order = 11,
|
|
type = "select",
|
|
name = L["Friendly Combat Toggle"],
|
|
desc = L["Control friendly nameplates toggling on or off when in combat."],
|
|
values = {
|
|
["DISABLED"] = L["Disabled"],
|
|
["TOGGLE_ON"] = L["Toggle On While In Combat"],
|
|
["TOGGLE_OFF"] = L["Toggle Off While In Combat"],
|
|
},
|
|
set = function(info, value)
|
|
E.db.nameplates[ info[getn(info) ]] = value
|
|
NP:PLAYER_REGEN_ENABLED()
|
|
end
|
|
},
|
|
clickableWidth = {
|
|
order = 10,
|
|
type = "range",
|
|
name = L["Clickable Width"],
|
|
desc = L["Controls how big of an area on the screen will accept clicks to target unit."],
|
|
min = 50, max = 200, step = 1,
|
|
set = function(info, value) E.db.nameplates.clickableWidth = value; E:StaticPopup_Show("CONFIG_RL") end,
|
|
},
|
|
clickableHeight = {
|
|
order = 11,
|
|
type = "range",
|
|
name = L["Clickable Height"],
|
|
desc = L["Controls how big of an area on the screen will accept clicks to target unit."],
|
|
min = 10, max = 75, step = 1,
|
|
set = function(info, value) E.db.nameplates.clickableHeight = value; E:StaticPopup_Show("CONFIG_RL") end,
|
|
},
|
|
resetFilters = {
|
|
order = 12,
|
|
name = L["Reset Aura Filters"],
|
|
type = "execute",
|
|
func = function(info)
|
|
E:StaticPopup_Show("RESET_NP_AF") --reset nameplate aurafilters
|
|
end,
|
|
},
|
|
nameColoredGlow = {
|
|
order = 13,
|
|
type = "toggle",
|
|
name = L["Name Colored Glow"],
|
|
desc = L["Use the Name Color of the unit for the Name Glow."],
|
|
},
|
|
comboPoints = {
|
|
order = 12,
|
|
type = "toggle",
|
|
name = L["Combobar"]
|
|
},
|
|
targetedNamePlate = {
|
|
order = 14,
|
|
type = "group",
|
|
guiInline = true,
|
|
name = L["Targeted Nameplate"],
|
|
get = function(info) return E.db.nameplates[ info[getn(info)] ] end,
|
|
set = function(info, value) E.db.nameplates[ info[getn(info)] ] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
useTargetScale = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Use Target Scale"],
|
|
desc = L["Enable/Disable the scaling of targetted nameplates."],
|
|
},
|
|
targetScale = {
|
|
order = 2,
|
|
type = "range",
|
|
isPercent = true,
|
|
name = L["Target Scale"],
|
|
desc = L["Scale of the nameplate that is targetted."],
|
|
min = 0.3, max = 2, step = 0.01,
|
|
disabled = function() return E.db.nameplates.useTargetScale ~= true end,
|
|
},
|
|
nonTargetTransparency = {
|
|
order = 3,
|
|
type = "range",
|
|
isPercent = true,
|
|
name = L["Non-Target Transparency"],
|
|
desc = L["Set the transparency level of nameplates that are not the target nameplate."],
|
|
min = 0, max = 1, step = 0.01,
|
|
},
|
|
spacer1 = {
|
|
order = 4,
|
|
type = 'description',
|
|
name = ' ',
|
|
},
|
|
glowColor = {
|
|
name = L["Target Indicator Color"],
|
|
type = 'color',
|
|
order = 5,
|
|
hasAlpha = true,
|
|
get = function(info)
|
|
local t = E.db.nameplates.glowColor
|
|
local d = P.nameplates.glowColor
|
|
return t.r, t.g, t.b, t.a, d.r, d.g, d.b, d.a
|
|
end,
|
|
set = function(info, r, g, b, a)
|
|
local t = E.db.nameplates.glowColor
|
|
t.r, t.g, t.b, t.a = r, g, b, a
|
|
NP:ConfigureAll()
|
|
end,
|
|
},
|
|
targetGlow = {
|
|
order = 6,
|
|
type = "select",
|
|
--customWidth = 225,
|
|
name = L["Target Indicator"],
|
|
get = function(info) return E.db.nameplates.targetGlow end,
|
|
set = function(info, value) E.db.nameplates.targetGlow = value; NP:ConfigureAll() end,
|
|
values = {
|
|
['none'] = NONE,
|
|
['style1'] = L["Border Glow"],
|
|
['style2'] = L["Background Glow"],
|
|
['style3'] = L["Top Arrow"],
|
|
['style4'] = L["Side Arrows"],
|
|
['style5'] = L["Border Glow"].." + "..L["Top Arrow"],
|
|
['style6'] = L["Background Glow"].." + "..L["Top Arrow"],
|
|
['style7'] = L["Border Glow"].." + "..L["Side Arrows"],
|
|
['style8'] = L["Background Glow"].." + "..L["Side Arrows"],
|
|
},
|
|
},
|
|
alwaysShowTargetHealth = {
|
|
order = 7,
|
|
type = "toggle",
|
|
name = L["Always Show Target Health"],
|
|
-- customWidth = 200,
|
|
},
|
|
},
|
|
},
|
|
clickThrough = {
|
|
order = 15,
|
|
type = "group",
|
|
guiInline = true,
|
|
name = L["Click Through"],
|
|
get = function(info) return E.db.nameplates.clickThrough[ info[getn(info)] ] end,
|
|
set = function(info, value) E.db.nameplates.clickThrough[ info[getn(info)] ] = value; NP:ConfigureAll() end,
|
|
args = {
|
|
friendly = {
|
|
order = 2,
|
|
type = "toggle",
|
|
name = L["Friendly"],
|
|
},
|
|
enemy = {
|
|
order = 3,
|
|
type = "toggle",
|
|
name = L["Enemy"],
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
fontGroup = {
|
|
order = 100,
|
|
type = "group",
|
|
name = L["Fonts"],
|
|
args = {
|
|
font = {
|
|
order = 4,
|
|
type = "select", dialogControl = "LSM30_Font",
|
|
name = L["Font"],
|
|
values = AceGUIWidgetLSMlists.font
|
|
},
|
|
fontSize = {
|
|
order = 5,
|
|
type = "range",
|
|
name = L["Font Size"],
|
|
min = 4, max = 34, step = 1,
|
|
},
|
|
fontOutline = {
|
|
order = 6,
|
|
type = "select",
|
|
name = L["Font Outline"],
|
|
desc = L["Set the font outline."],
|
|
values = {
|
|
["NONE"] = L["None"],
|
|
["OUTLINE"] = "OUTLINE",
|
|
["MONOCHROMEOUTLINE"] = "MONOCROMEOUTLINE",
|
|
["THICKOUTLINE"] = "THICKOUTLINE"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
threatGroup = {
|
|
order = 150,
|
|
type = "group",
|
|
name = L["Threat"],
|
|
-- TODO
|
|
hidden = true,
|
|
get = function(info)
|
|
local t = E.db.nameplates.threat[ info[getn(info) ]]
|
|
local d = P.nameplates.threat[ info[getn(info) ]]
|
|
return t.r, t.g, t.b, t.a, d.r, d.g, d.b
|
|
end,
|
|
set = function(info, r, g, b)
|
|
local t = E.db.nameplates.threat[ info[getn(info) ]]
|
|
t.r, t.g, t.b = r, g, b
|
|
end,
|
|
args = {
|
|
useThreatColor = {
|
|
order = 1,
|
|
type = "toggle",
|
|
name = L["Use Threat Color"],
|
|
get = function(info) return E.db.nameplates.threat.useThreatColor end,
|
|
set = function(info, value) E.db.nameplates.threat.useThreatColor = value end
|
|
},
|
|
goodColor = {
|
|
order = 2,
|
|
type = "color",
|
|
name = L["Good Color"],
|
|
hasAlpha = false,
|
|
disabled = function() return not E.db.nameplates.threat.useThreatColor end
|
|
},
|
|
badColor = {
|
|
order = 3,
|
|
type = "color",
|
|
name = L["Bad Color"],
|
|
hasAlpha = false,
|
|
disabled = function() return not E.db.nameplates.threat.useThreatColor end
|
|
},
|
|
goodTransition = {
|
|
order = 4,
|
|
type = "color",
|
|
name = L["Good Transition Color"],
|
|
hasAlpha = false,
|
|
disabled = function() return not E.db.nameplates.threat.useThreatColor end
|
|
},
|
|
badTransition = {
|
|
order = 5,
|
|
type = "color",
|
|
name = L["Bad Transition Color"],
|
|
hasAlpha = false,
|
|
disabled = function() return not E.db.nameplates.threat.useThreatColor end
|
|
},
|
|
beingTankedByTank = {
|
|
order = 6,
|
|
type = "toggle",
|
|
name = L["Color Tanked"],
|
|
desc = L["Use Tanked Color when a nameplate is being effectively tanked by another tank."],
|
|
get = function(info) return E.db.nameplates.threat[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.threat[ info[getn(info) ]] = value end,
|
|
disabled = function() return not E.db.nameplates.threat.useThreatColor end
|
|
},
|
|
beingTankedByTankColor = {
|
|
order = 7,
|
|
type = "color",
|
|
name = L["Tanked Color"],
|
|
hasAlpha = false,
|
|
disabled = function() return (not E.db.nameplates.threat.beingTankedByTank or not E.db.nameplates.threat.useThreatColor) end
|
|
},
|
|
goodScale = {
|
|
order = 8,
|
|
type = "range",
|
|
name = L["Good Scale"],
|
|
get = function(info) return E.db.nameplates.threat[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.threat[ info[getn(info) ]] = value end,
|
|
min = 0.3, max = 2, step = 0.01,
|
|
isPercent = true
|
|
},
|
|
badScale = {
|
|
order = 9,
|
|
type = "range",
|
|
name = L["Bad Scale"],
|
|
get = function(info) return E.db.nameplates.threat[ info[getn(info) ]] end,
|
|
set = function(info, value) E.db.nameplates.threat[ info[getn(info) ]] = value end,
|
|
min = 0.3, max = 2, step = 0.01,
|
|
isPercent = true
|
|
}
|
|
}
|
|
},
|
|
castGroup = {
|
|
order = 175,
|
|
type = "group",
|
|
name = L["Cast Bar"],
|
|
get = function(info)
|
|
local t = E.db.nameplates[ info[getn(info) ]]
|
|
local d = P.nameplates[ info[getn(info) ]]
|
|
return t.r, t.g, t.b, t.a, d.r, d.g, d.b
|
|
end,
|
|
set = function(info, r, g, b)
|
|
local t = E.db.nameplates[ info[getn(info) ]]
|
|
t.r, t.g, t.b = r, g, b
|
|
NP:ForEachPlate("ConfigureElement_CastBar")
|
|
end,
|
|
args = {
|
|
castColor = {
|
|
order = 1,
|
|
type = "color",
|
|
name = L["Cast Color"],
|
|
hasAlpha = false
|
|
}
|
|
}
|
|
},
|
|
reactions = {
|
|
order = 200,
|
|
type = "group",
|
|
name = L["Reaction Colors"],
|
|
get = function(info)
|
|
local t = E.db.nameplates.reactions[ info[getn(info) ]]
|
|
local d = P.nameplates.reactions[ info[getn(info) ]]
|
|
return t.r, t.g, t.b, t.a, d.r, d.g, d.b
|
|
end,
|
|
set = function(info, r, g, b)
|
|
local t = E.db.nameplates.reactions[ info[getn(info) ]]
|
|
t.r, t.g, t.b = r, g, b
|
|
NP:ConfigureAll()
|
|
end,
|
|
args = {
|
|
bad = {
|
|
order = 1,
|
|
type = "color",
|
|
name = L["Enemy"],
|
|
hasAlpha = false
|
|
},
|
|
neutral = {
|
|
order = 2,
|
|
type = "color",
|
|
name = FACTION_STANDING_LABEL4,
|
|
hasAlpha = false
|
|
},
|
|
good = {
|
|
order = 3,
|
|
type = "color",
|
|
name = L["Friendly NPC"],
|
|
hasAlpha = false
|
|
},
|
|
tapped = {
|
|
order = 4,
|
|
type = "color",
|
|
name = L["Tagged NPC"],
|
|
hasAlpha = false
|
|
},
|
|
friendlyPlayer = {
|
|
order = 5,
|
|
type = "color",
|
|
name = L["Friendly Player"],
|
|
hasAlpha = false
|
|
}
|
|
}
|
|
},
|
|
filters = {
|
|
order = 300,
|
|
type = "group",
|
|
name = FILTERS,
|
|
args = {
|
|
addname = {
|
|
order = 2,
|
|
type = "input",
|
|
name = L["Add Name"],
|
|
get = function(info) return "" end,
|
|
set = function(info, value)
|
|
if E.global["nameplates"]["filter"][value] then
|
|
E:Print(L["Filter already exists!"])
|
|
return
|
|
end
|
|
|
|
E.global["nameplates"]["filter"][value] = {
|
|
["enable"] = true,
|
|
["hide"] = false,
|
|
["customColor"] = false,
|
|
["customScale"] = 1,
|
|
["color"] = {r = 104/255, g = 138/255, b = 217/255}
|
|
}
|
|
UpdateFilterGroup()
|
|
NP:ConfigureAll()
|
|
end
|
|
},
|
|
deletename = {
|
|
order = 3,
|
|
type = "input",
|
|
name = L["Remove Name"],
|
|
get = function(info) return "" end,
|
|
set = function(info, value)
|
|
if G["nameplates"]["filter"][value] then
|
|
E.global["nameplates"]["filter"][value].enable = false
|
|
E:Print(L["You can't remove a default name from the filter, disabling the name."])
|
|
else
|
|
E.global["nameplates"]["filter"][value] = nil
|
|
E.Options.args.nameplates.args.filters.args.filterGroup = nil
|
|
end
|
|
UpdateFilterGroup()
|
|
NP:ConfigureAll()
|
|
end
|
|
},
|
|
selectFilter = {
|
|
order = 3,
|
|
type = "select",
|
|
name = L["Select Filter"],
|
|
get = function(info) return selectedFilter end,
|
|
set = function(info, value) selectedFilter = value; UpdateFilterGroup() end,
|
|
values = function()
|
|
filters = {}
|
|
for filter in pairs(E.global["nameplates"]["filter"]) do
|
|
filters[filter] = filter
|
|
end
|
|
return filters
|
|
end
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
friendlyPlayerGroup = GetUnitSettings("FRIENDLY_PLAYER", L["Friendly Player Frames"]),
|
|
enemyPlayerGroup = GetUnitSettings("ENEMY_PLAYER", L["Enemy Player Frames"]),
|
|
friendlyNPCGroup = GetUnitSettings("FRIENDLY_NPC", L["Friendly NPC Frames"]),
|
|
enemyNPCGroup = GetUnitSettings("ENEMY_NPC", L["Enemy NPC Frames"])
|
|
}
|
|
} |