diff --git a/HideCoAUI/HideCoAUI.lua b/HideCoAUI/HideCoAUI.lua index 6d37134..816ef76 100644 --- a/HideCoAUI/HideCoAUI.lua +++ b/HideCoAUI/HideCoAUI.lua @@ -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 = {} diff --git a/HideCoAUI/Options.lua b/HideCoAUI/Options.lua index 9721277..3fa8771 100644 --- a/HideCoAUI/Options.lua +++ b/HideCoAUI/Options.lua @@ -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()