local L = LibStub:GetLibrary("AceLocale-3.0"):GetLocale("Grid2") local HealBar = Grid2.indicatorPrototype:new("healbar") function HealBar:Create(parent) local media = LibStub("LibSharedMedia-3.0", true) local texture = media and media:Fetch("statusbar", self.db.profile.texture) or "Interface\\Addons\\Grid2\\gradient32x32" parent.HealBarBG = parent:CreateTexture() parent.HealBarBG:SetTexture(texture) -- create healbar parent.HealBar = CreateFrame("StatusBar", nil, parent) parent.HealBar:SetStatusBarTexture(texture) parent.HealBar:SetMinMaxValues(0, 1) parent.HealBar:SetValue(0) parent.HealBar:SetStatusBarColor(0,0,0,0) parent.HealBarBG:SetPoint("CENTER") parent.HealBar:SetPoint("CENTER") self:SetOrientation(parent) end function HealBar:Layout(parent) local w, h = parent:GetWidth() - 2, parent:GetHeight() - 2 parent.HealBarBG:SetWidth(w) parent.HealBarBG:SetHeight(h) parent.HealBar:SetWidth(w) parent.HealBar:SetHeight(h) end function HealBar:GetBlinkFrame(parent) return parent.HealBar end function HealBar:OnUpdate(parent, unit, status) if status then parent.HealBar:SetValue(status:GetPercent(unit)) else parent.HealBar:SetValue(0) end end function HealBar:SetOrientation(parent, orientation) orientation = orientation or self.db.profile.orientation parent.HealBar:SetOrientation(orientation) end function HealBar:SetTexture(parent, texture) parent.HealBarBG:SetTexture(texture) parent.HealBar:SetStatusHealBarTexture(texture) end HealBar.defaultDB = { profile = { orientation = "HORIZONTAL", texture = "Gradient", } } Grid2:RegisterIndicator(HealBar, { "percent" }) local HealBarColor = Grid2.indicatorPrototype:new("healbarcolor") function HealBarColor:Create(parent) end function HealBarColor:Layout(parent) end function HealBarColor:OnUpdate(parent, unit, status) if status then self:SetHealBarColor(parent, 0, 0, 0, 0) else self:SetHealBarColor(parent, 0, 1, 0, 0.8) end end function HealBarColor:SetHealBarColor(parent, r, g, b, a) --if self.db.profile.invertHealBarColor then -- parent.HealBar:SetStatusBarColor(r, g, b, a) -- parent.HealBarBG:SetVertexColor(0, 0, 0, 0) --else parent.HealBar:SetStatusBarColor(r, g, b, a) --end end HealBarColor.defaultDB = { profile = { invertHealBarColor = false, } } Grid2:RegisterIndicator(HealBarColor, { "color" })