Support per-class frame display names, rename Pyromancer segment bar to Ember gauge

This commit is contained in:
2026-07-08 16:19:00 +02:00
parent 6165bbfe6e
commit f3a58b846d
2 changed files with 60 additions and 6 deletions
+13
View File
@@ -34,6 +34,19 @@ HideCoAUI.FRAMES = {
-- "CoASpellActivationOverlay", -- found via full frame scan, deliberately left without a checkbox
}
HideCoAUI.FRAME_DISPLAY_NAMES = {
PYROMANCER = {
CoAResourceSegmentBar = "Ember gauge",
},
}
local function GetFrameDisplayName(class, frameName)
local classNames = HideCoAUI.FRAME_DISPLAY_NAMES[class]
return classNames and classNames[frameName]
end
HideCoAUI.GetFrameDisplayName = GetFrameDisplayName
local function CreateDefaultClassSettings()
local classSettings = {}
+47 -6
View File
@@ -196,6 +196,27 @@ local TAB_HEIGHT = 18
local hideClassButton, showClassButton
local function GetOrderedFrameNames(class)
local named = {}
local generic = {}
for _, frameName in ipairs(HideCoAUI.FRAMES) do
if HideCoAUI.GetFrameDisplayName(class, frameName) then
table.insert(named, frameName)
else
table.insert(generic, frameName)
end
end
for _, frameName in ipairs(generic) do
table.insert(named, frameName)
end
return named
end
local function SelectClass(class)
selectedClass = class
@@ -219,20 +240,40 @@ local function SelectClass(class)
overrideNoticeText:Hide()
end
for _, frameName in ipairs(HideCoAUI.FRAMES) do
local previousCheckAnchor = classLabelHeader
local previousCheckSpacing = -19
local previousCheckXOffset = 16
checks[frameName]:SetChecked(HideCoAUI.GetClassSettings()[class][frameName])
for _, frameName in ipairs(GetOrderedFrameNames(class)) do
local check = checks[frameName]
check:ClearAllPoints()
check:SetPoint("TOPLEFT", previousCheckAnchor, "BOTTOMLEFT", previousCheckXOffset, previousCheckSpacing)
local customName = HideCoAUI.GetFrameDisplayName(class, frameName)
local label = customName and ("Hide " .. customName .. " (" .. frameName .. ")") or ("Hide " .. frameName)
_G[check:GetName() .. "Text"]:SetText(label)
check:SetChecked(HideCoAUI.GetClassSettings()[class][frameName])
if overridden then
checks[frameName]:Disable()
_G[checks[frameName]:GetName() .. "Text"]:SetTextColor(0.5, 0.5, 0.5)
check:Disable()
_G[check:GetName() .. "Text"]:SetTextColor(0.5, 0.5, 0.5)
else
checks[frameName]:Enable()
_G[checks[frameName]:GetName() .. "Text"]:SetTextColor(1, 1, 1)
check:Enable()
_G[check:GetName() .. "Text"]:SetTextColor(1, 1, 1)
end
previousCheckAnchor = check
previousCheckSpacing = -8
previousCheckXOffset = 0
end
hideClassButton:ClearAllPoints()
hideClassButton:SetPoint("TOPLEFT", previousCheckAnchor, "BOTTOMLEFT", 0, -16)
if overridden then
hideClassButton:Disable()
showClassButton:Disable()