Files
Andrew6810 60ef8a38af init
2022-10-21 07:09:01 -07:00

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