diff --git a/Interface/AddOns/SVUI/libs/oUF/elements/aura.lua b/Interface/AddOns/SVUI/libs/oUF/elements/aura.lua index 1e12f1c..ccaba42 100644 --- a/Interface/AddOns/SVUI/libs/oUF/elements/aura.lua +++ b/Interface/AddOns/SVUI/libs/oUF/elements/aura.lua @@ -31,14 +31,23 @@ local createAuraIcon = function(icons, index) button:SetHeight(icons.size or 16) local cd = CreateFrame("Cooldown", nil, button) - cd:SetAllPoints(button) + cd:SetPoint("TOPLEFT", button, "TOPLEFT", 1, -1) + cd:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -1, 1) - local icon = button:CreateTexture(nil, "BORDER") - icon:SetAllPoints(button) + local text = cd:CreateFontString(nil, "OVERLAY") + text:SetFont(icons.textFont or [[Fonts\FRIZQT__.TTF]], icons.textSize or 10, icons.textOutline or "NONE") + text:SetPoint("CENTER", 1, 1) + text:SetJustifyH("CENTER") + + local icon = button:CreateTexture(nil, "ARTWORK") + icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) + icon:SetPoint("TOPLEFT", button, "TOPLEFT", 1, -1) + icon:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -1, 1) local count = button:CreateFontString(nil, "OVERLAY") - count:SetFontObject(NumberFontNormal) + count:SetFont(icons.textFont or [[Fonts\FRIZQT__.TTF]], icons.textSize or 10, icons.textOutline or "NONE") count:SetPoint("BOTTOMRIGHT", button, "BOTTOMRIGHT", -1, 0) + count:SetJustifyH("RIGHT") local overlay = button:CreateTexture(nil, "OVERLAY") overlay:SetTexture"Interface\\Buttons\\UI-Debuff-Overlays" @@ -63,6 +72,7 @@ local createAuraIcon = function(icons, index) button.icon = icon button.count = count button.cd = cd + button.text = text if(icons.PostCreateIcon) then icons:PostCreateIcon(button) end diff --git a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_AuraBars/oUF_AuraBars.lua b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_AuraBars/oUF_AuraBars.lua index 38df462..a71679f 100644 --- a/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_AuraBars/oUF_AuraBars.lua +++ b/Interface/AddOns/SVUI/libs/oUF_Plugins/oUF_AuraBars/oUF_AuraBars.lua @@ -74,13 +74,18 @@ local function CreateAuraBar(oUF, anchor) frame:SetHeight(auraBarParent.auraBarHeight or 20) frame:SetWidth((auraBarParent.auraBarWidth or auraBarParent:GetWidth()) - (frame:GetHeight() + (auraBarParent.gap or 0))) frame.anchor = anchor + + local bg = frame:CreateTexture(nil, "BORDER") + bg:SetAllPoints(frame) + bg:SetTexture(0, 0, 0, 0.25) + frame.bg = bg -- the main bar local statusBar = CreateFrame("StatusBar", nil, frame) - statusBar:SetStatusBarTexture(auraBarParent.auraBarTexture or [[Interface\TargetingFrame\UI-StatusBar]]) + statusBar:SetStatusBarTexture(auraBarParent.barTexture or [[Interface\TargetingFrame\UI-StatusBar]]) statusBar:SetAlpha(auraBarParent.fgalpha or 1) - statusBar:SetAllPoints(frame) - + statusBar:SetPoint("TOPLEFT", frame, "TOPLEFT", 1, -1) + statusBar:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -1, 1) frame.statusBar = statusBar if auraBarParent.down == true then @@ -113,28 +118,25 @@ local function CreateAuraBar(oUF, anchor) statusBar.iconHolder:SetScript('OnLeave', OnLeave) statusBar.iconHolder.UpdateTooltip = UpdateTooltip - statusBar.icon = statusBar.iconHolder:CreateTexture(nil, 'BACKGROUND') + statusBar.icon = statusBar.iconHolder:CreateTexture(nil, 'OVERLAY') statusBar.icon:SetTexCoord(.07, .93, .07, .93) - statusBar.icon:SetAllPoints() + statusBar.icon:SetPoint("TOPLEFT", statusBar.iconHolder, "TOPLEFT", 1, -1) + statusBar.icon:SetPoint("BOTTOMRIGHT", statusBar.iconHolder, "BOTTOMRIGHT", -1, 1) statusBar.spelltime = statusBar:CreateFontString(nil, 'ARTWORK') - if auraBarParent.spellTimeObject then - statusBar.spelltime:SetFontObject(auraBarParent.spellTimeObject) - else - statusBar.spelltime:SetFont(auraBarParent.spellTimeFont or [[Fonts\FRIZQT__.TTF]], auraBarParent.spellTimeSize or 10) - end + statusBar.spelltime:SetFont(auraBarParent.textFont or [[Fonts\FRIZQT__.TTF]], auraBarParent.textSize or 10, auraBarParent.textOutline or "NONE") statusBar.spelltime:SetTextColor(1 ,1, 1) + statusBar.spelltime:SetShadowOffset(1, -1) + statusBar.spelltime:SetShadowColor(0, 0, 0) statusBar.spelltime:SetJustifyH'RIGHT' statusBar.spelltime:SetJustifyV'CENTER' statusBar.spelltime:SetPoint'RIGHT' statusBar.spellname = statusBar:CreateFontString(nil, 'ARTWORK') - if auraBarParent.spellNameObject then - statusBar.spellname:SetFontObject(auraBarParent.spellNameObject) - else - statusBar.spellname:SetFont(auraBarParent.spellNameFont or [[Fonts\FRIZQT__.TTF]], auraBarParent.spellNameSize or 10) - end + statusBar.spellname:SetFont(auraBarParent.textFont or [[Fonts\FRIZQT__.TTF]], auraBarParent.textSize or 10, auraBarParent.textOutline or "NONE") statusBar.spellname:SetTextColor(1, 1, 1) + statusBar.spellname:SetShadowOffset(1, -1) + statusBar.spellname:SetShadowColor(0, 0, 0) statusBar.spellname:SetJustifyH'LEFT' statusBar.spellname:SetJustifyV'CENTER' statusBar.spellname:SetPoint'LEFT' diff --git a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua index 9ae50c5..b748f9b 100644 --- a/Interface/AddOns/SVUI/packages/unit/SVUnit.lua +++ b/Interface/AddOns/SVUI/packages/unit/SVUnit.lua @@ -222,10 +222,7 @@ end function MOD:RefreshUnitFrames() if SuperVillain.db['SVUnit'].enable~=true then return end - self:UpdateAuraUpvalues() self:RefreshUnitColors() - self:RefreshUnitFonts() - self:RefreshUnitTextures() for unit in pairs(BasicFrames)do if self.db[unit].enable then diff --git a/Interface/AddOns/SVUI/packages/unit/class/druid.lua b/Interface/AddOns/SVUI/packages/unit/class/druid.lua index ae86331..8f1b4ad 100644 --- a/Interface/AddOns/SVUI/packages/unit/class/druid.lua +++ b/Interface/AddOns/SVUI/packages/unit/class/druid.lua @@ -48,7 +48,7 @@ DRUID ALT MANA ########################################################## ]]-- local UpdateAltPower = function(self, unit, arg1, arg2) - local value = self:GetParent().Power.value; + local value = self:GetParent().InfoPanel.Power; if(arg1 ~= arg2) then local color = oUF_SuperVillain['colors'].power['MANA'] color = SuperVillain:HexColor(color[1],color[2],color[3]) @@ -64,18 +64,18 @@ local UpdateAltPower = function(self, unit, arg1, arg2) else self.Text:SetText() end -end; +end -local function CreateAltMana(playerFrame,eclipse) - local bar = CreateFrame('Frame', nil, playerFrame) +local function CreateAltMana(playerFrame, eclipse) + local bar = CreateFrame("Frame", nil, playerFrame) bar:SetFrameStrata("LOW") bar:SetPoint("TOPLEFT", eclipse, "TOPLEFT", 38, 0) bar:SetPoint("BOTTOMRIGHT", eclipse, "BOTTOMRIGHT", 0, 0) bar:SetFixedPanelTemplate("Default") - bar:SetFrameLevel(bar:GetFrameLevel()+1) + bar:SetFrameLevel(bar:GetFrameLevel() + 1) bar.colorPower = true; bar.PostUpdatePower = UpdateAltPower; - bar.ManaBar = CreateFrame('StatusBar', nil, bar) + bar.ManaBar = CreateFrame("StatusBar", nil, bar) bar.ManaBar.noupdate = true; bar.ManaBar:SetStatusBarTexture(SuperVillain.Media.bar.glow) bar.ManaBar:FillInner(bar) @@ -83,11 +83,11 @@ local function CreateAltMana(playerFrame,eclipse) bar.bg:SetAllPoints(bar.ManaBar) bar.bg:SetTexture([[Interface\BUTTONS\WHITE8X8]]) bar.bg.multiplier = 0.3; - bar.Text = bar.ManaBar:CreateFontString(nil, 'OVERLAY') + bar.Text = bar.ManaBar:CreateFontString(nil, "OVERLAY") bar.Text:SetAllPoints(bar.ManaBar) - MOD:SetUnitFont(bar.Text) + bar.Text:SetFont(LSM:Fetch("font", MOD.db.font), MOD.db.fontSize, MOD.db.fontOutline) return bar -end; +end --[[ ########################################################## POSITIONING @@ -129,7 +129,7 @@ local Reposition = function(self) bar.Text:SetPoint("TOPLEFT", bar, "TOPLEFT", 10, 0) bar.Text:SetPoint("BOTTOMRIGHT", bar, "BOTTOMRIGHT", -10, 0) -end; +end --[[ ########################################################## DRUID ECLIPSE BAR @@ -171,7 +171,7 @@ local TrackerCallback = function(energy, direction, virtual_energy, virtual_dire energy, direction, virtual_energy, virtual_direction, virtual_eclipse = LibBalancePowerTracker:GetEclipseEnergyInfo() directionHandler[virtual_direction](playerFrame.EclipseBar) end -end; +end function MOD:CreateDruidResourceBar(playerFrame) local bar = CreateFrame('Frame', nil, playerFrame) @@ -265,7 +265,7 @@ function MOD:CreateDruidResourceBar(playerFrame) playerFrame.ClassBarRefresh = Reposition; return bar -end; +end --[[ ########################################################## DRUID COMBO POINTS @@ -287,21 +287,21 @@ local comboTextures = { local ShowPoint = function(self) self:SetAlpha(1) -end; +end local HidePoint = function(self) self.Icon:SetTexture(comboTextures[random(1,3)]) self:SetAlpha(0) -end; +end local ShowSmallPoint = function(self) self:SetAlpha(1) -end; +end local HideSmallPoint = function(self) self.Icon:SetVertexColor(unpack(cpointColor[i])) self:SetAlpha(0) -end; +end local RepositionCombo = function(self) local bar = self.HyperCombo.CPoints; @@ -328,7 +328,7 @@ local RepositionCombo = function(self) bar[i]:Point("LEFT", bar[i - 1], "RIGHT", -2, 0) end end -end; +end function MOD:CreateDruidCombobar(targetFrame, isSmall) local max = 5 @@ -362,11 +362,11 @@ function MOD:CreateDruidCombobar(targetFrame, isSmall) cpoint.Icon = icon bar.CPoints[i] = cpoint - end; + end targetFrame.ComboRefresh = RepositionCombo; bar.PointShow = isSmall and ShowSmallPoint or ShowPoint; bar.PointHide = isSmall and HideSmallPoint or HidePoint; return bar -end; \ No newline at end of file +end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/common/actionpanel.lua b/Interface/AddOns/SVUI/packages/unit/common/actionpanel.lua index 444684b..1c295c1 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/actionpanel.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/actionpanel.lua @@ -189,10 +189,36 @@ local function CreateActionPanel(frame, offset) end; --[[ ########################################################## +NAME +########################################################## +]]-- +local function CreateNameText(frame, unitName) + local db = MOD.db + + if(MOD.db[unitName] and MOD.db[unitName].name) then + db = MOD.db[unitName].name + end + + local name = frame:CreateFontString(nil, "OVERLAY") + name:SetShadowOffset(2, -2) + name:SetShadowColor(0, 0, 0, 1) + name:SetFontTemplate() + + if unitNmae == "target" then + name:SetPoint("RIGHT", frame) + else + name:SetPoint("CENTER", frame) + end + + name:SetFont(LSM:Fetch("font", db.font), db.fontSize, db.fontOutline) + return name; +end +--[[ +########################################################## ACTIONPANEL / INFOPANEL ########################################################## ]]-- -function MOD:SetActionPanel(frame, unit) +function MOD:SetActionPanel(frame, unit, noHealthText, noPowerText, noMiscText) if(unit and (unit == "target" or unit == "player")) then frame.ActionPanel = CreateActionPanel(frame, 3) frame.Threat = CreateThreat(frame.ActionPanel, unit) @@ -252,11 +278,32 @@ function MOD:SetActionPanel(frame, unit) frame.InfoPanel:SetFrameLevel(frame.InfoPanel:GetFrameLevel() + 30) end - local miscText = frame.InfoPanel:CreateFontString(nil, "OVERLAY") - MOD:SetUnitFont(miscText) - miscText:Point("CENTER", frame, "CENTER", 0, 0) + frame.InfoPanel.Name = CreateNameText(frame.InfoPanel, unit) + + local reverse = unit and (unit == "target" or unit == "focus" or unit == "boss" or unit == "arena") or false; + local offset, direction + + if(not noHealthText) then + frame.InfoPanel.Health = frame.InfoPanel:CreateFontString(nil, "OVERLAY") + frame.InfoPanel.Health:SetFont(LSM:Fetch("font", MOD.db.font), MOD.db.fontSize, MOD.db.fontOutline) + offset = reverse and 2 or -2; + direction = reverse and "LEFT" or "RIGHT"; + frame.InfoPanel.Health:Point(direction, frame.InfoPanel, direction, offset, 0) + end + + if(not noPowerText) then + frame.InfoPanel.Power = frame.InfoPanel:CreateFontString(nil, "OVERLAY") + frame.InfoPanel.Power:SetFont(LSM:Fetch("font", MOD.db.font), MOD.db.fontSize, MOD.db.fontOutline) + offset = reverse and -2 or 2; + direction = reverse and "RIGHT" or "LEFT"; + frame.InfoPanel.Power:Point(direction, frame.InfoPanel, direction, offset, 0) + end - frame.InfoPanel.Misc = miscText + if(not noMiscText) then + frame.InfoPanel.Misc = frame.InfoPanel:CreateFontString(nil, "OVERLAY") + frame.InfoPanel.Misc:SetFont(LSM:Fetch("font", MOD.db.font), MOD.db.fontSize, MOD.db.fontOutline) + frame.InfoPanel.Misc:Point("CENTER", frame, "CENTER", 0, 0) + end frame.HealthPanel = CreateFrame("Frame", nil, frame) frame.HealthPanel:SetAllPoints(frame) diff --git a/Interface/AddOns/SVUI/packages/unit/common/aurabars.lua b/Interface/AddOns/SVUI/packages/unit/common/aurabars.lua index 5ae3c93..08a6326 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/aurabars.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/aurabars.lua @@ -32,45 +32,30 @@ local tsort,floor,sub,huge = table.sort,math.floor,string.sub,math.huge; BUILD FUNCTION ########################################################## ]]-- -function MOD:CreateAuraBars() - local parent = self:GetParent().parent - local db = parent.db.aurabar - local auraBar = self.statusBar; - self:SetFixedPanelTemplate('Transparent',true) - auraBar:FillInner(self) - MOD:WatchUnitMedia("aurabarfonts", auraBar) - auraBar.spelltime:SetFontTemplate(LSM:Fetch("font", MOD.db.auraFont), MOD.db.auraFontSize, MOD.db.auraFontOutline, "RIGHT", nil, true) - auraBar.spelltime:SetShadowOffset(1, -1) - auraBar.spelltime:SetShadowColor(0, 0, 0) - auraBar.spellname:SetFontTemplate(LSM:Fetch("font", MOD.db.auraFont), MOD.db.auraFontSize, MOD.db.auraFontOutline, "LEFT", nil, true) - auraBar.spellname:SetShadowOffset(1, -1) - auraBar.spellname:SetShadowColor(0, 0, 0) - auraBar.spellname:ClearAllPoints() - auraBar.spellname:SetPoint('LEFT',auraBar,'LEFT',4,0) - auraBar.spellname:SetPoint('RIGHT',auraBar.spelltime,'LEFT',-4,0) - auraBar.iconHolder:SetFixedPanelTemplate('Transparent',true) - auraBar.icon:FillInner(auraBar.iconHolder) - auraBar.icon:SetDrawLayer('OVERLAY') - auraBar.bg = auraBar:CreateTexture(nil,'BORDER') - auraBar.bg:Hide() - auraBar.iconHolder:RegisterForClicks('RightButtonUp') - auraBar.iconHolder:SetScript('OnClick',function(self) - if not IsShiftKeyDown()then return end; - local n = self:GetParent().aura.name; - local id = self:GetParent().aura.spellID; - if id then - SuperVillain:AddonMessage(format(L['The spell "%s" has been added to the Blocked unitframe aura filter.'],n)) - SuperVillain.Filters:Change('Blocked', id, {['enable'] = true, ['priority'] = 0}) - MOD:RefreshUnitFrames() - end - end) -end; +local AuraRemover_OnClick = function(self) + if not IsShiftKeyDown() then return end + local n = self:GetParent().aura.name; + local id = self:GetParent().aura.spellID; + if id then + SuperVillain:AddonMessage(format(L["The spell "%s" has been added to the Blocked unitframe aura filter."], n)) + SuperVillain.Filters:Change("Blocked", id, {["enable"] = true, ["priority"] = 0}) + MOD:RefreshUnitFrames() + end +end + +local function PostCreateAuraBars(self) + self:SetPanelTemplate("Bar") + local auraBar = self.statusBar + auraBar.iconHolder:SetFixedPanelTemplate("Transparent") + auraBar.iconHolder:RegisterForClicks("RightButtonUp") + auraBar.iconHolder:SetScript("OnClick", AuraRemover_OnClick) +end function MOD:ColorizeAuraBars() local bars = self.bars; - for i=1,#bars do + for i = 1, #bars do local auraBar = bars[i] - if not auraBar:IsVisible()then break end; + if not auraBar:IsVisible()then break end local color local spellName = auraBar.statusBar.aura.name; local spellID = auraBar.statusBar.aura.spellID; @@ -78,124 +63,126 @@ function MOD:ColorizeAuraBars() color = oUF_SuperVillain.colors.shield_bars elseif(SuperVillain.db.media.unitframes.spellcolor[spellName]) then color = SuperVillain.db.media.unitframes.spellcolor[spellName] - end; + end if color then auraBar.statusBar:SetStatusBarColor(unpack(color)) - auraBar.statusBar.bg:SetTexture(color[1]*0.25,color[2]*0.25,color[3]*0.25) + auraBar:SetBackdropColor(color[1] * 0.25, color[2] * 0.25, color[3] * 0.25) else - local r,g,b = auraBar.statusBar:GetStatusBarColor() - auraBar.statusBar.bg:SetTexture(r*0.25,g*0.25,b*0.25) + local r, g, b = auraBar.statusBar:GetStatusBarColor() + auraBar:SetBackdropColor(r * 0.25, g * 0.25, b * 0.25) end end -end; +end -local function CheckAuraFilter(setting,helpful) +local function CheckAuraFilter(setting, helpful) local friend, enemy = false, false - if type(setting)=='boolean' then + if type(setting) == "boolean" then friend = setting; enemy = setting - elseif setting and type(setting)~='string' then + elseif setting and type(setting) ~= "string" then friend = setting.friendly; enemy = setting.enemy - end; + end if (friend and helpful) or (enemy and not helpful) then return true; end return false -end; +end -function MOD:AuraBarFilter(unit,name,_,_,_,debuffType,duration,_,unitCaster,isStealable,shouldConsolidate,spellID) - if not MOD.db then return end; +function MOD:AuraBarFilter(unit, name, _, _, _, debuffType, duration, _, unitCaster, isStealable, shouldConsolidate, spellID) + if not MOD.db then return end if(spellID == 65148) then return false; end local db = self.db.aurabar; - local filtered = (unitCaster=='player' or unitCaster=='vehicle') and true or false; + local filtered = (unitCaster == "player" or unitCaster == "vehicle") and true or false; local allowed = true; local pass = false; - local friendly = UnitIsFriend('player',unit) == 1 and true or false; + local friendly = UnitIsFriend("player", unit) == 1 and true or false; - if CheckAuraFilter(db.filterPlayer,friendly) then - allowed=filtered; - pass=true - end; - if CheckAuraFilter(db.filterDispellable,friendly)then - if (self.type=='buffs' and not isStealable) or (self.type=='debuffs' and debuffType and not SuperVillain:DispellAvailable(debuffType)) or debuffType==nil then - filtered=false - end; - pass=true - end; - if CheckAuraFilter(db.filterRaid,friendly)then - if shouldConsolidate==1 then filtered=false end; - pass=true - end; - if CheckAuraFilter(db.filterInfinite,friendly)then - if duration==0 or not duration then - filtered=false - end; - pass=true - end; - if CheckAuraFilter(db.filterBlocked,friendly)then - local blackList = SuperVillain.Filters['Blocked'][name] - if blackList and blackList.enable then filtered=false end; - pass=true - end; - if CheckAuraFilter(db.filterAllowed,friendly)then - local whiteList = SuperVillain.Filters['Allowed'][name] + if CheckAuraFilter(db.filterPlayer, friendly) then + allowed = filtered; + pass = true + end + if CheckAuraFilter(db.filterDispellable, friendly)then + if (self.type == "buffs" and not isStealable) or (self.type == "debuffs" and debuffType and not SuperVillain:DispellAvailable(debuffType)) or debuffType == nil then + filtered = false + end + pass = true + end + if CheckAuraFilter(db.filterRaid, friendly)then + if shouldConsolidate == 1 then filtered = false end + pass = true + end + if CheckAuraFilter(db.filterInfinite, friendly)then + if duration == 0 or not duration then + filtered = false + end + pass = true + end + if CheckAuraFilter(db.filterBlocked, friendly)then + local blackList = SuperVillain.Filters["Blocked"][name] + if blackList and blackList.enable then filtered = false end + pass = true + end + if CheckAuraFilter(db.filterAllowed, friendly)then + local whiteList = SuperVillain.Filters["Allowed"][name] if whiteList and whiteList.enable then - filtered=true + filtered = true elseif not pass then - filtered=false - end; - pass=true - end; + filtered = false + end + pass = true + end if db.useFilter and SuperVillain.Filters[db.useFilter]then local spellsDB = SuperVillain.Filters[db.useFilter]; - if db.useFilter ~= 'Blocked' then + if db.useFilter ~= "Blocked" then if spellsDB[name] and spellsDB[name].enable and allowed then - filtered=true + filtered = true elseif not pass then - filtered=false + filtered = false end elseif spellsDB[name] and spellsDB[name].enable then - filtered=false + filtered = false end - end; + end return filtered -end; +end --[[ ########################################################## UTILITY ########################################################## ]]-- function MOD:CreateAuraBarHeader(frame,unitName) - local abHeader = CreateFrame('Frame',nil,frame) - abHeader.parent = frame; - abHeader.PostCreateBar = self.CreateAuraBars; - abHeader.gap = -1; - abHeader.spacing = -1; - abHeader.spark = true; - abHeader.filter = self.AuraBarFilter; - abHeader.PostUpdate = self.ColorizeAuraBars; + local auraBarParent = CreateFrame('Frame',nil,frame) + auraBarParent.parent = frame; + auraBarParent.PostCreateBar = PostCreateAuraBars; + auraBarParent.gap = -1; + auraBarParent.spacing = -1; + auraBarParent.spark = true; + auraBarParent.filter = self.AuraBarFilter; + auraBarParent.PostUpdate = self.ColorizeAuraBars; local bartex = self.db.auraBarStatusbar - abHeader.auraBarTexture = LSM:Fetch("statusbar", bartex); - self:WatchUnitMedia("aurabars", abHeader) - return abHeader -end; + auraBarParent.barTexture = LSM:Fetch("statusbar", bartex); + auraBarParent.textFont = LSM:Fetch("font", MOD.db.auraFont) + auraBarParent.textSize = MOD.db.auraFontSize + auraBarParent.textOutline = MOD.db.auraFontOutline + return auraBarParent +end function MOD:SortAuraBars(parent,sorting) - if not parent then return end; + if not parent then return end if sorting=='TIME_REMAINING' then parent.sort=true; elseif sorting=='TIME_REMAINING_REVERSE' then - parent.sort=function(a,b)local compA,compB=a.noTime and huge or a.expirationTime, b.noTime and huge or b.expirationTime; return compA < compB end; + parent.sort=function(a,b)local compA,compB=a.noTime and huge or a.expirationTime, b.noTime and huge or b.expirationTime; return compA < compB end elseif sorting=='TIME_DURATION' then - parent.sort=function(a,b)local compA,compB=a.noTime and huge or a.duration, b.noTime and huge or b.duration; return compA > compB end; + parent.sort=function(a,b)local compA,compB=a.noTime and huge or a.duration, b.noTime and huge or b.duration; return compA > compB end elseif sorting=='TIME_DURATION_REVERSE' then - parent.sort=function(a,b)local compA,compB=a.noTime and huge or a.duration, b.noTime and huge or b.duration; return compA < compB end; + parent.sort=function(a,b)local compA,compB=a.noTime and huge or a.duration, b.noTime and huge or b.duration; return compA < compB end elseif sorting=='NAME' then - parent.sort=function(a,b)return a.name > b.name end; + parent.sort=function(a,b)return a.name > b.name end else parent.sort=nil; - end; -end; \ No newline at end of file + end +end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/common/auras.lua b/Interface/AddOns/SVUI/packages/unit/common/auras.lua index f05dbd6..61307a0 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/auras.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/auras.lua @@ -80,7 +80,22 @@ local textCounterOffsets = { LOCAL FUNCTIONS ########################################################## ]]-- -local function SetAuraTemplate(aura) +local AuraRemover_OnClick = function(self) + if not IsShiftKeyDown() then return end + local name = self.name; + if name then + SuperVillain:AddonMessage(format(L['The spell "%s" has been added to the Blocked unitframe aura filter.'], name)) + SuperVillain.Filters["Blocked"]["spells"][name] = {["enable"] = true, ["priority"] = 0} + MOD:RefreshUnitFrames() + end +end + +local function PostCreateAuraIcon(aura) + aura.cd.noOCC = true; + aura.cd.noCooldownCount = true; + aura.cd:SetReverse() + aura.overlay:SetTexture(nil) + aura.stealable:SetTexture(nil) if aura.styled then return end if aura.SetNormalTexture then aura:SetNormalTexture("") end if aura.SetHighlightTexture then aura:SetHighlightTexture("") end @@ -102,137 +117,11 @@ local function SetAuraTemplate(aura) aura:SetBackdropColor(0, 0, 0, 0) aura:SetBackdropBorderColor(0, 0, 0) aura:RegisterForClicks("RightButtonUp") - aura:SetScript("OnClick", function(self) - if not IsShiftKeyDown()then return end - local name = self.name; - if name then - SuperVillain:AddonMessage(format(L['The spell "%s" has been added to the Blocked unitframe aura filter.'], name)) - SuperVillain.Filters["Blocked"]["spells"][name] = {["enable"] = true, ["priority"] = 0} - MOD:RefreshUnitFrames() - end - end) + aura:SetScript("OnClick", AuraRemover_OnClick) aura.styled = true -end ---[[ -########################################################## -BUILD FUNCTION -########################################################## -]]-- -function MOD:CreateBuffs(frame) - local aura = CreateFrame("Frame", nil, frame) - aura.spacing = 2; - aura.PostCreateIcon = self.CreateAuraIcon; - aura.PostUpdateIcon = self.PostUpdateAura; - aura.CustomFilter = self.AuraFilter; - aura:SetFrameLevel(10) - aura.type = "buffs" - self:WatchUnitMedia("aurafonts", aura) - return aura -end - -function MOD:CreateDebuffs(frame) - local aura = CreateFrame("Frame", nil, frame) - aura.spacing = 2; - aura.PostCreateIcon = self.CreateAuraIcon; - aura.PostUpdateIcon = self.PostUpdateAura; - aura.CustomFilter = self.AuraFilter; - aura.type = "debuffs" - aura:SetFrameLevel(10) - self:WatchUnitMedia("aurafonts", aura) - return aura -end - -function MOD:CreateAuraWatch(frame) - local aWatch = CreateFrame("Frame", nil, frame) - aWatch:SetFrameLevel(frame:GetFrameLevel() + 25) - aWatch:FillInner(frame.Health) - aWatch.presentAlpha = 1; - aWatch.missingAlpha = 0; - aWatch.strictMatching = true; - aWatch.icons = {} - return aWatch -end - -function MOD:UpdateAuraTimer(elapsed) - self.expiration = self.expiration - elapsed; - if(self.nextUpdate > 0) then - self.nextUpdate = self.nextUpdate - elapsed; - return - end - if(self.expiration <= 0) then - self:SetScript("OnUpdate", nil) - if(self.text:GetFont()) then - self.text:SetText("") - end - return - end - - local expires = self.expiration; - local calc, timeLeft = 0, 0; - local timeFormat; - - if expires < 60 then - if expires >= 4 then - timeLeft = floor(expires) - timeFormat = "|cffffff00%d|r" - self.nextUpdate = 0.51 - else - timeLeft = expires - timeFormat = "|cffff0000%.1f|r" - self.nextUpdate = 0.051 - end - elseif expires < 3600 then - timeFormat = "|cffffffff%dm|r" - timeLeft = ceil(expires / 60); - calc = floor((expires / 60) + .5); - self.nextUpdate = calc > 1 and ((expires - calc) * 29.5) or (expires - 59.5); - elseif expires < 86400 then - timeFormat = "|cff66ffff%dh|r" - timeLeft = ceil(expires / 3600); - calc = floor((expires / 3600) + .5); - self.nextUpdate = calc > 1 and ((expires - calc) * 1799.5) or (expires - 3570); - else - timeFormat = "|cff6666ff%dd|r" - timeLeft = ceil(expires / 86400); - calc = floor((expires / 86400) + .5); - self.nextUpdate = calc > 1 and ((expires - calc) * 43199.5) or (expires - 86400); - end - if self.text:GetFont() then - self.text:SetFormattedText(timeFormat, timeLeft) - else - self.text:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - self.text:SetFormattedText(timeFormat, timeLeft) - end -end - -function MOD:CreateAuraIcon(aura, index, offset) - aura.cd.noOCC = true; - aura.cd.noCooldownCount = true; - aura.cd:SetReverse() - aura.cd:FillInner(aura, 0, 0) - - aura.text = aura.cd:CreateFontString(nil, "OVERLAY") - aura.text:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - aura.text:SetPoint("CENTER", 1, 1) - aura.text:SetJustifyH("CENTER") - - aura.icon:FillInner(aura, 2, 2) - aura.icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) - aura.icon:SetDrawLayer("ARTWORK") - - aura.count:ClearAllPoints() - aura.count:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - aura.count:SetPoint("BOTTOMRIGHT", 1, 1) - aura.count:SetJustifyH("RIGHT") - - aura.overlay:SetTexture(nil) - - aura.stealable:SetTexture(nil) - - SetAuraTemplate(aura) -end +end -function MOD:PostUpdateAura(unit, button, index, offset, filter, isDebuff, duration, timeLeft) +local function PostUpdateAuraIcon(unit, button, index, offset, filter, isDebuff, duration, timeLeft) local name, _, _, _, dtype, duration, expiration, _, isStealable = UnitAura(unit, index, button.filter) local isFriend = UnitIsFriend('player', unit) == 1 and true or false if button.isDebuff then @@ -284,20 +173,12 @@ function MOD:PostUpdateAura(unit, button, index, offset, filter, isDebuff, durat end end -function MOD:UpdateAuraWatchFromHeader(group, override) - assert(self[group],"Invalid group specified.") - for i=1,self[group]:GetNumChildren() do - local frame = select(i, self[group]:GetChildren()) - if frame and frame.Health then MOD:UpdateAuraWatch(frame,override) end - end -end - -local function CheckAuraFilter(setting,helpful) +local function CheckAuraFilter(setting, helpful) local friend, enemy = false, false - if type(setting)=='boolean' then + if type(setting) == "boolean" then friend = setting; enemy = setting - elseif setting and type(setting)~='string' then + elseif setting and type(setting) ~= "string" then friend = setting.friendly; enemy = setting.enemy end @@ -307,116 +188,191 @@ local function CheckAuraFilter(setting,helpful) return false end -function MOD:AuraFilter(unit, icon, name, _, _, _, dtype, duration, _, caster, isStealable, shouldConsolidate, spellID, canApplyAura, isBossAura) +local function CustomAuraIconFilter(self, unit, icon, name, _, _, _, dtype, duration, _, caster, isStealable, shouldConsolidate, spellID, canApplyAura, isBossAura) if spellID == 65148 then return false end - local isPlayer,friendly; + local isPlayer, friendly; local db = self:GetParent().db; local auraType = self.type; if not db or not auraType or not db[auraType] then return true end; - local filtered=true; - local allowed=true; - local pass=false; - local isPlayer=caster=='player'or caster=='vehicle' - local friendly=UnitIsFriend('player',unit)==1 and true or false; - local filterType=friendly and db.friendlyAuraType or db.enemyAuraType; - icon.isPlayer=isPlayer; - icon.owner=caster; - icon.name=name; - icon.priority=0; - local shieldSpell = SuperVillain.Filters['Shield'][name] + local filtered = true; + local allowed = true; + local pass = false; + local isPlayer = caster == "player"or caster == "vehicle" + local friendly = UnitIsFriend("player", unit) == 1 and true or false; + local filterType = friendly and db.friendlyAuraType or db.enemyAuraType; + icon.isPlayer = isPlayer; + icon.owner = caster; + icon.name = name; + icon.priority = 0; + local shieldSpell = SuperVillain.Filters["Shield"][name] if shieldSpell and shieldSpell.enable then - icon.priority=shieldSpell.priority + icon.priority = shieldSpell.priority end - if CheckAuraFilter(db.filterPlayer,friendly)then - if isPlayer then filtered=true else filtered=false end - allowed=filtered; - pass=true + if CheckAuraFilter(db.filterPlayer, friendly)then + if isPlayer then filtered = true else filtered = false end + allowed = filtered; + pass = true end - if CheckAuraFilter(db.filterDispellable,friendly) then - if (auraType=='buffs' and not isStealable) or (auraType=='debuffs' and dtype and not SuperVillain:DispellAvailable(dtype)) or dtype==nil then - filtered=false + if CheckAuraFilter(db.filterDispellable, friendly) then + if (auraType == "buffs" and not isStealable) or (auraType == "debuffs" and dtype and not SuperVillain:DispellAvailable(dtype)) or dtype == nil then + filtered = false end - pass=true + pass = true end - if CheckAuraFilter(db.filterRaid,friendly) then - if shouldConsolidate==1 then filtered=false end - pass=true + if CheckAuraFilter(db.filterRaid, friendly) then + if shouldConsolidate == 1 then filtered = false end + pass = true end - if CheckAuraFilter(db.filterInfinite,friendly)then - if duration==0 or not duration then - filtered=false + if CheckAuraFilter(db.filterInfinite, friendly)then + if duration == 0 or not duration then + filtered = false end - pass=true + pass = true end - if CheckAuraFilter(db.useBlocked,friendly) then - local blackListSpell=SuperVillain.Filters['Blocked'][name] + if CheckAuraFilter(db.useBlocked, friendly) then + local blackListSpell = SuperVillain.Filters["Blocked"][name] if blackListSpell and blackListSpell.enable then - filtered=false + filtered = false end - pass=true + pass = true end - if CheckAuraFilter(db.useAllowed,friendly) then - local whiteListSpell=SuperVillain.Filters['Allowed'][name] + if CheckAuraFilter(db.useAllowed, friendly) then + local whiteListSpell = SuperVillain.Filters["Allowed"][name] if whiteListSpell and whiteListSpell.enable then - filtered=true; - icon.priority=whiteListSpell.priority + filtered = true; + icon.priority = whiteListSpell.priority elseif not pass then - filtered=false + filtered = false end - pass=true + pass = true end if db.useFilter and SuperVillain.Filters[db.useFilter] then - local spellDB=SuperVillain.Filters[db.useFilter]; - if db.useFilter ~= 'Blocked' then + local spellDB = SuperVillain.Filters[db.useFilter]; + if db.useFilter ~= "Blocked" then if spellDB[name] and spellDB[name].enable and allowed then - filtered=true; - icon.priority=spellDB[name].priority; - if db.useFilter == 'Shield' and (spellID==86698 or spellID==86669) then - filtered=false + filtered = true; + icon.priority = spellDB[name].priority; + if db.useFilter == "Shield" and (spellID == 86698 or spellID == 86669) then + filtered = false end elseif not pass then - filtered=false + filtered = false end elseif spellDB[name] and spellDB[name].enable then - filtered=false + filtered = false end end return filtered end --[[ ########################################################## -UPDATE +BUILD FUNCTION ########################################################## ]]-- -function MOD:UpdateAuraUpvalues() - AURA_FONT = LSM:Fetch("font",MOD.db.auraFont); - AURA_FONTSIZE = MOD.db.auraFontSize; - AURA_OUTLINE = MOD.db.auraFontOutline; -end +function MOD:CreateBuffs(frame) + local aura = CreateFrame("Frame", nil, frame) + aura.spacing = 2; + aura.PostCreateIcon = PostCreateAuraIcon; + aura.PostUpdateIcon = PostUpdateAuraIcon; + aura.CustomFilter = CustomAuraIconFilter; + aura:SetFrameLevel(10) + aura.type = "buffs" + aura.textFont = LSM:Fetch("font", MOD.db.auraFont) + aura.textSize = MOD.db.auraFontSize + aura.textOutline = MOD.db.auraFontOutline + return aura +end -function MOD:UpdateAuraIconSettings(aura, useParent) - if(useParent) then - aura.text:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - aura.count:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - -- if aura:IsMouseEnabled() then - -- aura:EnableMouse(false) - -- end - else - local i = 1; - while aura[i] do - local icon = aura[i] - icon.text:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - icon.count:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - -- if icon:IsMouseEnabled() then - -- icon:EnableMouse(false) - -- end - i = i + 1 +function MOD:CreateDebuffs(frame) + local aura = CreateFrame("Frame", nil, frame) + aura.spacing = 2; + aura.PostCreateIcon = PostCreateAuraIcon; + aura.PostUpdateIcon = PostUpdateAuraIcon; + aura.CustomFilter = CustomAuraIconFilter; + aura.type = "debuffs" + aura:SetFrameLevel(10) + aura.textFont = LSM:Fetch("font", MOD.db.auraFont) + aura.textSize = MOD.db.auraFontSize + aura.textOutline = MOD.db.auraFontOutline + return aura +end + +function MOD:CreateAuraWatch(frame) + local aWatch = CreateFrame("Frame", nil, frame) + aWatch:SetFrameLevel(frame:GetFrameLevel() + 25) + aWatch:FillInner(frame.Health) + aWatch.presentAlpha = 1; + aWatch.missingAlpha = 0; + aWatch.strictMatching = true; + aWatch.icons = {} + return aWatch +end + +function MOD:UpdateAuraTimer(elapsed) + self.expiration = self.expiration - elapsed; + if(self.nextUpdate > 0) then + self.nextUpdate = self.nextUpdate - elapsed; + return + end + if(self.expiration <= 0) then + self:SetScript("OnUpdate", nil) + if(self.text:GetFont()) then + self.text:SetText("") + end + return + end + + local expires = self.expiration; + local calc, timeLeft = 0, 0; + local timeFormat; + + if expires < 60 then + if expires >= 4 then + timeLeft = floor(expires) + timeFormat = "|cffffff00%d|r" + self.nextUpdate = 0.51 + else + timeLeft = expires + timeFormat = "|cffff0000%.1f|r" + self.nextUpdate = 0.051 end + elseif expires < 3600 then + timeFormat = "|cffffffff%dm|r" + timeLeft = ceil(expires / 60); + calc = floor((expires / 60) + .5); + self.nextUpdate = calc > 1 and ((expires - calc) * 29.5) or (expires - 59.5); + elseif expires < 86400 then + timeFormat = "|cff66ffff%dh|r" + timeLeft = ceil(expires / 3600); + calc = floor((expires / 3600) + .5); + self.nextUpdate = calc > 1 and ((expires - calc) * 1799.5) or (expires - 3570); + else + timeFormat = "|cff6666ff%dd|r" + timeLeft = ceil(expires / 86400); + calc = floor((expires / 86400) + .5); + self.nextUpdate = calc > 1 and ((expires - calc) * 43199.5) or (expires - 86400); end -end + if self.text:GetFont() then + self.text:SetFormattedText(timeFormat, timeLeft) + else + self.text:SetFormattedText(timeFormat, timeLeft) + end +end -function MOD:UpdateAuraWatch(frame,override) +function MOD:UpdateAuraWatchFromHeader(group, override) + assert(self[group],"Invalid group specified.") + for i=1,self[group]:GetNumChildren() do + local frame = select(i, self[group]:GetChildren()) + if frame and frame.Health then MOD:UpdateAuraWatch(frame,override) end + end +end +--[[ +########################################################## +UPDATE +########################################################## +]]-- +function MOD:UpdateAuraWatch(frame, override) local temp = {} local AW = frame.AuraWatch; local db = frame.db.buffIndicator; @@ -429,49 +385,49 @@ function MOD:UpdateAuraWatch(frame,override) end local bwSize = db.size; - if frame.unit=='pet' and not override then + if frame.unit == "pet" and not override then local petBW = SuperVillain.Filters["PetBuffWatch"] or {} - for _,buff in pairs(petBW)do - if buff.style=='text'then - buff.style='NONE' + for _, buff in pairs(petBW)do + if buff.style == "text"then + buff.style = "NONE" end - tinsert(temp,buff) + tinsert(temp, buff) end else local unitBW = SuperVillain.Filters["BuffWatch"] or {} - for _,buff in pairs(unitBW)do - if buff.style=='text'then - buff.style='NONE' + for _, buff in pairs(unitBW)do + if buff.style == "text"then + buff.style = "NONE" end - tinsert(temp,buff) + tinsert(temp, buff) end end if AW.icons then - for i=1,#AW.icons do - local iconTest=false; - for j=1,#temp do - if #temp[j].id and #temp[j].id==AW.icons[i] then - iconTest=true; + for i = 1, #AW.icons do + local iconTest = false; + for j = 1, #temp do + if #temp[j].id and #temp[j].id == AW.icons[i] then + iconTest = true; break end end if not iconTest then AW.icons[i]:Hide() - AW.icons[i]=nil + AW.icons[i] = nil end end end - for i=1,#temp do + for i = 1, #temp do if temp[i].id then - local buffName,_,buffTexture = GetSpellInfo(temp[i].id) + local buffName, _, buffTexture = GetSpellInfo(temp[i].id) if buffName then local watchedAura; if not AW.icons[temp[i].id]then - watchedAura=CreateFrame("Frame",nil,AW) + watchedAura = CreateFrame("Frame", nil, AW) else - watchedAura=AW.icons[temp[i].id] + watchedAura = AW.icons[temp[i].id] end watchedAura.name = buffName; watchedAura.image = buffTexture; @@ -488,40 +444,40 @@ function MOD:UpdateAuraWatch(frame,override) watchedAura:ClearAllPoints() watchedAura:SetPoint(temp[i].point, frame.Health, temp[i].point, temp[i].xOffset, temp[i].yOffset) if not watchedAura.icon then - watchedAura.icon = watchedAura:CreateTexture(nil,"BORDER") + watchedAura.icon = watchedAura:CreateTexture(nil, "BORDER") watchedAura.icon:SetAllPoints(watchedAura) end if not watchedAura.text then - local awText = CreateFrame('Frame',nil,watchedAura) - awText:SetFrameLevel(watchedAura:GetFrameLevel()+50) - watchedAura.text = awText:CreateFontString(nil,'BORDER') + local awText = CreateFrame("Frame", nil, watchedAura) + awText:SetFrameLevel(watchedAura:GetFrameLevel() + 50) + watchedAura.text = awText:CreateFontString(nil, "BORDER") end if not watchedAura.border then - watchedAura.border = watchedAura:CreateTexture(nil,"BACKGROUND") - watchedAura.border:Point("TOPLEFT",-1,1) - watchedAura.border:Point("BOTTOMRIGHT",1,-1) + watchedAura.border = watchedAura:CreateTexture(nil, "BACKGROUND") + watchedAura.border:Point("TOPLEFT", -1, 1) + watchedAura.border:Point("BOTTOMRIGHT", 1, -1) watchedAura.border:SetTexture([[Interface\BUTTONS\WHITE8X8]]) - watchedAura.border:SetVertexColor(0,0,0) + watchedAura.border:SetVertexColor(0, 0, 0) end if not watchedAura.cd then - watchedAura.cd = CreateFrame("Cooldown",nil,watchedAura) + watchedAura.cd = CreateFrame("Cooldown", nil, watchedAura) watchedAura.cd:SetAllPoints(watchedAura) watchedAura.cd:SetReverse(true) watchedAura.cd:SetFrameLevel(watchedAura:GetFrameLevel()) end - if watchedAura.style=='coloredIcon'then + if watchedAura.style == "coloredIcon"then watchedAura.icon:SetTexture([[Interface\BUTTONS\WHITE8X8]]) if temp[i]["color"]then watchedAura.icon:SetVertexColor(temp[i]["color"].r, temp[i]["color"].g, temp[i]["color"].b) else - watchedAura.icon:SetVertexColor(0.8,0.8,0.8) + watchedAura.icon:SetVertexColor(0.8, 0.8, 0.8) end watchedAura.icon:Show() watchedAura.border:Show() watchedAura.cd:SetAlpha(1) - elseif watchedAura.style=='texturedIcon' then - watchedAura.icon:SetVertexColor(1,1,1) - watchedAura.icon:SetTexCoord(.18,.82,.18,.82) + elseif watchedAura.style == "texturedIcon" then + watchedAura.icon:SetVertexColor(1, 1, 1) + watchedAura.icon:SetTexCoord(.18, .82, .18, .82) watchedAura.icon:SetTexture(watchedAura.image) watchedAura.icon:Show() watchedAura.border:Show() @@ -533,40 +489,45 @@ function MOD:UpdateAuraWatch(frame,override) end if watchedAura.displayText then watchedAura.text:Show() - local r,g,b=1,1,1; + local r, g, b = 1, 1, 1; if temp[i].textColor then - r,g,b = temp[i].textColor.r, temp[i].textColor.g, temp[i].textColor.b + r, g, b = temp[i].textColor.r, temp[i].textColor.g, temp[i].textColor.b end - watchedAura.text:SetTextColor(r,g,b) + watchedAura.text:SetTextColor(r, g, b) else watchedAura.text:Hide() end if not watchedAura.count then - watchedAura.count=watchedAura:CreateFontString(nil,"OVERLAY") + watchedAura.count = watchedAura:CreateFontString(nil, "OVERLAY") end watchedAura.count:ClearAllPoints() if watchedAura.displayText then - local anchor,relative,x,y=unpack(textCounterOffsets[temp[i].point]) + local anchor, relative, x, y = unpack(textCounterOffsets[temp[i].point]) watchedAura.count:SetPoint(anchor, watchedAura.text, relative, x, y) else - watchedAura.count:SetPoint("CENTER",unpack(counterOffsets[temp[i].point])) - end - watchedAura.count:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) - watchedAura.text:SetFont(AURA_FONT, AURA_FONTSIZE, AURA_OUTLINE) + watchedAura.count:SetPoint("CENTER", unpack(counterOffsets[temp[i].point])) + end + + local fontFile = LSM:Fetch("font", MOD.db.auraFont) + local fontSize = MOD.db.auraFontSize + local fontOutline = MOD.db.auraFontOutline + + watchedAura.count:SetFont(fontFile, fontSize, fontOutline) + watchedAura.text:SetFont(fontFile, fontSize, fontOutline) watchedAura.text:ClearAllPoints() - watchedAura.text:SetPoint(temp[i].point,watchedAura,temp[i].point) + watchedAura.text:SetPoint(temp[i].point, watchedAura, temp[i].point) if temp[i].enable then - AW.icons[temp[i].id]=watchedAura; + AW.icons[temp[i].id] = watchedAura; if AW.watched then - AW.watched[temp[i].id]=watchedAura + AW.watched[temp[i].id] = watchedAura end else - AW.icons[temp[i].id]=nil; + AW.icons[temp[i].id] = nil; if AW.watched then - AW.watched[temp[i].id]=nil + AW.watched[temp[i].id] = nil end watchedAura:Hide() - watchedAura=nil + watchedAura = nil end end end @@ -574,7 +535,7 @@ function MOD:UpdateAuraWatch(frame,override) if frame.AuraWatch.Update then frame.AuraWatch.Update(frame) end - temp=nil + temp = nil end --[[ ########################################################## diff --git a/Interface/AddOns/SVUI/packages/unit/common/health.lua b/Interface/AddOns/SVUI/packages/unit/common/health.lua index 661004c..127972f 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/health.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/health.lua @@ -46,7 +46,7 @@ local Anim_OnUpdate = function(self) local parent = self.parent local coord = self._coords; parent:SetTexCoord(coord[1],coord[2],coord[3],coord[4]) -end; +end local Anim_OnPlay = function(self) local parent = self.parent @@ -54,7 +54,7 @@ local Anim_OnPlay = function(self) if not parent:IsShown() then parent:Show() end -end; +end local Anim_OnStop = function(self) local parent = self.parent @@ -62,7 +62,7 @@ local Anim_OnStop = function(self) if parent:IsShown() then parent:Hide() end -end; +end local function SetNewAnimation(frame, animType, parent) local anim = frame:CreateAnimation(animType, subType) @@ -208,28 +208,12 @@ local CustomUpdate = function(self, event, unit) if self.ResurrectIcon then self.ResurrectIcon:SetAlpha(min == 0 and 1 or 0) - end; + end if self.isForced then local current = random(1,max) health:SetValue(-current) - end; - - -- local portrait = self.Portrait - -- if(portrait and portrait:IsObjectType'Model') then - -- if(UnitIsDeadOrGhost(unit) and not portrait.isdead) then - -- portrait:SetCamDistanceScale(1) - -- portrait:SetPortraitZoom(0) - -- portrait:SetPosition(4,-1,1) - -- portrait:ClearModel() - -- portrait:SetModel(DEAD_MODEL_FILE) - -- portrait.isdead = true - -- portrait.guid = nil - -- elseif(not UnitIsDeadOrGhost(unit) and portrait.isdead == true) then - -- portrait.isdead = nil - -- MOD.Update3DPortrait(self, event, unit) - -- end - -- end -end; + end +end local Update = function(self, event, unit) if(self.unit ~= unit) or not unit then return end @@ -302,29 +286,13 @@ local Update = function(self, event, unit) if self.ResurrectIcon then self.ResurrectIcon:SetAlpha(min == 0 and 1 or 0) - end; + end if self.isForced then min = random(1,max) health:SetValue(min) - end; - if self.db and self.db.gridMode then + end + if(db.gridMode) then health:SetOrientation("VERTICAL") - end; - - local portrait = self.Portrait - if(portrait and portrait:IsObjectType'Model') then - if(UnitIsDeadOrGhost(unit) and not portrait.isdead) then - portrait:SetCamDistanceScale(1) - portrait:SetPortraitZoom(0) - portrait:SetPosition(4,-1,1) - portrait:ClearModel() - portrait:SetModel(DEAD_MODEL_FILE) - portrait.isdead = true - portrait.guid = nil - elseif(not UnitIsDeadOrGhost(unit) and portrait.isdead == true) then - portrait.isdead = nil - MOD.Update3DPortrait(self, event, unit) - end end end --[[ @@ -332,7 +300,7 @@ end BUILD FUNCTION ########################################################## ]]-- -function MOD:CreateHealthBar(frame, hasbg, text, reverse) +function MOD:CreateHealthBar(frame, hasbg, reverse) local healthBar = CreateFrame("StatusBar", nil, frame) healthBar:SetFrameStrata("LOW") healthBar:SetFrameLevel(4) @@ -347,7 +315,7 @@ function MOD:CreateHealthBar(frame, hasbg, text, reverse) healthBar.bg:SetTexture(SuperVillain.Media.bar.gradient) healthBar.bg:SetVertexColor(0.4, 0.1, 0.1) healthBar.bg.multiplier = 0.25 - end; + end local flasher = CreateFrame("Frame", nil, frame) flasher:SetFrameLevel(3) @@ -360,17 +328,7 @@ function MOD:CreateHealthBar(frame, hasbg, text, reverse) flasher[1]:SetBlendMode("ADD") flasher[1]:SetAllPoints(flasher) SetAnim(flasher[1], flasher) - flasher:Hide() - - if text then - healthBar.value = healthBar:CreateFontString(nil, "OVERLAY") - healthBar.value.db = "health" - MOD:SetUnitFont(healthBar.value) - healthBar.value:SetParent(frame.InfoPanel) - local offset = reverse and 2 or -2; - local direction = reverse and "LEFT" or "RIGHT"; - healthBar.value:Point(direction, healthBar, direction, offset, 0) - end; + flasher:Hide() healthBar.animation = flasher healthBar.noupdate = false; @@ -379,7 +337,7 @@ function MOD:CreateHealthBar(frame, hasbg, text, reverse) healthBar.colorDisconnected = true healthBar.Override = Update; return healthBar -end; +end function MOD:RefreshHealthBar(frame) if(frame.db and frame.db.portrait) then @@ -392,5 +350,5 @@ function MOD:RefreshHealthBar(frame) frame.Health:SetStatusBarTexture(LSM:Fetch("statusbar", MOD.db.statusbar)) frame.Health.Override = Update; end - end; + end end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/common/media.lua b/Interface/AddOns/SVUI/packages/unit/common/media.lua index 6f76ef8..083d6b5 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/media.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/media.lua @@ -60,15 +60,7 @@ local CURRENT_FONTOUTLINE = "OUTLINE"; local CURRENT_AURABAR_FONT = [[Interface\AddOns\SVUI\assets\fonts\Alert.ttf]]; local CURRENT_AURABAR_FONTSIZE = 14 local CURRENT_AURABAR_FONTOUTLINE = "NONE" - -local MediaCache = { - ["bars"] = {}, - ["aurabars"] = {}, - ["fonts"] = {}, - ["namefonts"] = {}, - ["aurafonts"] = {}, - ["aurabarfonts"] = {} -} +local INIT_UPDATE = false; --[[ ########################################################## CORE FUNCTIONS @@ -83,81 +75,8 @@ local function UpdateUnitMediaLocals() CURRENT_AURABAR_FONT = LSM:Fetch("font", MOD.db.auraFont); CURRENT_AURABAR_FONTSIZE = MOD.db.auraFontSize CURRENT_AURABAR_FONTOUTLINE = MOD.db.auraFontOutline -end - -function MOD:SetUnitFont(element, unit) - if(not element) then return; end - if(not unit or not MOD.db[unit] or not MOD.db[unit].name) then - element:SetFontTemplate(CURRENT_FONT, CURRENT_FONTSIZE, CURRENT_FONTOUTLINE) - MediaCache["fonts"][element] = true; - else - local db = MOD.db[unit].name; - local font = LSM:Fetch("font", db.font); - element:SetFontTemplate(font, db.fontSize, db.fontOutline) - if(not MediaCache["namefonts"][unit]) then - MediaCache["namefonts"][unit] = {} - end - MediaCache["namefonts"][unit][element] = true; - end -end - -function MOD:UpdateUnitFont(unit) - if(not unit) then return; end - local t = MediaCache["namefonts"][unit]; - local db = MOD.db[unit].name; - - if(db and t) then - for element in pairs(t) do - local font = LSM:Fetch("font", db.font); - element:SetFontTemplate(font, db.fontSize, db.fontOutline) - end - end -end - -function MOD:RefreshUnitAuraFonts() - UpdateUnitMediaLocals() - for element in pairs(MediaCache["aurabarfonts"]) do - element.spelltime:SetFontTemplate(CURRENT_AURABAR_FONT, CURRENT_AURABAR_FONTSIZE, CURRENT_AURABAR_FONTOUTLINE, "RIGHT") - element.spellname:SetFontTemplate(CURRENT_AURABAR_FONT, CURRENT_AURABAR_FONTSIZE, CURRENT_AURABAR_FONTOUTLINE, "LEFT") - end - local i = 1 - for element in pairs(MediaCache["aurafonts"]) do - i = 1; - while element[i] do - local icon = element[i] - icon.text:SetFont(CURRENT_AURABAR_FONT, CURRENT_AURABAR_FONTSIZE, CURRENT_AURABAR_FONTOUTLINE) - icon.count:SetFont(CURRENT_AURABAR_FONT, CURRENT_AURABAR_FONTSIZE, CURRENT_AURABAR_FONTOUTLINE) - i = i + 1 - end - end -end - -function MOD:RefreshUnitFonts() - UpdateUnitMediaLocals() - for element in pairs(MediaCache["fonts"]) do - element:SetFontTemplate(CURRENT_FONT, CURRENT_FONTSIZE, CURRENT_FONTOUTLINE) - end -end - -function MOD:SetUnitStatusbar(element) - if(not element or element.noupdate or element:GetObjectType() ~= "StatusBar") then return; end - element:SetStatusBarTexture(CURRENT_BAR_TEXTURE) - MediaCache["bars"][element] = true; -end - -function MOD:WatchUnitMedia(key, frame) - MediaCache[key][frame] = true; -end - -function MOD:RefreshUnitTextures() - UpdateUnitMediaLocals() - for element in pairs(MediaCache["bars"]) do - element:SetStatusBarTexture(CURRENT_BAR_TEXTURE) - end - for element in pairs(MediaCache["aurabars"]) do - element.auraBarTexture = CURRENT_AURABAR_TEXTURE - end -end + INIT_UPDATE = true +end function MOD:RefreshUnitColors() local db = SuperVillain.db.media.unitframes @@ -180,4 +99,64 @@ function MOD:RefreshUnitColors() end local r, g, b = db.health[1], db.health[2], db.health[3] oUF_SuperVillain.colors.smooth = {1, 0, 0, 1, 1, 0, r, g, b} +end + +local unitRoster = {"player", "target", "targettarget", "pet", "pettarget", "focus", "focustarget", "party", "raidpet", "assist", "tank", "raid10", "raid25", "raid40", "boss", "arena"}; + +function MOD:RefreshUnitMedia(unitName, updateUpvalues) + if(not self.db or (self.db and self.db.enable ~= true)) then return end + if((not INIT_UPDATE) or updateUpvalues == true) then UpdateUnitMediaLocals() end + local db = self.db + local unitDB = db[unitName] + if(self[unitName] and unitDB and unitDB.enable) then + + local frame = self[unitName] + local panel = frame.InfoPanel + + if(panel.Name and unitDB.name) then + panel.Name:SetFont(LSM:Fetch("font", unitDB.name.font), unitDB.name.fontSize, unitDB.name.fontOutline) + end + if(panel.Health) then + panel.Health:SetFont(CURRENT_FONT, CURRENT_FONTSIZE, CURRENT_FONTOUTLINE) + end + if(panel.Power) then + panel.Power:SetFont(CURRENT_FONT, CURRENT_FONTSIZE, CURRENT_FONTOUTLINE) + end + if(panel.Misc) then + panel.Misc:SetFont(CURRENT_FONT, CURRENT_FONTSIZE, CURRENT_FONTOUTLINE) + end + if(frame.Power and (unitDB.power and unitDB.power.enable)) then + frame.Power:SetStatusBarTexture(CURRENT_BAR_TEXTURE) + end + if(frame.AuraBars and (unitDB.aurabar and unitDB.aurabar.enable)) then + local ab = frame.AuraBars + ab.auraBarTexture = CURRENT_AURABAR_TEXTURE + ab.textFont = CURRENT_AURABAR_FONT + ab.textSize = CURRENT_AURABAR_FONTSIZE + ab.textOutline = CURRENT_AURABAR_FONTOUTLINE + end + if(frame.Buffs and (unitDB.buffs and unitDB.buffs.enable)) then + local buffs = frame.Buffs + buffs.textFont = CURRENT_AURABAR_FONT + buffs.textSize = CURRENT_AURABAR_FONTSIZE + buffs.textOutline = CURRENT_AURABAR_FONTOUTLINE + end + if(frame.Debuffs and (unitDB.debuffs and unitDB.debuffs.enable)) then + local debuffs = frame.Debuffs + debuffs.textFont = CURRENT_AURABAR_FONT + debuffs.textSize = CURRENT_AURABAR_FONTSIZE + debuffs.textOutline = CURRENT_AURABAR_FONTOUTLINE + end + end +end + +function MOD:RefreshAllUnitMedia() + if(not self.db or (self.db and self.db.enable ~= true)) then return end + UpdateUnitMediaLocals() + -- [[ COLORS ]] -- + self:RefreshUnitColors() + -- [[ FRAMES ]] -- + for i = 1, 16 do + self:RefreshUnitMedia(unitRoster[i], false) + end end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/common/misc.lua b/Interface/AddOns/SVUI/packages/unit/common/misc.lua index d801c48..c0df411 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/misc.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/misc.lua @@ -36,28 +36,6 @@ local ROLE_ICON_DATA = { ["HEALER"] = {0,0.5,0.5,1, 0.5,0.75,0.75,1}, ["DAMAGER"] = {0.5,1,0,0.5, 0.75,1,0.5,0.75} }; --- local fadeManager = CreateFrame("Frame",nil,UIParent) --- fadeManager.fadeRoles = false; --- fadeManager.fadeNames = false; --- fadeManager.fadeFrames = {}; ---[[ -########################################################## -NAME -########################################################## -]]-- -function MOD:CreateNameText(frame, unitName) - local name = frame.InfoPanel:CreateFontString(nil, "OVERLAY") - name:SetShadowOffset(2, -2) - name:SetShadowColor(0, 0, 0, 1) - name:SetFontTemplate() - if unitNmae == "target" then - name:SetPoint("TOPRIGHT", frame.InfoPanel) - else - name:SetPoint("CENTER", frame.InfoPanel) - end - MOD:SetUnitFont(name, unitName) - return name; -end --[[ ########################################################## RAID DEBUFFS / DEBUFF HIGHLIGHT @@ -102,7 +80,7 @@ VARIOUS ICONS ]]-- function MOD:CreateResurectionIcon(frame) local rez = frame.InfoPanel:CreateTexture(nil, "OVERLAY") - rez:Point("CENTER", frame.Health.value, "CENTER") + rez:Point("CENTER", frame.InfoPanel.Health, "CENTER") rez:Size(30, 25) rez:SetDrawLayer("OVERLAY", 7) return rez @@ -156,7 +134,6 @@ function MOD:CreateRoleIcon(frame) rIcon:Point("BOTTOMRIGHT", rIconHolder, "BOTTOMRIGHT") rIcon.Override = MOD.UpdateRoleIcon; frame:RegisterEvent("UNIT_CONNECTION", MOD.UpdateRoleIcon) - -- fadeManager.fadeFrames[frame] = true; return rIcon end @@ -235,44 +212,4 @@ function MOD:RaidRoleUpdate() looterIcon:Point("RIGHT", frame, "RIGHT") end end -end ---[[ -########################################################## -FADEFRAME MANAGER -########################################################## -]]-- --- fadeManager:SetScript("OnEvent", function(self, event, ...) --- if event == "PLAYER_REGEN_DISABLED" then --- for frame, _ in pairs(fadeManager.fadeFrames) do --- if frame.Name and fadeManager.fadeNames == true then --- frame.Name:SetAlpha(0.4) --- local f1, f2, f3 = frame.Name:GetFont() --- frame.Name.OldOutline = f3 --- frame.Name:SetFont(f1, f2, nil) --- end --- if frame.LFDRole and fadeManager.fadeRoles == true then frame.LFDRole:SetAlpha(0) end --- end --- elseif event == "PLAYER_REGEN_ENABLED" then --- for frame, _ in pairs(fadeManager.fadeFrames) do --- if frame.Name and fadeManager.fadeNames == true then --- frame.Name:SetAlpha(1) --- local f1, f2, f3 = frame.Name:GetFont() --- frame.Name:SetFont(f1, f2, frame.Name.OldOutline or "OUTLINE") --- end --- if frame.LFDRole and fadeManager.fadeRoles == true then frame.LFDRole:SetAlpha(1) end --- end --- end --- end) - --- function MOD:SetFadeManager() --- if MOD.db.combatFadeRoles ~= true and MOD.db.combatFadeNames ~= true then --- fadeManager:UnregisterAllEvents() --- fadeManager.fadeRoles = false; --- fadeManager.fadeNames = false; --- else --- fadeManager:RegisterEvent("PLAYER_REGEN_ENABLED") --- fadeManager:RegisterEvent("PLAYER_REGEN_DISABLED") --- fadeManager.fadeRoles = MOD.db.combatFadeRoles; --- fadeManager.fadeNames = MOD.db.combatFadeNames; --- end --- end \ No newline at end of file +end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/common/power.lua b/Interface/AddOns/SVUI/packages/unit/common/power.lua index 10164a2..1037110 100644 --- a/Interface/AddOns/SVUI/packages/unit/common/power.lua +++ b/Interface/AddOns/SVUI/packages/unit/common/power.lua @@ -27,130 +27,123 @@ LOCAL VARIABLES ########################################################## ]]-- local random = math.random; -local token={[0]="MANA",[1]="RAGE",[2]="FOCUS",[3]="ENERGY",[6]="RUNIC_POWER"} +local token = {[0] = "MANA", [1] = "RAGE", [2] = "FOCUS", [3] = "ENERGY", [6] = "RUNIC_POWER"} --[[ ########################################################## LOCAL FUNCTIONS ########################################################## ]]-- -local PostUpdateAltPower = function(self,min,current,max) - local remaining=floor(current / max * 100) - local parent=self:GetParent() +local PostUpdateAltPower = function(self, min, current, max) + local remaining = floor(current / max * 100) + local parent = self:GetParent() if remaining < 35 then - self:SetStatusBarColor(0,1,0) + self:SetStatusBarColor(0, 1, 0) elseif remaining < 70 then - self:SetStatusBarColor(1,1,0) + self:SetStatusBarColor(1, 1, 0) else - self:SetStatusBarColor(1,0,0) - end; - local unit=parent.unit; + self:SetStatusBarColor(1, 0, 0) + end + local unit = parent.unit; if(unit == "player" and self.text) then - local apInfo=select(10,UnitAlternatePowerInfo(unit)) + local apInfo = select(10, UnitAlternatePowerInfo(unit)) if remaining > 0 then - self.text:SetText(apInfo..": "..format("%d%%",remaining)) + self.text:SetText(apInfo..": "..format("%d%%", remaining)) else self.text:SetText(apInfo..": 0%") end elseif(unit and unit:find("boss%d") and self.text) then self.text:SetTextColor(self:GetStatusBarColor()) - if not parent.Power.value:GetText() or parent.Power.value:GetText()=="" then - self.text:Point("BOTTOMRIGHT",parent.Health,"BOTTOMRIGHT") + if not parent.InfoPanel.Power:GetText() or parent.InfoPanel.Power:GetText() == "" then + self.text:Point("BOTTOMRIGHT", parent.Health, "BOTTOMRIGHT") else - self.text:Point("RIGHT", parent.Power.value.value, "LEFT", 2, 0) - end; + self.text:Point("RIGHT", parent.InfoPanel.Power, "LEFT", 2, 0) + end if remaining > 0 then - self.text:SetText("|cffD7BEA5[|r"..format("%d%%",remaining).."|cffD7BEA5]|r") + self.text:SetText("|cffD7BEA5[|r"..format("%d%%", remaining).."|cffD7BEA5]|r") else self.text:SetText(nil) end end -end; +end --[[ ########################################################## BUILD FUNCTION ########################################################## ]]-- -function MOD:CreatePowerBar(frame,bg,text,direction) - local power=CreateFrame('StatusBar',nil,frame) - MOD:SetUnitStatusbar(power) +function MOD:CreatePowerBar(frame, bg) + local power = CreateFrame("StatusBar", nil, frame) + power:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]]) power:SetPanelTemplate("Inset") if bg then - power.bg=power:CreateTexture(nil,'BORDER') + power.bg = power:CreateTexture(nil, "BORDER") power.bg:SetAllPoints() power.bg:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) - power.bg.multiplier=0.2 - end; - if text then - power.value=frame.InfoPanel:CreateFontString(nil,'OVERLAY') - power.value.db='power'MOD:SetUnitFont(power.value) - power.value:SetParent(frame.InfoPanel) - local offset = -2; - if direction=='LEFT'then offset=2 end; - power.value:Point(direction,frame.Health,direction,offset,0) - end; - power.colorDisconnected=false; - power.colorTapping=false; - power.PostUpdate=MOD.PostUpdatePower; + power.bg.multiplier = 0.2 + end + power.colorDisconnected = false; + power.colorTapping = false; + power.PostUpdate = MOD.PostUpdatePower; return power -end; +end function MOD:CreateAltPowerBar(frame) - local altPower = CreateFrame("StatusBar",nil,frame) - MOD:SetUnitStatusbar(altPower) + local altPower = CreateFrame("StatusBar", nil, frame) + altPower:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]]) altPower:SetPanelTemplate("Inset") altPower:GetStatusBarTexture():SetHorizTile(false) altPower:SetFrameStrata("MEDIUM") - altPower.text = altPower:CreateFontString(nil,'OVERLAY') + altPower.text = altPower:CreateFontString(nil, "OVERLAY") altPower.text:SetPoint("CENTER") altPower.text:SetJustifyH("CENTER") - MOD:SetUnitFont(altPower.text) + altPower.text:SetFont(LSM:Fetch("font", MOD.db.font), MOD.db.fontSize, MOD.db.fontOutline) altPower.PostUpdate = PostUpdateAltPower; return altPower -end; +end --[[ ########################################################## UPDATE ########################################################## ]]-- -function MOD:PowerUpdateNamePosition(frame,unit) - if not frame.Power.value:IsShown() or not frame.Name then return end; +local function PowerUpdateNamePosition(frame, unit) + local panel = frame.InfoPanel + if(not panel.Power or (panel.Power and not panel.Power:IsShown()) or not panel.Name) then return end local db = frame.db; - local parent = frame.Name:GetParent() + local parent = panel.Name:GetParent() if UnitIsPlayer(unit)then local point = db.name.position; - frame.Power.value:SetAlpha(1) - frame.Name:ClearAllPoints() - SuperVillain:ReversePoint(frame.Name, point, parent, db.name.xOffset, db.name.yOffset) + panel.Power:SetAlpha(1) + panel.Name:ClearAllPoints() + SuperVillain:ReversePoint(panel.Name, point, parent, db.name.xOffset, db.name.yOffset) else - frame.Power.value:SetAlpha(db.power.hideonnpc and 0 or 1) - frame.Name:ClearAllPoints() - frame.Name:SetPoint(frame.Power.value:GetPoint()) - end; -end; + panel.Power:SetAlpha(db.power.hideonnpc and 0 or 1) + panel.Name:ClearAllPoints() + panel.Name:SetPoint(panel.Power:GetPoint()) + end +end -function MOD:PostUpdatePower(unit,value,max) - local powerType,_,_,_,_ = UnitPowerType(unit) - local parent=self:GetParent() +function MOD:PostUpdatePower(unit, value, max) + local powerType, _, _, _, _ = UnitPowerType(unit) + local parent = self:GetParent() if parent.isForced then value = random(1, max) powerType = random(0, 4) self:SetValue(value) - end; - local colors=oUF_SuperVillain.colors.power[token[powerType]] + end + local colors = oUF_SuperVillain.colors.power[token[powerType]] local mult = self.bg.multiplier or 1; local isPlayer = UnitPlayerControlled(unit) if isPlayer and self.colorClass then - local _,class=UnitClassBase(unit); - colors=oUF_SuperVillain['colors'].class[class] + local _, class = UnitClassBase(unit); + colors = oUF_SuperVillain["colors"].class[class] elseif not isPlayer then - local react=UnitReaction("player",unit) - colors=oUF_SuperVillain['colors'].reaction[react] - end; + local react = UnitReaction("player", unit) + colors = oUF_SuperVillain["colors"].reaction[react] + end if not colors then return end - self:SetStatusBarColor(colors[1],colors[2],colors[3]) - self.bg:SetVertexColor(colors[1]*mult,colors[2]*mult,colors[3]*mult) - local db=parent.db; + self:SetStatusBarColor(colors[1], colors[2], colors[3]) + self.bg:SetVertexColor(colors[1] * mult, colors[2] * mult, colors[3] * mult) + local db = parent.db; if db and db.power and db.power.hideonnpc then - MOD:PowerUpdateNamePosition(parent,unit) + PowerUpdateNamePosition(parent, unit) end -end; \ No newline at end of file +end \ No newline at end of file diff --git a/Interface/AddOns/SVUI/packages/unit/frames/all_units.lua b/Interface/AddOns/SVUI/packages/unit/frames/all_units.lua index 113773f..f202cd2 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/all_units.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/all_units.lua @@ -68,38 +68,6 @@ local SETTINGS = { ["boss"]={"BOTTOMRIGHT","TOPLEFT","BOTTOMLEFT","TOPRIGHT",-1,1}, ["arena"]={"BOTTOMRIGHT","TOPLEFT","BOTTOMLEFT","TOPRIGHT",-1,1} }; -local useUnitWidth = { - ["player"] = true, - ["target"] = true, - ["targettarget"] = true, - ["pet"] = true, - ["pettarget"] = true, - ["focus"] = true, - ["focustarget"] = true, - ["party"] = false, - ["raid"] = false, - ["raidpet"] = false, - ["assist"] = true, - ["tank"] = true, - ["boss"] = true, - ["arena"] = true -}; -local useSolidTexture = { - ["player"] = false, - ["target"] = false, - ["targettarget"] = true, - ["pet"] = true, - ["pettarget"] = true, - ["focus"] = false, - ["focustarget"] = true, - ["party"] = true, - ["raid"] = true, - ["raidpet"] = true, - ["assist"] = true, - ["tank"] = true, - ["boss"] = true, - ["arena"] = true -}; --[[ ########################################################## LOCAL FUNCTIONS @@ -134,7 +102,7 @@ function MOD:RefreshUnitLayout(frame, template) local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; local BEST_SIZE = min(UNIT_WIDTH,UNIT_HEIGHT); - local AURA_HOLDER = useUnitWidth[template] and db.width or SuperVillain:Scale(100) + local AURA_HOLDER = db.width local powerHeight = (db.power and db.power.enable) and (db.power.height - 1) or 1; local BOTTOM_ANCHOR1 = UNIT_TEMPLATE[1]; local TOP_ANCHOR1 = UNIT_TEMPLATE[2]; @@ -145,14 +113,19 @@ function MOD:RefreshUnitLayout(frame, template) local overlayAnimation = false; local portraitWidth = (1 * MOD1); local healthPanel = frame.HealthPanel + local infoPanel = frame.InfoPanel local calculatedHeight = db.height; + if(template:find("raid")) then + AURA_HOLDER = 100 + end + if(db.portrait and db.portrait.enable) then if(not db.portrait.overlay) then portraitWidth = ((db.portrait.width * MOD1) + (1 * MOD1)) else portraitOverlay = true - overlayAnimation = MOD.db.overlayAnimation + overlayAnimation = self.db.overlayAnimation end end if(frame.PVPSpecIcon and db.pvpSpecIcon) then @@ -209,26 +182,65 @@ function MOD:RefreshUnitLayout(frame, template) glow:Point("BOTTOMRIGHT",GAP,-GAP) end - if(frame.InfoPanel.Misc and db.misc) then - frame:Tag(frame.InfoPanel.Misc, db.misc.tags) + --[[ INFO TEXTS ]]-- + + if(infoPanel.Name and db.name) then + local nametext = infoPanel.Name + if(not db.power or (not db.power.hideonnpc) or db.power.tags == "") then + nametext:ClearAllPoints() + SuperVillain:ReversePoint(nametext, db.name.position, infoPanel, db.name.xOffset, db.name.yOffset) + end + frame:Tag(nametext, db.name.tags) + end + + if(frame.Health and infoPanel.Health and db.health) then + local healthtext = infoPanel.Health + local point = db.health.position + healthtext:ClearAllPoints() + SuperVillain:ReversePoint(healthtext, point, infoPanel, db.health.xOffset, db.health.yOffset) + frame:Tag(healthtext, db.health.tags) + end + + if(frame.Power and infoPanel.Power and db.power) then + local powertext = infoPanel.Power + if(infoPanel.Health) then + powertext:SetFont(infoPanel.Health:GetFont()) + end + if db.power.tags and db.power.tags ~= '' then + local point = db.power.position + powertext:ClearAllPoints() + SuperVillain:ReversePoint(powertext, point, infoPanel, db.power.xOffset, db.power.yOffset) + frame:Tag(powertext, db.power.tags) + + if db.power.attachTextToPower then + powertext:SetParent(frame.Power) + else + powertext:SetParent(infoPanel) + end + else + powertext:Hide() + end + end + + if(infoPanel.Misc and db.misc) then + if(infoPanel.Health) then + infoPanel.Misc:SetFont(infoPanel.Health:GetFont()) + end + frame:Tag(infoPanel.Misc, db.misc.tags) end --[[ HEALTH LAYOUT ]]-- do local health = frame.Health; - if(db.health and (db.health.reversed ~= nil)) then + if(db.health and (db.health.reversed ~= nil)) then health.fillInverted = db.health.reversed; else health.fillInverted = false end - health.Smooth = MOD.db.smoothbars; - if health.value then - local point = db.health.position - health.value:ClearAllPoints() - SuperVillain:ReversePoint(health.value, point, frame.InfoPanel, db.health.xOffset, db.health.yOffset) - frame:Tag(health.value, db.health.tags) - end + + health.Smooth = self.db.smoothbars; + health.colorSmooth = nil; health.colorHealth = nil; health.colorClass = nil; @@ -243,21 +255,21 @@ function MOD:RefreshUnitLayout(frame, template) if(frame.HealPrediction) then frame.HealPrediction["frequentUpdates"] = health.frequentUpdates end - if(portraitOverlay and MOD.db.forceHealthColor) then + if(portraitOverlay and self.db.forceHealthColor) then health.colorOverlay = true; else if(db.colorOverride and db.colorOverride == "FORCE_ON") then - health.colorClass=true; - health.colorReaction=true + health.colorClass = true; + health.colorReaction = true elseif(db.colorOverride and db.colorOverride == "FORCE_OFF") then - if MOD.db.colorhealthbyvalue==true then - health.colorSmooth=true + if self.db.colorhealthbyvalue == true then + health.colorSmooth = true else - health.colorHealth=true + health.colorHealth = true end else - if(not MOD.db.healthclass) then - if MOD.db.colorhealthbyvalue == true then + if(not self.db.healthclass) then + if self.db.colorhealthbyvalue == true then health.colorSmooth = true else health.colorHealth = true @@ -273,24 +285,10 @@ function MOD:RefreshUnitLayout(frame, template) if db.health and db.health.orientation then health:SetOrientation(db.health.orientation) end - MOD:RefreshHealthBar(frame) + self:RefreshHealthBar(frame) end - --[[ NAME LAYOUT ]]-- - - if frame.Name then - if db.name then - local name = frame.Name - local parent = frame.InfoPanel - if not db.power or not db.power.hideonnpc or db.power.tags == "" then - name:ClearAllPoints() - SuperVillain:ReversePoint(name, db.name.position, parent, db.name.xOffset, db.name.yOffset) - end - frame:Tag(name, db.name.tags) - end - end - --[[ POWER LAYOUT ]]-- do @@ -300,27 +298,14 @@ function MOD:RefreshUnitLayout(frame, template) if not frame:IsElementEnabled('Power')then frame:EnableElement('Power') power:Show() - end - power.Smooth = MOD.db.smoothbars; - if power.value then - if db.power.tags and db.power.tags ~= '' then - local point = db.power.position - power.value:ClearAllPoints() - SuperVillain:ReversePoint(power.value, point, frame.InfoPanel, db.power.xOffset, db.power.yOffset) - frame:Tag(power.value,db.power.tags) - if db.power.attachTextToPower then - power.value:SetParent(power) - else - power.value:SetParent(frame.InfoPanel) - end - else - power.value:Hide() - end - end + end + + power.Smooth = self.db.smoothbars; + power.colorClass = nil; power.colorReaction = nil; power.colorPower = nil; - if MOD.db.powerclass then + if self.db.powerclass then power.colorClass = true; power.colorReaction = true else @@ -352,11 +337,14 @@ function MOD:RefreshUnitLayout(frame, template) end if db.power.enable then frame:EnableElement('AltPowerBar') + if(infoPanel.Health) then + altPower.text:SetFont(infoPanel.Health:GetFont()) + end altPower.text:SetAlpha(1) altPower:Point(TOP_ANCHOR2, frame, TOP_ANCHOR2, portraitWidth, -1) altPower:Point(TOP_ANCHOR1, frame, TOP_ANCHOR1, (1 * MOD2), -1) altPower:SetHeight(powerHeight) - altPower.Smooth = MOD.db.smoothbars; + altPower.Smooth = self.db.smoothbars; altPower:HookScript("OnShow", Alt_OnShow) altPower:HookScript("OnHide", Alt_OnHide) else @@ -537,7 +525,6 @@ function MOD:RefreshUnitLayout(frame, template) if db.buffs.enable then buffs:Show() - MOD:UpdateAuraIconSettings(buffs) else buffs:Hide() end @@ -570,7 +557,6 @@ function MOD:RefreshUnitLayout(frame, template) if db.debuffs.enable then debuffs:Show() - MOD:UpdateAuraIconSettings(debuffs) else debuffs:Hide() end @@ -583,7 +569,6 @@ function MOD:RefreshUnitLayout(frame, template) local auraBar = frame.AuraBars; if db.aurabar.enable then if not frame:IsElementEnabled('AuraBars') then frame:EnableElement('AuraBars')end - auraBar.auraBarTexture = LSM:Fetch("statusbar", MOD.db.auraBarStatusbar); auraBar:Show() auraBar.friendlyAuraType = db.aurabar.friendlyAuraType; auraBar.enemyAuraType = db.aurabar.enemyAuraType; @@ -613,14 +598,14 @@ function MOD:RefreshUnitLayout(frame, template) auraBar:SetSize(UNIT_WIDTH, db.aurabar.height) auraBar:Point(anchorPoint..'LEFT', attachTo, relativePoint..'LEFT', 1, yOffset) auraBar.buffColor = oUF_SuperVillain.colors.buff_bars - if MOD.db.auraBarByType then + if self.db.auraBarByType then auraBar.debuffColor = nil; auraBar.defaultDebuffColor = oUF_SuperVillain.colors.debuff_bars else auraBar.debuffColor = oUF_SuperVillain.colors.debuff_bars auraBar.defaultDebuffColor = nil end - MOD:SortAuraBars(auraBar, db.aurabar.sort) + self:SortAuraBars(auraBar, db.aurabar.sort) auraBar:SetAnchors() else if frame:IsElementEnabled('AuraBars')then frame:DisableElement('AuraBars')auraBar:Hide()end @@ -706,8 +691,8 @@ function MOD:RefreshUnitLayout(frame, template) --[[ DEBUFF HIGHLIGHT LAYOUT ]]-- if frame.Afflicted then - if MOD.db.debuffHighlighting then - if(useSolidTexture[template]) then + if self.db.debuffHighlighting then + if(template ~= "player" and template ~= "target" and template ~= "focus") then frame.Afflicted:SetTexture([[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]]) end frame:EnableElement('Afflicted') @@ -719,7 +704,7 @@ function MOD:RefreshUnitLayout(frame, template) --[[ RANGE CHECK LAYOUT ]]-- if frame.Range then - frame.Range.outsideAlpha = MOD.db.OORAlpha or 1; + frame.Range.outsideAlpha = self.db.OORAlpha or 1; if db.rangeCheck then if not frame:IsElementEnabled('Range')then frame:EnableElement('Range') diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/focus.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/focus.lua index 61b67b7..67521d0 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/focus.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/focus.lua @@ -28,10 +28,9 @@ BUILD FUNCTION ]]-- function MOD.Construct:focus(frame) MOD:SetActionPanel(frame, "focus") - frame.Health = MOD:CreateHealthBar(frame, true, true, "RIGHT") + frame.Health = MOD:CreateHealthBar(frame, true, true) frame.Health.frequentUpdates = true; - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") - frame.Name = MOD:CreateNameText(frame, "focus") + frame.Power = MOD:CreatePowerBar(frame, true) frame.Buffs = MOD:CreateBuffs(frame) frame.Castbar = MOD:CreateCastbar(frame, false, L["Focus Castbar"]) frame.Castbar.SafeZone = nil; @@ -57,6 +56,7 @@ function MOD.FrameUpdate:focus(unit, frame, db) frame.db = db; local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("focus") frame.unit = unit; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/ft.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/ft.lua index ecaf1e8..6a18eeb 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/ft.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/ft.lua @@ -28,9 +28,8 @@ BUILD FUNCTION ]]-- function MOD.Construct:focustarget(frame) MOD:SetActionPanel(frame, "focustarget") - frame.Health = MOD:CreateHealthBar(frame, true, true, "RIGHT") - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") - frame.Name = MOD:CreateNameText(frame, "focustarget") + frame.Health = MOD:CreateHealthBar(frame, true) + frame.Power = MOD:CreatePowerBar(frame, true) frame.Buffs = MOD:CreateBuffs(frame) frame.RaidIcon = MOD:CreateRaidIcon(frame) frame.Debuffs = MOD:CreateDebuffs(frame) @@ -47,6 +46,7 @@ function MOD.FrameUpdate:focustarget(unit, frame, db) frame.db = db; local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("focustarget") frame.unit = unit; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/pet.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/pet.lua index 8dfbb9d..1cd5bca 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/pet.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/pet.lua @@ -28,15 +28,11 @@ BUILD FUNCTION ]]-- function MOD.Construct:pet(frame) MOD:SetActionPanel(frame, "pet") - frame.Health = MOD:CreateHealthBar(frame, true, true) + frame.Health = MOD:CreateHealthBar(frame, true) frame.Health.frequentUpdates = true; - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") + frame.Power = MOD:CreatePowerBar(frame, true) frame.Power.frequentUpdates = false; MOD:CreatePortrait(frame, true) - frame.Name = MOD:CreateNameText(frame, "pet") - frame.Name:ClearAllPoints() - frame.Name:SetParent(frame.InfoPanel) - frame.Name:Point("CENTER", frame.InfoPanel, "CENTER") frame.Buffs = MOD:CreateBuffs(frame) frame.RaidIcon = MOD:CreateRaidIcon(frame) frame.Debuffs = MOD:CreateDebuffs(frame) @@ -56,6 +52,7 @@ function MOD.FrameUpdate:pet(unit, frame, db) frame.db = db; local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("pet") frame.unit = unit; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/player.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/player.lua index d0b398c..131aaa7 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/player.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/player.lua @@ -28,20 +28,10 @@ BUILD FUNCTION ]]-- function MOD.Construct:player(frame) MOD:SetActionPanel(frame, "player") - frame.Health = MOD:CreateHealthBar(frame, true, true) - frame.Health.frequentUpdates = true; - frame.Health.value:ClearAllPoints() - frame.Health.value:SetParent(frame.InfoPanel) - frame.Health.value:Point("RIGHT", frame.InfoPanel, "RIGHT") - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") - frame.Power.frequentUpdates = true; - frame.Power.value:ClearAllPoints() - frame.Power.value:SetParent(frame.InfoPanel) - frame.Power.value:Point("LEFT", frame.InfoPanel, "LEFT") - frame.Name = MOD:CreateNameText(frame, "player") - frame.Name:ClearAllPoints() - frame.Name:SetParent(frame.InfoPanel) - frame.Name:Point("CENTER", frame.InfoPanel, "CENTER") + frame.Health = MOD:CreateHealthBar(frame, true) + frame.Health.frequentUpdates = true + frame.Power = MOD:CreatePowerBar(frame, true) + frame.Power.frequentUpdates = true MOD:CreatePortrait(frame, false, true) frame.Buffs = MOD:CreateBuffs(frame) frame.Debuffs = MOD:CreateDebuffs(frame) @@ -52,7 +42,7 @@ function MOD.Construct:player(frame) frame.Resting = MOD:CreateRestingIndicator(frame) frame.Combat = MOD:CreateCombatIndicator(frame) frame.PvPText = frame.InfoPanel:CreateFontString(nil,'OVERLAY') - MOD:SetUnitFont(frame.PvPText) + frame.PvPText:SetFontTemplate(LSM:Fetch("font", MOD.db.font), MOD.db.fontSize, MOD.db.fontOutline) frame.Afflicted = MOD:CreateAfflicted(frame) frame.HealPrediction = MOD:CreateHealPrediction(frame, true) frame.AuraBars = MOD:CreateAuraBarHeader(frame, "player") @@ -67,7 +57,6 @@ UPDATE ]]-- function MOD.FrameUpdate:player(unit, frame, db) frame.db = db; - local OFFSET = SuperVillain:Scale(1); local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; local USE_CLASSBAR = db.classbar.enable; @@ -75,6 +64,7 @@ function MOD.FrameUpdate:player(unit, frame, db) local classBarWidth = db.width * 0.4; local healthPanel = frame.HealthPanel local iconDB = db.icons + MOD:RefreshUnitMedia("player") frame.unit = unit frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/pt.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/pt.lua index 4f4fb2c..2ad61e5 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/pt.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/pt.lua @@ -27,10 +27,9 @@ BUILD FUNCTION ########################################################## ]]-- function MOD.Construct:pettarget(frame) - MOD:SetActionPanel(frame) - frame.Health = MOD:CreateHealthBar(frame, true, true, "RIGHT") - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") - frame.Name = MOD:CreateNameText(frame, "pettarget") + MOD:SetActionPanel(frame, "pettarget") + frame.Health = MOD:CreateHealthBar(frame, true) + frame.Power = MOD:CreatePowerBar(frame, true) frame.Buffs = MOD:CreateBuffs(frame) frame.Debuffs = MOD:CreateDebuffs(frame) frame.Range = { insideAlpha = 1, outsideAlpha = 1 } @@ -46,6 +45,7 @@ function MOD.FrameUpdate:pettarget(unit, frame, db) frame.db = db; local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("pettarget") frame.unit = unit; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/target.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/target.lua index 0709f3e..c73bb8b 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/target.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/target.lua @@ -28,27 +28,20 @@ BUILD FUNCTION ]]-- function MOD.Construct:target(frame) MOD:SetActionPanel(frame, "target") - frame.Health = MOD:CreateHealthBar(frame,true,true,true) - frame.Health.frequentUpdates=true; - frame.Health.value:ClearAllPoints() - frame.Health.value:SetParent(frame.InfoPanel) - frame.Health.value:Point('LEFT',frame.InfoPanel,'LEFT') - frame.Power = MOD:CreatePowerBar(frame,true,true,'RIGHT') - frame.Power.frequentUpdates=true; - frame.Power.value:ClearAllPoints() - frame.Power.value:SetParent(frame.InfoPanel) - frame.Power.value:Point('RIGHT',frame.InfoPanel,'RIGHT') - frame.Name = MOD:CreateNameText(frame,"target") + frame.Health = MOD:CreateHealthBar(frame, true, true) + frame.Health.frequentUpdates = true + frame.Power = MOD:CreatePowerBar(frame, true, true) + frame.Power.frequentUpdates = true MOD:CreatePortrait(frame) frame.Buffs = MOD:CreateBuffs(frame) frame.Debuffs = MOD:CreateDebuffs(frame) frame.Castbar = MOD:CreateCastbar(frame, true, L["Target Castbar"], true) frame.RaidIcon = MOD:CreateRaidIcon(frame) local isSmall = MOD.db.target.combobar.smallIcons - if(SuperVillain.class == 'ROGUE') then - frame.HyperCombo = MOD:CreateRogueCombobar(frame,isSmall) - elseif(SuperVillain.class == 'DRUID') then - frame.HyperCombo = MOD:CreateDruidCombobar(frame,isSmall) + if(SuperVillain.class == "ROGUE") then + frame.HyperCombo = MOD:CreateRogueCombobar(frame, isSmall) + elseif(SuperVillain.class == "DRUID") then + frame.HyperCombo = MOD:CreateDruidCombobar(frame, isSmall) end frame.HealPrediction = MOD:CreateHealPrediction(frame, true) frame.Afflicted = MOD:CreateAfflicted(frame) @@ -70,12 +63,12 @@ UPDATE ########################################################## ]]-- function MOD.FrameUpdate:target(unit, frame, db) - frame.db = db; - local SPACER = SuperVillain:Scale(1); + frame.db = db local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; local USE_COMBOBAR = db.combobar.enable; local comboBarHeight = db.combobar.height; + MOD:RefreshUnitMedia("target") frame.unit = unit; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/basic/tot.lua b/Interface/AddOns/SVUI/packages/unit/frames/basic/tot.lua index 24dbd53..7c6bb92 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/basic/tot.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/basic/tot.lua @@ -28,13 +28,9 @@ BUILD FUNCTION ]]-- function MOD.Construct:targettarget(frame) MOD:SetActionPanel(frame, "targettarget") - frame.Health = MOD:CreateHealthBar(frame, true, true) - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") + frame.Health = MOD:CreateHealthBar(frame, true) + frame.Power = MOD:CreatePowerBar(frame, true) MOD:CreatePortrait(frame, true) - frame.Name = MOD:CreateNameText(frame, "targettarget") - frame.Name:ClearAllPoints() - frame.Name:SetParent(frame.InfoPanel) - frame.Name:Point("CENTER", frame.InfoPanel, "CENTER") frame.Buffs = MOD:CreateBuffs(frame) frame.RaidIcon = MOD:CreateRaidIcon(frame) frame.Debuffs = MOD:CreateDebuffs(frame) @@ -51,6 +47,7 @@ function MOD.FrameUpdate:targettarget(unit, frame, db) frame.db = db; local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("targettarget") frame.unit = unit; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") frame.colors = oUF_SuperVillain.colors; diff --git a/Interface/AddOns/SVUI/packages/unit/frames/extra/arena.lua b/Interface/AddOns/SVUI/packages/unit/frames/extra/arena.lua index f010073..405e995 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/extra/arena.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/extra/arena.lua @@ -53,10 +53,9 @@ local function PrepFrame_OnUpdate(self, event, unit, arg) end function MOD.Construct:arena(frame) - MOD:SetActionPanel(frame) - frame.Health = MOD:CreateHealthBar(frame, true, true, true) - frame.Power = MOD:CreatePowerBar(frame, true, true, "LEFT") - frame.Name = MOD:CreateNameText(frame, "arena") + MOD:SetActionPanel(frame, "arena") + frame.Health = MOD:CreateHealthBar(frame, true, true) + frame.Power = MOD:CreatePowerBar(frame, true) MOD:CreatePortrait(frame) frame.Buffs = MOD:CreateBuffs(frame) frame.Debuffs = MOD:CreateDebuffs(frame) @@ -84,7 +83,7 @@ function MOD.Construct:arena(frame) frame.prepFrame.Icon:SetParent(frame.prepFrame.Icon.bg) frame.prepFrame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9) frame.prepFrame.Icon:FillInner(frame.prepFrame.Icon.bg) - frame.prepFrame.SpecClass = frame.prepFrame.Health:CreateFontString(nil, "OVERLAY") + frame.prepFrame.SpecClass = frame.prepFrame.Health:CreateFontString(nil, "OVERLAY", "NumberFont_Outline_Large") frame.prepFrame.SpecClass:SetPoint("CENTER") frame.prepFrame.unit = frame.unit; frame.prepFrame:RegisterEvent("PLAYER_ENTERING_WORLD") @@ -92,8 +91,7 @@ function MOD.Construct:arena(frame) frame.prepFrame:RegisterEvent("UNIT_NAME_UPDATE") frame.prepFrame:RegisterEvent("ARENA_PREP_OPPONENT_SPECIALIZATIONS") frame.prepFrame:SetScript("OnEvent", PrepFrame_OnUpdate) - MOD:SetUnitStatusbar(frame.prepFrame.Health) - MOD:SetUnitFont(frame.prepFrame.SpecClass) + frame.prepFrame.Health:SetStatusBarTexture([[Interface\AddOns\SVUI\assets\artwork\Bars\DEFAULT]]) end local frameName = frame:GetName() @@ -116,6 +114,7 @@ function MOD.FrameUpdate:arena(unit, frame, db) local holder = _G["SVUI_Arena_MOVE"] local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("arena") frame.unit = unit frame.colors = oUF_SuperVillain.colors; frame:Size(UNIT_WIDTH, UNIT_HEIGHT) diff --git a/Interface/AddOns/SVUI/packages/unit/frames/extra/boss.lua b/Interface/AddOns/SVUI/packages/unit/frames/extra/boss.lua index 11eef3b..1238d06 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/extra/boss.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/extra/boss.lua @@ -28,10 +28,9 @@ BUILD FUNCTION ########################################################## ]]-- function MOD.Construct:boss(frame) - MOD:SetActionPanel(frame) - frame.Health = MOD:CreateHealthBar(frame, true, true, true) - frame.Power = MOD:CreatePowerBar(frame, true, true, "RIGHT") - frame.Name = MOD:CreateNameText(frame, "boss") + MOD:SetActionPanel(frame, "boss") + frame.Health = MOD:CreateHealthBar(frame, true, true) + frame.Power = MOD:CreatePowerBar(frame, true, true) MOD:CreatePortrait(frame) frame.Buffs = MOD:CreateBuffs(frame) frame.Debuffs = MOD:CreateDebuffs(frame) @@ -62,6 +61,7 @@ function MOD.FrameUpdate:boss(unit, frame, db) local holder = _G["SVUI_Boss_MOVE"] local UNIT_WIDTH = db.width; local UNIT_HEIGHT = db.height; + MOD:RefreshUnitMedia("boss") frame.unit = unit; frame.colors = oUF_SuperVillain.colors; frame:Size(UNIT_WIDTH, UNIT_HEIGHT) diff --git a/Interface/AddOns/SVUI/packages/unit/frames/group/assist.lua b/Interface/AddOns/SVUI/packages/unit/frames/group/assist.lua index c6ced42..2db3cfd 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/group/assist.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/group/assist.lua @@ -31,9 +31,8 @@ BUILD FUNCTION function MOD.Construct:assist(...) self:SetScript("OnEnter", UnitFrame_OnEnter) self:SetScript("OnLeave", UnitFrame_OnLeave) - MOD:SetActionPanel(self) + MOD:SetActionPanel(self, "assist") self.Health = MOD:CreateHealthBar(self, true) - self.Name = MOD:CreateNameText(self, "assist") self.RaidIcon = MOD:CreateRaidIcon(self) self.RaidIcon:SetPoint("BOTTOMRIGHT") self.Range = { insideAlpha = 1, outsideAlpha = 1 } @@ -71,6 +70,7 @@ function MOD.HeaderUpdate:assist(frame, db) end function MOD.FrameUpdate:assist(frame, db) + MOD:RefreshUnitMedia("assist") frame.colors = oUF_SuperVillain.colors; frame:RegisterForClicks(MOD.db.fastClickTarget and "AnyDown" or "AnyUp") if frame.isChild and frame.originalParent then @@ -98,13 +98,11 @@ function MOD.FrameUpdate:assist(frame, db) MOD:RefreshUnitLayout(frame, "assist") do - local k = frame.Name; - k:Point("CENTER", frame.Health, "CENTER") - k:SetParent(frame.Health) + local nametext = frame.InfoPanel.Name; if oUF_SuperVillain.colors.healthclass then - frame:Tag(k, "[name:10]") + frame:Tag(nametext, "[name:10]") else - frame:Tag(k, "[name:color][name:10]") + frame:Tag(nametext, "[name:color][name:10]") end end frame:UpdateAllElements() diff --git a/Interface/AddOns/SVUI/packages/unit/frames/group/party.lua b/Interface/AddOns/SVUI/packages/unit/frames/group/party.lua index 811a761..4ca6c76 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/group/party.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/group/party.lua @@ -54,21 +54,19 @@ BUILD FUNCTION ########################################################## ]]-- function MOD.Construct:party(frame) - MOD:SetActionPanel(self) + MOD:SetActionPanel(self, "party") - self:SetScript('OnEnter', UnitFrame_OnEnter) - self:SetScript('OnLeave', UnitFrame_OnLeave) + self:SetScript("OnEnter", UnitFrame_OnEnter) + self:SetScript("OnLeave", UnitFrame_OnLeave) if self.isChild then self.Health = MOD:CreateHealthBar(self, true) - self.Name = MOD:CreateNameText(self, "party") self.originalParent = self:GetParent() else - self.Health = MOD:CreateHealthBar(self,true,true) - self.Power = MOD:CreatePowerBar(self,true,false,'LEFT') - self.Power.frequentUpdates = false; - self.Name = MOD:CreateNameText(self, "party") - MOD:CreatePortrait(self,true) + self.Health = MOD:CreateHealthBar(self, true) + self.Power = MOD:CreatePowerBar(self, true) + self.Power.frequentUpdates = false + MOD:CreatePortrait(self, true) self.Buffs = MOD:CreateBuffs(self) self.Debuffs = MOD:CreateDebuffs(self) self.AuraWatch = MOD:CreateAuraWatch(self) @@ -101,7 +99,7 @@ function MOD.Construct:party(frame) tinsert(self.__elements, UpdateTargetGlow) self:RegisterEvent("PLAYER_TARGET_CHANGED", UpdateTargetGlow) self:RegisterEvent("PLAYER_ENTERING_WORLD", UpdateTargetGlow) - self:RegisterEvent('GROUP_ROSTER_UPDATE', UpdateTargetGlow) + self:RegisterEvent("GROUP_ROSTER_UPDATE", UpdateTargetGlow) end self.Range = { insideAlpha = 1, outsideAlpha = 1 } @@ -154,7 +152,7 @@ end function MOD.FrameUpdate:party(frame,db) frame.db = db; - local OFFSET = SuperVillain:Scale(1); + MOD:RefreshUnitMedia("party") frame.colors = oUF_SuperVillain.colors; frame:RegisterForClicks(MOD.db.fastClickTarget and 'AnyDown' or 'AnyUp') if frame.isChild then @@ -185,14 +183,12 @@ function MOD.FrameUpdate:party(frame,db) health.colorClass = true; health.colorReaction = true; health:ClearAllPoints() - health:Point("TOPRIGHT", frame, "TOPRIGHT", -OFFSET, -OFFSET) - health:Point("BOTTOMLEFT", frame, "BOTTOMLEFT", OFFSET, OFFSET) + health:Point("TOPRIGHT", frame, "TOPRIGHT", -1, -1) + health:Point("BOTTOMLEFT", frame, "BOTTOMLEFT", 1, 1) end do - local name=frame.Name; - name:ClearAllPoints() - name:SetPoint('CENTER', frame.Health, 'CENTER', 0, 0) - frame:Tag(name, altDB.tags) + local nametext = frame.InfoPanel.Name + frame:Tag(nametext, altDB.tags) end else if not InCombatLockdown()then frame:Size(db.width,db.height) end diff --git a/Interface/AddOns/SVUI/packages/unit/frames/group/raid.lua b/Interface/AddOns/SVUI/packages/unit/frames/group/raid.lua index 3c9d331..a6aab8d 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/group/raid.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/group/raid.lua @@ -53,14 +53,14 @@ BUILD FUNCTION & UPDATE ########################################################## ]]-- for i = 10, 40, 15 do - MOD.Construct["raid"..i] = function(self) + local raidGroupName = "raid"..i + MOD.Construct[raidGroupName] = function(self) self:SetScript("OnEnter", UnitFrame_OnEnter) self:SetScript("OnLeave", UnitFrame_OnLeave) - MOD:SetActionPanel(self) - self.Health = MOD:CreateHealthBar(self, true, true) - self.Power = MOD:CreatePowerBar(self, true, true, "LEFT") - self.Power.frequentUpdates = false; - self.Name = MOD:CreateNameText(self, "raid"..i) + MOD:SetActionPanel(self, raidGroupName) + self.Health = MOD:CreateHealthBar(self, true) + self.Power = MOD:CreatePowerBar(self, true) + self.Power.frequentUpdates = false self.Buffs = MOD:CreateBuffs(self) self.Debuffs = MOD:CreateDebuffs(self) self.AuraWatch = MOD:CreateAuraWatch(self) @@ -99,7 +99,7 @@ for i = 10, 40, 15 do return frame end; - MOD.VisibilityUpdate["raid"..i] = function(self, event) + MOD.VisibilityUpdate[raidGroupName] = function(self, event) if (not self.db or (self.db and not SuperVillain.db.SVUnit.enable) or (MOD.db and not MOD.db.smartRaidFilter) or self.isForced) then return end; local instance, group = IsInInstance() local _, _, _, _, info, _, _ = GetInstanceInfo() @@ -122,7 +122,7 @@ for i = 10, 40, 15 do end end; - MOD.HeaderUpdate["raid"..i] = function(_, unit, db) + MOD.HeaderUpdate[raidGroupName] = function(_, unit, db) local frame = unit:GetParent() frame.db = db; if not frame.positioned then @@ -131,20 +131,21 @@ for i = 10, 40, 15 do SuperVillain:SetSVMovable(frame, frame:GetName().."_MOVE", L["Raid 1-"]..i..L[" Frames"], nil, nil, nil, "ALL, RAID"..i) frame:RegisterEvent("PLAYER_ENTERING_WORLD") frame:RegisterEvent("ZONE_CHANGED_NEW_AREA") - frame:SetScript("OnEvent", MOD.VisibilityUpdate["raid"..i]) + frame:SetScript("OnEvent", MOD.VisibilityUpdate[raidGroupName]) frame.positioned = true end; - MOD.VisibilityUpdate["raid"..i](frame) + MOD.VisibilityUpdate[raidGroupName](frame) end; - MOD.FrameUpdate["raid"..i] = function(_, frame, db) + MOD.FrameUpdate[raidGroupName] = function(_, frame, db) frame.db = db; + MOD:RefreshUnitMedia(raidGroupName) local rdSize = MOD.db.auraFontSize; local rdFont = LSM:Fetch("font", MOD.db.auraFont) frame.colors = oUF_SuperVillain.colors; frame:RegisterForClicks(MOD.db.fastClickTarget and"AnyDown"or"AnyUp") if not InCombatLockdown()then frame:Size(db.width, db.height)end; - MOD:RefreshUnitLayout(frame, "raid") + MOD:RefreshUnitLayout(frame, raidGroupName) do local rdBuffs = frame.RaidDebuffs; if db.rdebuffs.enable then diff --git a/Interface/AddOns/SVUI/packages/unit/frames/group/rpet.lua b/Interface/AddOns/SVUI/packages/unit/frames/group/rpet.lua index 0d48f7f..7e88807 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/group/rpet.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/group/rpet.lua @@ -73,16 +73,13 @@ BUILD FUNCTION function MOD.Construct:raidpet(frame) self:SetScript("OnEnter", UnitFrame_OnEnter) self:SetScript("OnLeave", UnitFrame_OnLeave) - MOD:SetActionPanel(self) - self.Health = MOD:CreateHealthBar(self, true, true) - self.Name = MOD:CreateNameText(self, "raidpet") - self.Buffs = MOD:CreateBuffs(self) + MOD:SetActionPanel(self, "raidpet") + self.Health = MOD:CreateHealthBar(self, true) self.Debuffs = MOD:CreateDebuffs(self) self.AuraWatch = MOD:CreateAuraWatch(self) self.RaidDebuffs = MOD:CreateRaidDebuffs(self) self.Afflicted = MOD:CreateAfflicted(self) self.RaidIcon = MOD:CreateRaidIcon(self) - self.HealPrediction = MOD:CreateHealPrediction(self) self.Range = { insideAlpha = 1, outsideAlpha = 1 } local shadow = CreateFrame("Frame", nil, self) @@ -150,6 +147,7 @@ end function MOD.FrameUpdate:raidpet(frame, db) frame.db = db; + MOD:RefreshUnitMedia("raidpet") frame.colors = oUF_SuperVillain.colors; frame:RegisterForClicks(MOD.db.fastClickTarget and"AnyDown"or"AnyUp") if not InCombatLockdown()then frame:Size(db.width, db.height)end diff --git a/Interface/AddOns/SVUI/packages/unit/frames/group/tank.lua b/Interface/AddOns/SVUI/packages/unit/frames/group/tank.lua index 147382d..eafc40e 100644 --- a/Interface/AddOns/SVUI/packages/unit/frames/group/tank.lua +++ b/Interface/AddOns/SVUI/packages/unit/frames/group/tank.lua @@ -31,9 +31,8 @@ BUILD FUNCTION function MOD.Construct:tank(...) self:SetScript("OnEnter", UnitFrame_OnEnter) self:SetScript("OnLeave", UnitFrame_OnLeave) - MOD:SetActionPanel(self) + MOD:SetActionPanel(self, "tank") self.Health = MOD:CreateHealthBar(self, true) - self.Name = MOD:CreateNameText(self, "tank") self.RaidIcon = MOD:CreateRaidIcon(self) self.RaidIcon:SetPoint("BOTTOMRIGHT") self.Range = { insideAlpha = 1, outsideAlpha = 1 } @@ -71,6 +70,7 @@ function MOD.HeaderUpdate:tank(frame, db) end function MOD.FrameUpdate:tank(frame, db) + MOD:RefreshUnitMedia("tank") frame.colors = oUF_SuperVillain.colors; frame:RegisterForClicks(MOD.db.fastClickTarget and"AnyDown"or"AnyUp") if frame.isChild and frame.originalParent then @@ -98,13 +98,11 @@ function MOD.FrameUpdate:tank(frame, db) MOD:RefreshUnitLayout(frame, "tank") do - local k = frame.Name; - k:Point("CENTER", frame.Health, "CENTER") - k:SetParent(frame.Health) + local nametext = frame.InfoPanel.Name; if oUF_SuperVillain.colors.healthclass then - frame:Tag(k, "[name:10]") + frame:Tag(nametext, "[name:10]") else - frame:Tag(k, "[name:color][name:10]") + frame:Tag(nametext, "[name:color][name:10]") end end diff --git a/Interface/AddOns/SVUI/system/classes/Database.lua b/Interface/AddOns/SVUI/system/classes/Database.lua index 6eccc9a..04a583c 100644 --- a/Interface/AddOns/SVUI/system/classes/Database.lua +++ b/Interface/AddOns/SVUI/system/classes/Database.lua @@ -896,10 +896,8 @@ local DatabaseDefaults = { ["position"] = "INNERRIGHT", ["xOffset"] = 0, ["yOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", + ["reversed"] = false, ["fontSize"] = 11, - ["fontOutline"] = "OUTLINE", }, ["power"] = { @@ -913,10 +911,8 @@ local DatabaseDefaults = { ["detachFromFrame"] = false, ["detachedWidth"] = 250, ["attachTextToPower"] = false, - ["druidMana"] = true, - ["font"] = "SVUI Number Font", - ["fontSize"] = 11, - ["fontOutline"] = "OUTLINE", + ["druidMana"] = true, + ["fontSize"] = 11, }, ["name"] = { @@ -1093,9 +1089,7 @@ local DatabaseDefaults = { ["xOffset"] = 0, ["yOffset"] = 0, ["reversed"] = true, - ["font"] = "SVUI Number Font", - ["fontSize"] = 11, - ["fontOutline"] = "OUTLINE", + ["fontSize"] = 11, }, ["power"] = { @@ -1106,10 +1100,8 @@ local DatabaseDefaults = { ["hideonnpc"] = true, ["xOffset"] = 0, ["yOffset"] = 0, - ["attachTextToPower"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 11, - ["fontOutline"] = "OUTLINE", + ["attachTextToPower"] = false, + ["fontSize"] = 11, }, ["name"] = { @@ -1319,10 +1311,8 @@ local DatabaseDefaults = { ["position"] = "INNERRIGHT", ["xOffset"] = 0, ["yOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 9, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 9, }, ["power"] = { @@ -1332,10 +1322,8 @@ local DatabaseDefaults = { ["position"] = "INNERLEFT", ["hideonnpc"] = false, ["xOffset"] = 0, - ["yOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 9, - ["fontOutline"] = "OUTLINE", + ["yOffset"] = 0, + ["fontSize"] = 9, }, ["name"] = { @@ -1484,10 +1472,8 @@ local DatabaseDefaults = { ["position"] = "INNERRIGHT", ["xOffset"] = 0, ["yOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -1497,10 +1483,8 @@ local DatabaseDefaults = { ["position"] = "INNERLEFT", ["hideonnpc"] = false, ["xOffset"] = 0, - ["yOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["yOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -1691,10 +1675,8 @@ local DatabaseDefaults = { ["position"] = "INNERRIGHT", ["xOffset"] = 0, ["yOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -1704,10 +1686,8 @@ local DatabaseDefaults = { ["position"] = "INNERLEFT", ["hideonnpc"] = false, ["xOffset"] = 0, - ["yOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["yOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -1846,10 +1826,8 @@ local DatabaseDefaults = { ["position"] = "INNERRIGHT", ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -1859,10 +1837,8 @@ local DatabaseDefaults = { ["position"] = "INNERLEFT", ["hideonnpc"] = false, ["yOffset"] = 0, - ["xOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -1971,10 +1947,8 @@ local DatabaseDefaults = { ["position"] = "INNERRIGHT", ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -1984,10 +1958,8 @@ local DatabaseDefaults = { ["position"] = "INNERLEFT", ["hideonnpc"] = false, ["yOffset"] = 0, - ["xOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -2114,10 +2086,8 @@ local DatabaseDefaults = { ["position"] = "INNERTOPRIGHT", ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = true, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = true, + ["fontSize"] = 10, }, ["power"] = { @@ -2127,10 +2097,8 @@ local DatabaseDefaults = { ["position"] = "INNERBOTTOMRIGHT", ["hideonnpc"] = false, ["yOffset"] = 7, - ["xOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["portrait"] = { @@ -2248,10 +2216,8 @@ local DatabaseDefaults = { ["position"] = "INNERTOPRIGHT", ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = true, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = true, + ["fontSize"] = 10, }, ["power"] = { @@ -2261,10 +2227,8 @@ local DatabaseDefaults = { ["position"] = "INNERBOTTOMRIGHT", ["hideonnpc"] = false, ["yOffset"] = 7, - ["xOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -2437,10 +2401,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -2451,10 +2413,8 @@ local DatabaseDefaults = { ["position"] = "BOTTOMRIGHT", ["hideonnpc"] = false, ["yOffset"] = 0, - ["xOffset"] = 0, - ["font"] = "SVUI Number Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -2615,10 +2575,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -2629,10 +2587,8 @@ local DatabaseDefaults = { ["position"] = "BOTTOMRIGHT", ["hideonnpc"] = false, ["yOffset"] = 0, - ["xOffset"] = 0, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -2768,10 +2724,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -2781,10 +2735,8 @@ local DatabaseDefaults = { ["position"] = "BOTTOMRIGHT", ["hideonnpc"] = false, ["yOffset"] = 0, - ["xOffset"] = 0, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -2920,10 +2872,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["power"] = { @@ -2934,10 +2884,8 @@ local DatabaseDefaults = { ["position"] = "BOTTOMRIGHT", ["hideonnpc"] = false, ["yOffset"] = 0, - ["xOffset"] = 0, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["xOffset"] = 0, + ["fontSize"] = 10, }, ["name"] = { @@ -3075,10 +3023,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["name"] = { @@ -3187,10 +3133,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["name"] = { @@ -3246,10 +3190,8 @@ local DatabaseDefaults = { ["frequentUpdates"] = false, ["yOffset"] = 0, ["xOffset"] = 0, - ["reversed"] = false, - ["font"] = "SVUI Default Font", - ["fontSize"] = 10, - ["fontOutline"] = "OUTLINE", + ["reversed"] = false, + ["fontSize"] = 10, }, ["name"] = { diff --git a/Interface/AddOns/SVUI/system/templates.lua b/Interface/AddOns/SVUI/system/templates.lua index 5dfec85..56cc0bf 100644 --- a/Interface/AddOns/SVUI/system/templates.lua +++ b/Interface/AddOns/SVUI/system/templates.lua @@ -324,6 +324,29 @@ local _templates = { shadow = false, noupdate = false, }, + ["Bar"] = { + backdrop = { + bgFile = [[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]], + edgeFile = [[Interface\BUTTONS\WHITE8X8]], + tile = false, + tileSize = 0, + edgeSize = 1, + insets = + { + left = 0, + right = 0, + top = 0, + bottom = 0, + }, + }, + color = "transparent", + gradient = false, + texture = false, + texupdate = false, + padding = 1, + shadow = false, + noupdate = true, + }, ["Slot"] = { backdrop = { bgFile = [[Interface\AddOns\SVUI\assets\artwork\Template\DEFAULT]], diff --git a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua index c813314..84ef4fb 100644 --- a/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua +++ b/Interface/AddOns/SVUI_ConfigOMatic/modules/units/core.lua @@ -808,7 +808,7 @@ function ns:SetNameConfigGroup(updateFunction, unitName, count) name = L["Fonts"], set = function(key, value) MOD:ChangeDBVar(value, key[#key], unitName, "name"); - MOD:UpdateUnitFont(unitName) + MOD:RefreshUnitMedia(unitName, true) end, args = { font = { @@ -1541,7 +1541,7 @@ SuperVillain.Options.args.SVUnit = { end, set = function(key, value) MOD:ChangeDBVar(value, key[#key]); - MOD:RefreshUnitTextures() + MOD:RefreshAllUnitMedia() end, args = { smoothbars = { @@ -1575,7 +1575,7 @@ SuperVillain.Options.args.SVUnit = { name = L["Fonts"], set = function(key, value) MOD:ChangeDBVar(value, key[#key]); - MOD:RefreshUnitFonts() + MOD:RefreshAllUnitMedia() end, args = { font = { @@ -1613,7 +1613,7 @@ SuperVillain.Options.args.SVUnit = { values = AceGUIWidgetLSMlists.font, set = function(key, value) MOD:ChangeDBVar(value, key[#key]); - MOD:RefreshUnitAuraFonts() + MOD:RefreshAllUnitMedia() end, }, auraFontOutline = { @@ -1626,7 +1626,7 @@ SuperVillain.Options.args.SVUnit = { }, set = function(key, value) MOD:ChangeDBVar(value, key[#key]); - MOD:RefreshUnitAuraFonts(); + MOD:RefreshAllUnitMedia() end, }, auraFontSize = { @@ -1639,7 +1639,7 @@ SuperVillain.Options.args.SVUnit = { step = 1, set = function(key, value) MOD:ChangeDBVar(value, key[#key]); - MOD:RefreshUnitAuraFonts() + MOD:RefreshAllUnitMedia() end, }, }