52e5175 - Fix power bars, remove overlay color for basic unit frames
authorAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Mon, 29 Jan 2018 16:05:12 +0000
committerAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Mon, 29 Jan 2018 16:05:12 +0000
Power bars didn't update properly when they changed for the same unit.
For example druid shapeshift.

OmaRF/Events.lua
OmaUF/Events.lua
OmaUF/Settings.lua
OmaUF/UnitFrames.lua

index 4d2a1a1..0932ec1 100644 (file)
@@ -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"];
index f745434..7b39aeb 100644 (file)
@@ -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"];
index 002cf5e..836835c 100644 (file)
@@ -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},
index 815fa17..f4b7521 100644 (file)
@@ -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);