61 lines
1.9 KiB
Lua
61 lines
1.9 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local NP = E:GetModule("NamePlates")
|
|
|
|
--Lua functions
|
|
--WoW API / Variables
|
|
|
|
function NP:UpdateElement_CutawayHealthFadeOut(frame)
|
|
local cutawayHealth = frame.CutawayHealth
|
|
cutawayHealth.fading = true
|
|
E:UIFrameFadeOut(cutawayHealth, self.db.cutawayHealthFadeOutTime, cutawayHealth:GetAlpha(), 0)
|
|
cutawayHealth.isPlaying = nil
|
|
end
|
|
|
|
local function CutawayHealthClosure(frame)
|
|
NP:UpdateElement_CutawayHealthFadeOut(frame)
|
|
end
|
|
|
|
function NP:CutawayHealthValueChangeCallback(frame, health, maxHealth)
|
|
if self.db.cutawayHealth then
|
|
frame.CutawayHealth:SetMinMaxValues(0, maxHealth)
|
|
local oldValue = frame.Health:GetValue()
|
|
local change = oldValue - health
|
|
if change > 0 and not frame.CutawayHealth.isPlaying then
|
|
local cutawayHealth = frame.CutawayHealth
|
|
if cutawayHealth.fading then
|
|
E:UIFrameFadeRemoveFrame(cutawayHealth)
|
|
end
|
|
cutawayHealth.fading = false
|
|
cutawayHealth:SetValue(oldValue)
|
|
cutawayHealth:SetAlpha(1)
|
|
|
|
E:Delay(self.db.cutawayHealthLength, CutawayHealthClosure, frame)
|
|
|
|
cutawayHealth.isPlaying = true
|
|
cutawayHealth:Show()
|
|
end
|
|
else
|
|
if frame.CutawayHealth.isPlaying then
|
|
frame.CutawayHealth.isPlaying = nil
|
|
frame.CutawayHealth:SetScript("OnUpdate", nil)
|
|
end
|
|
frame.CutawayHealth:Hide()
|
|
end
|
|
end
|
|
|
|
function NP:CutawayHealthColorChangeCallback(frame, r, g, b)
|
|
frame.CutawayHealth:SetStatusBarColor(r * 1.5, g * 1.5, b * 1.5, 1)
|
|
end
|
|
|
|
function NP:ConstructElement_CutawayHealth(parent)
|
|
local healthBar = parent.Health
|
|
|
|
local cutawayHealth = CreateFrame("StatusBar", "$parentCutawayHealth", healthBar)
|
|
cutawayHealth:SetAllPoints()
|
|
cutawayHealth:SetStatusBarTexture(E.media.blankTex)
|
|
cutawayHealth:SetFrameLevel(healthBar:GetFrameLevel() - 1)
|
|
|
|
NP:RegisterHealthBarCallbacks(parent, NP.CutawayHealthValueChangeCallback, NP.CutawayHealthColorChangeCallback)
|
|
|
|
return cutawayHealth
|
|
end |