From 3e3230e8753e7f59581ca9684087271eed2688fc Mon Sep 17 00:00:00 2001 From: shagu Date: Mon, 10 Sep 2018 19:43:20 +0200 Subject: [PATCH] unitframes: rewrite of debuff indicators customizable size, position and appearance: - off: no indicators at all - legacy: tint the whole plate - glow: draws a glowing border - square: draw colored squares - icon: use generic icons --- api/config.lua | 26 +++- api/unitframes.lua | 256 ++++++++++++++++++++++++---------------- img/debuffs/Curse.tga | Bin 0 -> 16428 bytes img/debuffs/Disease.tga | Bin 0 -> 16428 bytes img/debuffs/Magic.tga | Bin 0 -> 16428 bytes img/debuffs/Poison.tga | Bin 0 -> 16428 bytes modules/gui.lua | 70 ++++++++--- pfUI.toc | 2 +- 8 files changed, 231 insertions(+), 123 deletions(-) create mode 100644 img/debuffs/Curse.tga create mode 100644 img/debuffs/Disease.tga create mode 100644 img/debuffs/Magic.tga create mode 100644 img/debuffs/Poison.tga diff --git a/api/config.lua b/api/config.lua index 9357022b..ea8b1957 100644 --- a/api/config.lua +++ b/api/config.lua @@ -160,6 +160,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "player", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "player", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "player", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "player", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "player", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "player", "clickcast", "0") pfUI:UpdateConfig("unitframes", "player", "faderange", "0") pfUI:UpdateConfig("unitframes", "player", "glowaggro", "1") @@ -201,6 +203,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "target", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "target", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "target", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "target", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "target", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "target", "clickcast", "0") pfUI:UpdateConfig("unitframes", "target", "faderange", "0") pfUI:UpdateConfig("unitframes", "target", "glowaggro", "1") @@ -243,6 +247,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "focus", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "focus", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "focus", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "focus", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "focus", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "focus", "clickcast", "0") pfUI:UpdateConfig("unitframes", "focus", "faderange", "0") pfUI:UpdateConfig("unitframes", "focus", "glowaggro", "1") @@ -283,7 +289,9 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "group", "invert_healthbar", "0") pfUI:UpdateConfig("unitframes", "group", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "group", "buff_indicator", "1") - pfUI:UpdateConfig("unitframes", "group", "debuff_indicator", "1") + pfUI:UpdateConfig("unitframes", "group", "debuff_indicator", "2") + pfUI:UpdateConfig("unitframes", "group", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "group", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "group", "clickcast", "0") pfUI:UpdateConfig("unitframes", "group", "faderange", "1") pfUI:UpdateConfig("unitframes", "group", "glowaggro", "1") @@ -326,6 +334,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "grouptarget", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "grouptarget", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "grouptarget", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "grouptarget", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "grouptarget", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "grouptarget", "clickcast", "0") pfUI:UpdateConfig("unitframes", "grouptarget", "faderange", "1") pfUI:UpdateConfig("unitframes", "grouptarget", "glowaggro", "1") @@ -367,6 +377,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "grouppet", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "grouppet", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "grouppet", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "grouppet", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "grouppet", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "grouppet", "clickcast", "0") pfUI:UpdateConfig("unitframes", "grouppet", "faderange", "1") pfUI:UpdateConfig("unitframes", "grouppet", "glowaggro", "1") @@ -407,7 +419,9 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "raid", "invert_healthbar", "0") pfUI:UpdateConfig("unitframes", "raid", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "raid", "buff_indicator", "1") - pfUI:UpdateConfig("unitframes", "raid", "debuff_indicator", "1") + pfUI:UpdateConfig("unitframes", "raid", "debuff_indicator", "2") + pfUI:UpdateConfig("unitframes", "raid", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "raid", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "raid", "clickcast", "0") pfUI:UpdateConfig("unitframes", "raid", "faderange", "1") pfUI:UpdateConfig("unitframes", "raid", "glowaggro", "1") @@ -449,6 +463,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "ttarget", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "ttarget", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "ttarget", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "ttarget", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "ttarget", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "ttarget", "clickcast", "0") pfUI:UpdateConfig("unitframes", "ttarget", "faderange", "0") pfUI:UpdateConfig("unitframes", "ttarget", "glowaggro", "1") @@ -490,6 +506,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "pet", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "pet", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "pet", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "pet", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "pet", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "pet", "clickcast", "0") pfUI:UpdateConfig("unitframes", "pet", "faderange", "0") pfUI:UpdateConfig("unitframes", "pet", "glowaggro", "1") @@ -531,6 +549,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "ptarget", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "ptarget", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "ptarget", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "ptarget", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "ptarget", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "ptarget", "clickcast", "0") pfUI:UpdateConfig("unitframes", "ptarget", "faderange", "0") pfUI:UpdateConfig("unitframes", "ptarget", "glowaggro", "1") @@ -572,6 +592,8 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("unitframes", "fallback", "verticalbar", "0") pfUI:UpdateConfig("unitframes", "fallback", "buff_indicator", "0") pfUI:UpdateConfig("unitframes", "fallback", "debuff_indicator", "0") + pfUI:UpdateConfig("unitframes", "fallback", "debuff_ind_pos", "CENTER") + pfUI:UpdateConfig("unitframes", "fallback", "debuff_ind_size", ".65") pfUI:UpdateConfig("unitframes", "fallback", "clickcast", "0") pfUI:UpdateConfig("unitframes", "fallback", "faderange", "0") pfUI:UpdateConfig("unitframes", "fallback", "glowaggro", "1") diff --git a/api/unitframes.lua b/api/unitframes.lua index 72298d40..628daf3a 100644 --- a/api/unitframes.lua +++ b/api/unitframes.lua @@ -860,49 +860,54 @@ function pfUI.uf:RefreshUnitAnimation(unitframe) end end -function pfUI.uf:RefreshUnitState(unitframe) - if UnitIsConnected(this.label .. this.id) or (pfUI.unlock and pfUI.unlock:IsShown()) then - -- online (or unlock) - if unitframe.config.faderange == "1" then - if pfUI.api.UnitInRange(unitframe.label .. unitframe.id, 4) or (pfUI.unlock and pfUI.unlock:IsShown()) then - if unitframe:GetAlpha() ~= 1 then - unitframe:SetAlpha(1) - if unitframe.config.portrait == "bar" then - unitframe.portrait:SetAlpha(pfUI_config.unitframes.portraitalpha) - end - end - else - if unitframe:GetAlpha() ~= .5 then - unitframe:SetAlpha(.5) - if unitframe.config.portrait == "bar" then - unitframe.portrait:SetAlpha(pfUI_config.unitframes.portraitalpha) - end - end - end - else - if unitframe:GetAlpha() ~= 1 then - unitframe:SetAlpha(1) - if unitframe.config.portrait == "bar" then - unitframe.portrait:SetAlpha(pfUI_config.unitframes.portraitalpha) - end - end - end - else - -- offline - unitframe.hp.bar:SetMinMaxValues(0, 100) - unitframe.power.bar:SetMinMaxValues(0, 100) - unitframe.hp.bar:SetValue(0) - unitframe.power.bar:SetValue(0) +function pfUI.uf:RefreshUnitState(unit) + local alpha = 1 + local unlock = pfUI.unlock and pfUI.unlock:IsShown() or nil - if ( unitframe.label == "party" or unitframe.label == "raid" ) and unitframe:GetAlpha() ~= .25 then - unitframe:SetAlpha(.25) - if unitframe.config.portrait == "bar" then - unitframe.portrait:SetAlpha(pfUI_config.unitframes.portraitalpha) - end + if not UnitIsConnected(unit.label .. unit.id) and not unlock then + -- offline + alpha = .25 + unit.hp.bar:SetMinMaxValues(0, 100) + unit.power.bar:SetMinMaxValues(0, 100) + unit.hp.bar:SetValue(0) + unit.power.bar:SetValue(0) + elseif unit.config.faderange == "1" and not pfUI.api.UnitInRange(unit.label .. unit.id, 4) and not unlock then + alpha = .5 + end + + -- skip if alpha is already correct + if floor(unit:GetAlpha()*10+.5) == floor(alpha*10+.5) then return end + + -- set unitframe alpha + unit:SetAlpha(alpha) + + -- refresh portrait alpha + if unit.config.portrait == "bar" then + unit.portrait:SetAlpha(pfUI_config.unitframes.portraitalpha) + end + + -- refresh debuff indicator alpha + local disptype = unit.config.debuff_indicator + local indicator = unit.hp.bar.debuffindicators + if indicator then + indicator:SetAlpha(0) + if ( disptype == "4" or disptype == "3" ) then + indicator:SetAlpha(1) + elseif disptype == "2" then + indicator:SetAlpha(.4) + elseif disptype == "1" then + indicator:SetAlpha(.2) end end end +local pfDebuffColors = { + ["Magic"] = { 0.1, 0.7, 0.8, 1 }, + ["Poison"] = { 0.2, 0.7, 0.3, 1 }, + ["Curse"] = { 0.6, 0.2, 0.6, 1 }, + ["Disease"] = { 0.9, 0.7, 0.2, 1 } +} + function pfUI.uf:RefreshUnit(unit, component) -- break early on misconfigured UF's if not unit.label then return end @@ -1152,71 +1157,116 @@ function pfUI.uf:RefreshUnit(unit, component) -- indicators if component == "all" or component == "aura" then pfUI.uf:SetupDebuffFilter() - if table.getn(pfUI.uf.debuffs) > 0 and unit.config.debuff_indicator == "1" then - local infected = false - for i=1,32 do - local _,_,dtype = UnitDebuff(unitstr, i) - if dtype then - for _, filter in pairs(pfUI.uf.debuffs) do - if filter == string.lower(dtype) then - if dtype == "Magic" then - if not unit.hp.bar.magic then - unit.hp.bar.magic = CreateFrame("Frame", unit.hp.bar) - unit.hp.bar.magic:SetAllPoints(unit) - unit.hp.bar.magic:SetParent(unit.hp.bar) - unit.hp.bar.magic.tex = unit.hp.bar.magic:CreateTexture("OVERLAY") - unit.hp.bar.magic.tex:SetAllPoints(unit.hp.bar.magic) - unit.hp.bar.magic.tex:SetTexture(.2,.8,.8,.4) - end - unit.hp.bar.magic:Show() - infected = true + if table.getn(pfUI.uf.debuffs) > 0 and unit.config.debuff_indicator ~= "0" then + unit.hp.bar.debuffindicators = unit.hp.bar.debuffindicators or CreateFrame("Frame", nil, unit.hp.bar) - elseif dtype == "Poison" then - if not unit.hp.bar.poison then - unit.hp.bar.poison = CreateFrame("Frame", unit.hp.bar) - unit.hp.bar.poison:SetAllPoints(unit) - unit.hp.bar.poison:SetParent(unit.hp.bar) - unit.hp.bar.poison.tex = unit.hp.bar.poison:CreateTexture("OVERLAY") - unit.hp.bar.poison.tex:SetAllPoints(unit.hp.bar.poison) - unit.hp.bar.poison.tex:SetTexture(.2,.8,.2,.4) - end - unit.hp.bar.poison:Show() - infected = true + -- 0 = OFF, 1 = Legacy, 2 = Glow, 3 = Square, 4 = Icons + local disptype = unit.config.debuff_indicator + local indicator = unit.hp.bar.debuffindicators + local indipos = unit.config.debuff_ind_pos + local count = 0 + local size - elseif dtype == "Curse" then - if not unit.hp.bar.curse then - unit.hp.bar.curse = CreateFrame("Frame", unit.hp.bar) - unit.hp.bar.curse:SetAllPoints(unit) - unit.hp.bar.curse:SetParent(unit.hp.bar) - unit.hp.bar.curse.tex = unit.hp.bar.curse:CreateTexture("OVERLAY") - unit.hp.bar.curse.tex:SetAllPoints(unit.hp.bar.curse) - unit.hp.bar.curse.tex:SetTexture(.8,.2,.8,.4) - end - unit.hp.bar.curse:Show() - infected = true - - elseif dtype == "Disease" then - if not unit.hp.bar.disease then - unit.hp.bar.disease = CreateFrame("Frame", unit.hp.bar) - unit.hp.bar.disease:SetAllPoints(unit) - unit.hp.bar.disease:SetParent(unit.hp.bar) - unit.hp.bar.disease.tex = unit.hp.bar.disease:CreateTexture("OVERLAY") - unit.hp.bar.disease.tex:SetAllPoints(unit.hp.bar.disease) - unit.hp.bar.disease.tex:SetTexture(.8,.8,.2,.4) - end - unit.hp.bar.disease:Show() - infected = true - end - end - end + if disptype == "4" or disptype == "3" then + size = unit.hp.bar:GetHeight() * tonumber(unit.config.debuff_ind_size) + if size ~= indicator.size or disptype ~= indicator.disp or indipos ~= indicator.ipos then + indicator:ClearAllPoints() + indicator:SetPoint(indipos, 0, 0) + indicator:SetHeight(size) + indicator:SetWidth(size) + indicator.size = size + indicator.disp = disptype + indicator.ipos = indipos + end + elseif disptype == "2" or disptype == "1" then + size = "FULL" + if size ~= indicator.size or disptype ~= indicator.disp or indipos ~= indicator.ipos then + indicator:ClearAllPoints() + indicator:SetAllPoints(unit.hp.bar) + indicator.size = size + indicator.disp = disptype + indicator.ipos = indipos end end - if infected == false then - if unit.hp.bar.magic then unit.hp.bar.magic:Hide() end - if unit.hp.bar.poison then unit.hp.bar.poison:Hide() end - if unit.hp.bar.curse then unit.hp.bar.curse:Hide() end - if unit.hp.bar.disease then unit.hp.bar.disease:Hide() end + + for _, debuff in pairs(pfUI.uf.debuffs) do + indicator[debuff] = indicator[debuff] or CreateFrame("Frame", nil, indicator) + indicator[debuff]:SetParent(indicator) + indicator[debuff].tex = indicator[debuff].tex or indicator[debuff]:CreateTexture(nil) + indicator[debuff].tex:SetAllPoints(indicator[debuff]) + + if indicator.size ~= indicator[debuff].size or disptype ~= indicator[debuff].disp then + if disptype == "4" then + indicator[debuff].tex:SetTexture("Interface\\AddOns\\pfUI\\img\\debuffs\\" .. debuff) + indicator[debuff].tex:SetVertexColor(unpack(pfDebuffColors[debuff])) + indicator[debuff].tex:Show() + indicator[debuff]:ClearAllPoints() + indicator[debuff]:SetHeight(size) + indicator[debuff]:SetWidth(size) + indicator[debuff]:SetBackdrop(nil) + elseif disptype == "3" then + indicator[debuff].tex:SetTexture(unpack(pfDebuffColors[debuff])) + indicator[debuff].tex:SetVertexColor(1,1,1,1) + indicator[debuff].tex:Show() + indicator[debuff]:ClearAllPoints() + indicator[debuff]:SetHeight(size) + indicator[debuff]:SetWidth(size) + indicator[debuff]:SetBackdrop(nil) + elseif disptype == "2" then + indicator[debuff].tex:Hide() + indicator[debuff]:SetAllPoints(unit.hp.bar) + indicator[debuff]:SetBackdrop({ + edgeFile = "Interface\\AddOns\\pfUI\\img\\glow", edgeSize = 8, + insets = {left = 0, right = 0, top = 0, bottom = 0}, + }) + indicator[debuff]:SetBackdropBorderColor(unpack(pfDebuffColors[debuff])) + elseif disptype == "1" then + indicator[debuff].tex:SetTexture(unpack(pfDebuffColors[debuff])) + indicator[debuff].tex:SetVertexColor(1,1,1,1) + indicator[debuff].tex:Show() + indicator[debuff]:SetAllPoints(unit.hp.bar) + indicator[debuff]:SetBackdrop(nil) + end + + indicator[debuff].size = indicator.size + indicator[debuff].disp = indicator.disp + end + + indicator[debuff].visible = nil + + for i=1,16 do + local _, _, dtype = UnitDebuff(unitstr, i) + if dtype == debuff then + indicator[debuff].visible = true + end + end + + if indicator[debuff].visible then + indicator[debuff]:Show() + indicator:Show() + indicator:SetAlpha(0) + if disptype == "4" or disptype == "3" then + indicator:SetAlpha(1) + elseif disptype == "2" then + indicator:SetAlpha(.4) + elseif disptype == "1" then + indicator:SetAlpha(.2) + end + + if disptype == "4" or disptype == "3" then + indicator[debuff]:SetPoint("LEFT", indicator, "LEFT", count*(size+1), 0) + count = count + 1 + end + else + indicator[debuff]:Hide() + end end + + if disptype == "4" or disptype == "3" then + indicator:SetWidth(count*(size+1)) + end + elseif unit.hp.bar.debuffindicators then + unit.hp.bar.debuffindicators:Hide() end pfUI.uf:SetupBuffFilter() @@ -1379,6 +1429,8 @@ function pfUI.uf:RefreshUnit(unit, component) unit.hp.bar:SetStatusBarColor(.5,.5,.5,.5) end end + + pfUI.uf:RefreshUnitState(unit) end function pfUI.uf:ClickAction(button) @@ -1507,19 +1559,19 @@ function pfUI.uf:SetupDebuffFilter() local _, myclass = UnitClass("player") pfUI.uf.debuffs = {} if myclass == "PALADIN" or myclass == "PRIEST" or myclass == "WARLOCK" or pfUI_config.unitframes.debuffs_class == "0" then - table.insert(pfUI.uf.debuffs, "magic") + table.insert(pfUI.uf.debuffs, "Magic") end if myclass == "DRUID" or myclass == "PALADIN" or myclass == "SHAMAN" or pfUI_config.unitframes.debuffs_class == "0" then - table.insert(pfUI.uf.debuffs, "poison") + table.insert(pfUI.uf.debuffs, "Poison") end if myclass == "PRIEST" or myclass == "PALADIN" or myclass == "SHAMAN" or pfUI_config.unitframes.debuffs_class == "0" then - table.insert(pfUI.uf.debuffs, "disease") + table.insert(pfUI.uf.debuffs, "Disease") end if myclass == "DRUID" or myclass == "MAGE" or pfUI_config.unitframes.debuffs_class == "0" then - table.insert(pfUI.uf.debuffs, "curse") + table.insert(pfUI.uf.debuffs, "Curse") end end diff --git a/img/debuffs/Curse.tga b/img/debuffs/Curse.tga new file mode 100644 index 0000000000000000000000000000000000000000..ac9b832f64aca42a15cd2e4cf02d67ee793019f1 GIT binary patch literal 16428 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 literal 0 HcmV?d00001 diff --git a/img/debuffs/Poison.tga b/img/debuffs/Poison.tga new file mode 100644 index 0000000000000000000000000000000000000000..843bcb595f937dc136d4c13b82d059e8ad2da482 GIT binary patch literal 16428 zcmeI3TZmp)6~`x&v`%xIv07uGrY316$hm;n)kLd6jAZdEk43AQColXNDuX`9Q;#NThSS3Eg0=klHJq*{^% z|JnQOz1G@m?X&jveACm@+Y@w8&pkcw?Te?Y>D3-+vj@(fKi>-$f#v7Uox5*pYU(la zBVa!`3{HU43FZ$2>qg++t_=C*Kpp=L+cu4CSr>NC!PW(&Yr$6Xqu@Dk3QT~yB(E~c zj;c$Ylx*Hq;XF-;xc(CkM@G>|CjwYD5%sP4G&5~v6+@0F! z|9|NRY+8s-n@D}vCqdSB6nJ7{V&YMFH%v}W-of)Kuq4GA;D2Jz4 zK5#vFH?S|4q-V?L25(sk--6WU0rJ`)X_L0CD3fhkN58K|_dXEqxjyXzE6e6$>h*bm z_`R3(i$ELy0GmucaKe~zH@5o8Pd+rFT_FWDAxpv~IeXk9?g_1!ft=6T1M zaaL#t?a#sYyW#l-iG?Q=>7t!_FZmrOx{%XE|MSar?g!kBz-C!zp39g!WVPi3yhuH zYqYf(nV*9uR_4Q5gJrCL@ z?a0riK0gUc$3U{H4?ca+7v=P=FqY{X?^wKNkdAxiQco47y=}zI1?leox^MU!_$K%U z_#=qce z%I1N&;AZeM5V7!2@;4OOlP!mD5zrUuZ1Qo&*@8OxoFk;u^xGEF$}whJ`0qX`drzZ| zZs_|6UzhbG#aOIKj0veX=_82*GZA{4(ne@zOBS@ zdW-FodbaouuwP!p|6A+WmF3YVWM2i+{%oCj$_`D}@ErpEcjW8Ko{@9y_-T@FD|yW^ zkZijJrOzbAKP0_mZY;Ac>huY@my?b|Q64Gf5x?G{tcvnFDg3U}UkC16+M)?;-ik8c z{a1jo>p5nyj!k(UWLJT>A38BheXL(c;airkuX@HV&x{dYWVDYf{)$h9878y(X!0(g7=b6Lq%G+J{868#rH;#X8 zKz|?D1*Sk-6uRC(;bWlk%v01K$X3PwVR$6xzYi4YDJv&dy`PFb)U>h|{@4f3t+n>M zMfTxScK$n@=R<$v^)GaxV=3_7w@rGMe*I9i(KJOz)%rJ*jP7{<6E-35I`AbB`;4Tr zaq@Lj^A9|Y&%b%Qm}}mTzHVaRnB$dLnsHB&Z>!F8ipkRR zFZMRR|H#{buD1d2t&HJL$+<(>+UL7```Kso)V=>`eE*egFY>heKHwc*r}QTTX53GN z-cD0=`Cj)XBMR@o)JvSKh3`n>t$qJFn@#BOo4^**PVNQYK<2Z`&Ze_T8T0;~=sOOi z!uwBkQ@;T02JShWzjlJk`|l#Vki8!K1k^nj{T1H#6zS`<99_=E`Vi}yz7?Jw>3hH5 zZiMF~kZOJZD6@ zSMOh|?#DduKUk)#lR9k%+O7|hK2?4*NHO49Htw2heg7=84PA@Dlb~#0IM&ViF575Dt%>~{~w6))9{QW!ZX6&rPo`XPg z9p42i<0s^2OL@Pyq2qVJ`87}OPr6?B(Bb&i*4TS={QC!ON513Vzs%-ywk*ZvUFde6 z&y#D^>MVb!dF1DVZQvA;8vp*qwvl%n>;PwgRQda-Dx2wpUgo)b(e*UQ#=$u8ad(w` zQ9Zg^{ryw4gWjcJ4~TfG{QXbuK!SxOj$WPF3a!VqD}O#0Q)kw zI~2zcopjIy?HV0l(v2xtQziPi<}G_m9yB*t$CDjW}?OInR{- z{x#%_Qsi#{Uj;|OcR{UlkNpR)^Sn01c-OYpfBzb`quV%eESv$7?bZJMbLh#Z=;%vx z!sFyC?>pe}e=auLHi-A3P1@G#d!NPDrL^Ik7<**0)3G;{_M45)3+a7cM_PF1r=9=l z@86>@u;YsT|A$N;xIb`@fv-HCi_y3RCK8QTyq8E7g7XSaco%{&!JJTU> t0{G2Un77Qjx9tDFhVNI?w_Xo?^5gffe_-$vgPS+4d+1|>8`j_2^B>tRMxOux literal 0 HcmV?d00001 diff --git a/modules/gui.lua b/modules/gui.lua index 9229c4d6..cb3a1fcd 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -491,6 +491,23 @@ pfUI:RegisterModule("gui", function () "off:" .. T["Disabled"] } + pfUI.gui.dropdowns.uf_debuff_indicator = { + "0:" .. T["Disabled"], + "1:" .. T["Legacy"], + "2:" .. T["Glow"], + "3:" .. T["Square"], + "4:" .. T["Icon"] + } + + pfUI.gui.dropdowns.uf_debuff_indicator_size = { + ".10:" .. T["10%"], + ".25:" .. T["25%"], + ".35:" .. T["35%"], + ".50:" .. T["50%"], + ".65:" .. T["65%"], + ".75:" .. T["75%"], + ".90:" .. T["90%"], + } pfUI.gui.dropdowns.uf_layout = { "default:" .. T["Default"], @@ -559,6 +576,18 @@ pfUI:RegisterModule("gui", function () "off:" .. T["Disabled"] } + pfUI.gui.dropdowns.positions = { + "TOPLEFT:" .. T["Top Left"], + "TOP:" .. T["Top"], + "TOPRIGHT:" .. T["Top Right"], + "LEFT:" .. T["Left"], + "CENTER:" .. T["Center"], + "RIGHT:" .. T["Right"], + "BOTTOMLEFT:" .. T["Bottom Left"], + "BOTTOM:" .. T["Bottom"], + "BOTTOMRIGHT:" .. T["Bottom Right"], + } + pfUI.gui.dropdowns.num_actionbar_buttons = BarLayoutOptions(NUM_ACTIONBAR_BUTTONS) pfUI.gui.dropdowns.num_shapeshift_slots = BarLayoutOptions(NUM_SHAPESHIFT_SLOTS) pfUI.gui.dropdowns.num_pet_action_slots = BarLayoutOptions(NUM_PET_ACTION_SLOTS) @@ -858,7 +887,6 @@ pfUI:RegisterModule("gui", function () -- build config entries CreateConfig(update[c], this, T["Display Frame"] .. ": " .. t, C.unitframes[c], "visible", "checkbox") - CreateConfig(update[c], this, T["Show PvP-Flag Indicator"], C.unitframes[c], "showPVP", "checkbox") CreateConfig(update[c], this, T["Enable Mouseover Tooltip"], C.unitframes[c], "showtooltip", "checkbox") CreateConfig(update[c], this, T["Enable Clickcast"], C.unitframes[c], "clickcast", "checkbox") CreateConfig(update[c], this, T["Enable Range Fading"], C.unitframes[c], "faderange", "checkbox") @@ -867,6 +895,8 @@ pfUI:RegisterModule("gui", function () CreateConfig(update[c], this, T["Portrait Position"], C.unitframes[c], "portrait", "dropdown", pfUI.gui.dropdowns.uf_portrait_position) CreateConfig(update[c], this, T["Status Bar Texture"], C.unitframes[c], "bartexture", "dropdown", pfUI.gui.dropdowns.uf_bartexture) CreateConfig(update[c], this, T["UnitFrame Spacing"], C.unitframes[c], "pspace") + CreateConfig(update[c], this, T["Show PvP-Flag"], C.unitframes[c], "showPVP", "checkbox") + CreateConfig(update[c], this, T["Buffs Class Buffs"], C.unitframes[c], "buff_indicator", "checkbox") CreateConfig(update[c], this, T["Healthbar"], nil, nil, "header") CreateConfig(update[c], this, T["Health Bar Width"], C.unitframes[c], "width") @@ -885,19 +915,10 @@ pfUI:RegisterModule("gui", function () CreateConfig(update[c], this, T["Right Text"], C.unitframes[c], "txtpowerright", "dropdown", pfUI.gui.dropdowns.uf_texts) CreateConfig(update[c], this, T["Power Bar Anchor"], C.unitframes[c], "panchor", "dropdown", pfUI.gui.dropdowns.uf_powerbar_position) - CreateConfig(update[c], this, T["Buffs"], nil, nil, "header") - CreateConfig(update[c], this, T["Buff Position"], C.unitframes[c], "buffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position) - CreateConfig(update[c], this, T["Buff Size"], C.unitframes[c], "buffsize") - CreateConfig(update[c], this, T["Buff Limit"], C.unitframes[c], "bufflimit") - CreateConfig(update[c], this, T["Buffs Per Row"], C.unitframes[c], "buffperrow") - CreateConfig(update[c], this, T["Enable Buff Indicators"], C.unitframes[c], "buff_indicator", "checkbox") - - CreateConfig(update[c], this, T["Debuffs"], nil, nil, "header") - CreateConfig(update[c], this, T["Debuff Position"], C.unitframes[c], "debuffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position) - CreateConfig(update[c], this, T["Debuff Size"], C.unitframes[c], "debuffsize") - CreateConfig(update[c], this, T["Debuff Limit"], C.unitframes[c], "debufflimit") - CreateConfig(update[c], this, T["Debuffs Per Row"], C.unitframes[c], "debuffperrow") - CreateConfig(update[c], this, T["Enable Debuff Indicators"], C.unitframes[c], "debuff_indicator", "checkbox") + CreateConfig(update[c], this, T["Combat Text"], nil, nil, "header") + CreateConfig(update[c], this, T["Show Combat Text"], C.unitframes[c], "hitindicator", "checkbox") + CreateConfig(update[c], this, T["Combat Text Font"], C.unitframes[c], "hitindicatorfont", "dropdown", pfUI.gui.dropdowns.fonts) + CreateConfig(update[c], this, T["Combat Text Size"], C.unitframes[c], "hitindicatorsize") CreateConfig(update[c], this, T["Text Colors"], nil, nil, "header") CreateConfig(update[c], this, T["Enable Health Color"], C.unitframes[c], "healthcolor", "checkbox") @@ -905,10 +926,23 @@ pfUI:RegisterModule("gui", function () CreateConfig(update[c], this, T["Enable Level Color"], C.unitframes[c], "levelcolor", "checkbox") CreateConfig(update[c], this, T["Enable Class Color"], C.unitframes[c], "classcolor", "checkbox") - CreateConfig(update[c], this, T["Hit Indicator"], nil, nil, "header") - CreateConfig(update[c], this, T["Enable Hit Indicator"], C.unitframes[c], "hitindicator", "checkbox") - CreateConfig(update[c], this, T["Hit Indicator Text Font"], C.unitframes[c], "hitindicatorfont", "dropdown", pfUI.gui.dropdowns.fonts) - CreateConfig(update[c], this, T["Hit Indicator Text Size"], C.unitframes[c], "hitindicatorsize") + CreateConfig(update[c], this, T["Debuff Indicators"], nil, nil, "header") + CreateConfig(update[c], this, T["Debuff Indicator Display"], C.unitframes[c], "debuff_indicator", "dropdown", pfUI.gui.dropdowns.uf_debuff_indicator) + CreateConfig(update[c], this, T["Debuff Indicator Position"], C.unitframes[c], "debuff_ind_pos", "dropdown", pfUI.gui.dropdowns.positions) + CreateConfig(update[c], this, T["Debuff Indicator Size"], C.unitframes[c], "debuff_ind_size", "dropdown", pfUI.gui.dropdowns.uf_debuff_indicator_size) + + CreateConfig(update[c], this, T["Buffs"], nil, nil, "header") + CreateConfig(update[c], this, T["Buff Position"], C.unitframes[c], "buffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position) + CreateConfig(update[c], this, T["Buff Size"], C.unitframes[c], "buffsize") + CreateConfig(update[c], this, T["Buff Limit"], C.unitframes[c], "bufflimit") + CreateConfig(update[c], this, T["Buffs Per Row"], C.unitframes[c], "buffperrow") + + CreateConfig(update[c], this, T["Debuffs"], nil, nil, "header") + CreateConfig(update[c], this, T["Debuff Position"], C.unitframes[c], "debuffs", "dropdown", pfUI.gui.dropdowns.uf_buff_position) + CreateConfig(update[c], this, T["Debuff Size"], C.unitframes[c], "debuffsize") + CreateConfig(update[c], this, T["Debuff Limit"], C.unitframes[c], "debufflimit") + CreateConfig(update[c], this, T["Debuffs Per Row"], C.unitframes[c], "debuffperrow") + this.setup = true end end) diff --git a/pfUI.toc b/pfUI.toc index 2998febb..d019e043 100644 --- a/pfUI.toc +++ b/pfUI.toc @@ -2,7 +2,7 @@ ## Title: |cff33ffccpf|cffffffffUI ## Author: Shagu ## Notes: A complete user interface replacement. -## Version: 3.14.2 +## Version: 3.15 ## SavedVariables: pfUI_profiles, pfUI_addon_profiles, pfUI_cache ## SavedVariablesPerCharacter: pfUI_config, pfUI_init, pfUI_playerDB