From: Aleksi Blinnikka Date: Mon, 29 Jan 2018 16:05:12 +0000 (+0200) Subject: Fix power bars, remove overlay color for basic unit frames X-Git-Url: https://www.aleksib.fi/git/wowui.git/commitdiff_plain/52e517547bb85ea0705fbae13518a4c563abc77d?ds=inline Fix power bars, remove overlay color for basic unit frames Power bars didn't update properly when they changed for the same unit. For example druid shapeshift. --- diff --git a/OmaRF/Events.lua b/OmaRF/Events.lua index 4d2a1a1..0932ec1 100644 --- a/OmaRF/Events.lua +++ b/OmaRF/Events.lua @@ -43,6 +43,8 @@ function M.RegisterEvents(frame) frame:RegisterUnitEvent("UNIT_POWER", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_MAXPOWER", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_DISPLAYPOWER", frame.unit, displayed); + frame:RegisterUnitEvent("UNIT_POWER_BAR_SHOW", frame.unit, displayed); + frame:RegisterUnitEvent("UNIT_POWER_BAR_HIDE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_NAME_UPDATE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_AURA", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_HEAL_PREDICTION", frame.unit, displayed); @@ -321,6 +323,8 @@ local eventFuncs = { end, ["UNIT_DISPLAYPOWER"] = function(frame) updatePowerColor(frame, frame.displayed); + updateMaxPower(frame, frame.displayed); + updatePower(frame, frame.displayed); end, ["UNIT_NAME_UPDATE"] = function(frame) updateName(frame, frame.displayed); @@ -364,6 +368,8 @@ local eventFuncs = { eventFuncs["UNIT_HEALTH_FREQUENT"] = eventFuncs["UNIT_HEALTH"]; eventFuncs["PARTY_MEMBER_DISABLE"] = eventFuncs["PARTY_MEMBER_ENABLE"]; eventFuncs["PLAYER_FLAGS_CHANGED"] = eventFuncs["UNIT_CONNECTION"]; +eventFuncs["UNIT_POWER_BAR_SHOW"] = eventFuncs["UNIT_DISPLAYPOWER"]; +eventFuncs["UNIT_POWER_BAR_HIDE"] = eventFuncs["UNIT_DISPLAYPOWER"]; eventFuncs["READY_CHECK_CONFIRM"] = eventFuncs["READY_CHECK"]; eventFuncs["READY_CHECK_FINISHED"] = eventFuncs["READY_CHECK"]; eventFuncs["UNIT_ENTERED_VEHICLE"] = eventFuncs["UPDATE_ALL_BARS"]; diff --git a/OmaUF/Events.lua b/OmaUF/Events.lua index f745434..7b39aeb 100644 --- a/OmaUF/Events.lua +++ b/OmaUF/Events.lua @@ -23,9 +23,6 @@ local updateAuraFrames = OmaUFAuras.UpdateAuras; local Settings = OmaUFSettings; local baseColor = Settings.BaseColor; local healthColor = Settings.HealthColor; -local overlayColorDispel = Settings.OverlayColorDispel; -local overlayColorCharm = Settings.OverlayColorCharm; -local overlayColorAlert = Settings.OverlayColorAlert; local powerColors = Settings.PowerColors; local width = Settings.Width; @@ -42,6 +39,8 @@ function M.RegisterEvents(frame) frame:RegisterUnitEvent("UNIT_POWER", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_MAXPOWER", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_DISPLAYPOWER", frame.unit, displayed); + frame:RegisterUnitEvent("UNIT_POWER_BAR_SHOW", frame.unit, displayed); + frame:RegisterUnitEvent("UNIT_POWER_BAR_HIDE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_NAME_UPDATE", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_AURA", frame.unit, displayed); frame:RegisterUnitEvent("UNIT_HEAL_PREDICTION", frame.unit, displayed); @@ -201,26 +200,6 @@ end local function updateAuras(frame, unit) updateAuraFrames(frame, unit); - if UnitIsFriend("player", unit) and UnitDebuff(unit, 1, "RAID") ~= nil then - -- something dispellable - if frame.overlay.color ~= overlayColorDispel then - frame.overlay:SetVertexColor(unpack(overlayColorDispel)); - frame.overlay:Show(); - frame.overlay.color = overlayColorDispel; - end - -- don't overlay charmed when in vehicle - elseif UnitIsCharmed(unit) and not frame.inVehicle then - if frame.overlay.color ~= overlayColorCharm then - frame.overlay:SetVertexColor(unpack(overlayColorCharm)); - frame.overlay:Show(); - frame.overlay.color = overlayColorCharm; - end - else - if frame.overlay.color ~= nil then - frame.overlay:Hide(); - frame.overlay.color = nil; - end - end end local function updateAggro(frame, unit) @@ -403,6 +382,9 @@ local eventFuncs = { end, ["UNIT_DISPLAYPOWER"] = function(frame) updatePowerColor(frame, frame.displayed); + updateMaxPower(frame, frame.displayed); + updatePower(frame, frame.displayed); + updatePowerText(frame, frame.displayed); end, ["UNIT_NAME_UPDATE"] = function(frame) updateName(frame, frame.displayed); @@ -463,6 +445,8 @@ local eventFuncs = { end, }; eventFuncs["UNIT_HEALTH_FREQUENT"] = eventFuncs["UNIT_HEALTH"]; +eventFuncs["UNIT_POWER_BAR_SHOW"] = eventFuncs["UNIT_DISPLAYPOWER"]; +eventFuncs["UNIT_POWER_BAR_HIDE"] = eventFuncs["UNIT_DISPLAYPOWER"]; eventFuncs["UNIT_ENTERED_VEHICLE"] = eventFuncs["UPDATE_ALL_BARS"]; eventFuncs["UNIT_EXITED_VEHICLE"] = eventFuncs["UPDATE_ALL_BARS"]; eventFuncs["UNIT_PET"] = eventFuncs["UPDATE_ALL_BARS"]; diff --git a/OmaUF/Settings.lua b/OmaUF/Settings.lua index 002cf5e..836835c 100644 --- a/OmaUF/Settings.lua +++ b/OmaUF/Settings.lua @@ -70,9 +70,6 @@ local settings = { ShieldhlColor = {0.5, 0.8, 1}, HealpredColor = {0.5, 0.6, 0.5}, HealabsorbColor = {0.1, 0.1, 0.1}, - OverlayColorDispel = {1, 0.5, 0, 0.5}, - OverlayColorCharm = {0.8, 0, 1, 0.5}, - OverlayColorAlert = {1, 0, 0, 0.5}, PowerColors = { [PowerTypeMana] = {0, 0.5, 1}, [PowerTypeRage] = {1, 0, 0}, diff --git a/OmaUF/UnitFrames.lua b/OmaUF/UnitFrames.lua index 815fa17..f4b7521 100644 --- a/OmaUF/UnitFrames.lua +++ b/OmaUF/UnitFrames.lua @@ -144,11 +144,6 @@ local function setupFrame(frame, secure, unit) frame.healabsorb:SetPoint("BOTTOMRIGHT", frame.health, "BOTTOMRIGHT"); frame.healabsorb:SetColorTexture(unpack(healabsorbColor)); frame.healabsorb:Hide(); - frame.overlay = frame:CreateTexture(nil, "ARTWORK", nil, 1); - frame.overlay:SetPoint("TOPLEFT", frame.healthback, "TOPLEFT"); - frame.overlay:SetPoint("BOTTOMRIGHT", frame.healthback, "BOTTOMRIGHT"); - frame.overlay:SetColorTexture(1, 1, 1); - frame.overlay:Hide(); frame.role = frame:CreateTexture(nil, "OVERLAY"); frame.role:SetPoint("TOPLEFT", frame.healthback, "TOPRIGHT", -8, 8); frame.role:SetPoint("BOTTOMRIGHT", frame.healthback, "TOPRIGHT", 8, -8);