Now uses events and a proper check
p3lim-52096 [08-29-08 - 12:34]
Now uses events and a proper check
git-svn-id: svn://svn.wowinterface.com/oUF_BarFader-229/trunk@5 cbe42a47-3b53-4817-a5a9-47e79666164c
diff --git a/oUF_BarFader/oUF_BarFader.lua b/oUF_BarFader/oUF_BarFader.lua
index 91fcb73..da7d95f 100644
--- a/oUF_BarFader/oUF_BarFader.lua
+++ b/oUF_BarFader/oUF_BarFader.lua
@@ -1,32 +1,30 @@
local function UpdateElement(self)
- local notFull = UnitHealth('player') ~= UnitHealthMax('player') or
- (UnitPowerType("player") == 1 and UnitMana('player') > 0) or
- (UnitPowerType("player") ~= 1 and UnitMana('player') ~= UnitManaMax('player'))
+ if(self.BarFade) then
+ local notFull = UnitHealth('player') ~= UnitHealthMax('player') or
+ (UnitPowerType("player") == 1 and UnitMana('player') > 0) or
+ (UnitPowerType("player") ~= 1 and UnitMana('player') ~= UnitManaMax('player'))
- if(notFull) then
- self:SetAlpha(1)
- elseif(UnitAffectingCombat('player')) then
- self:SetAlpha(1)
- elseif(UnitExists('target')) then
- self:SetAlpha(1)
- elseif(self.Castbar) then
- self:SetAlpha(self.Castbar.casting and 1 or (self.BarFadeAlpha or 0.25))
- else
- self:SetAlpha(self.BarFadeAlpha or 0.25)
+ if(notFull) then
+ self:SetAlpha(1)
+ elseif(UnitAffectingCombat('player')) then
+ self:SetAlpha(1)
+ elseif(UnitExists('target')) then
+ self:SetAlpha(1)
+ elseif(self.Castbar) then
+ self:SetAlpha(self.Castbar.casting and 1 or (self.BarFadeAlpha or 0.25))
+ else
+ self:SetAlpha(self.BarFadeAlpha or 0.25)
+ end
end
end
oUF:RegisterInitCallback(function(self)
- local unit = self.unit
- if(self.BarFade) then
- local total = 0
- local event = CreateFrame('Frame')
- event:SetScript('OnUpdate', function(_, elapsed)
- total = total + elapsed
- if(total > 0.25) then
- UpdateElement(self)
- total = 0
- end
- end)
- end
-end)
+ local event = CreateFrame('Frame')
+ event:SetScript('OnEvent', function() UpdateElement(self) end)
+ event:RegisterEvent('PLAYER_REGEN_ENABLED')
+ event:RegisterEvent('PLAYER_REGEN_DISABLED')
+ event:RegisterEvent('PLAYER_TARGET_CHANGED')
+ event:RegisterEvent('UNIT_HEALTH')
+ event:RegisterEvent('UNIT_MANA')
+ event:RegisterEvent('PLAYER_LOGIN')
+end)
\ No newline at end of file