8edf2d7f8a
* ElvUI/NamePlates: initial nameplate conversions * More nameplate work * Modules/Cooldowns: various CD fixes, nameplates cant show 'swipe' texture * ElvUI/NamePlates: final nameplate polish * Modules/Misc: add space before interrupted announcement
87 lines
2.7 KiB
Lua
87 lines
2.7 KiB
Lua
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
local UF = E:GetModule("UnitFrames")
|
|
|
|
--Lua functions
|
|
--WoW API / Variables
|
|
|
|
function UF:Construct_Cutaway(frame)
|
|
local cutaway = {}
|
|
local frameName = frame:GetName()
|
|
|
|
if frame.Power then
|
|
local powerTexture = frame.Power:GetStatusBarTexture()
|
|
local cutawayPower = frame.Power:CreateTexture(frameName.."CutawayPower")
|
|
cutawayPower:SetPoint("TOPLEFT", powerTexture, "TOPRIGHT")
|
|
cutawayPower:SetPoint("BOTTOMLEFT", powerTexture, "BOTTOMRIGHT")
|
|
cutawayPower:SetTexture(E.media.blankTex)
|
|
cutaway.Power = cutawayPower
|
|
end
|
|
|
|
local healthTexture = frame.Health:GetStatusBarTexture()
|
|
local cutawayHealth = frame.Health:CreateTexture(frameName.."CutawayHealth")
|
|
cutawayHealth:SetPoint("TOPLEFT", healthTexture, "TOPRIGHT")
|
|
cutawayHealth:SetPoint("BOTTOMLEFT", healthTexture, "BOTTOMRIGHT")
|
|
cutawayHealth:SetTexture(E.media.blankTex)
|
|
cutaway.Health = cutawayHealth
|
|
|
|
return cutaway
|
|
end
|
|
|
|
local cutawayPoints = {
|
|
[1] = {"TOPLEFT", "TOPRIGHT"},
|
|
[2] = {"BOTTOMLEFT", "BOTTOMRIGHT"},
|
|
[3] = {"BOTTOMLEFT", "TOPLEFT"},
|
|
[4] = {"BOTTOMRIGHT", "TOPRIGHT"}
|
|
}
|
|
|
|
local DEFAULT_INDEX, VERT_INDEX = 1, 3
|
|
function UF:GetPoints_Cutaway(db)
|
|
local index
|
|
if db and db.orientation == "VERTICAL" then
|
|
index = VERT_INDEX
|
|
else
|
|
index = DEFAULT_INDEX
|
|
end
|
|
|
|
return cutawayPoints[index], cutawayPoints[index + 1]
|
|
end
|
|
|
|
function UF:Configure_Cutaway(frame)
|
|
local db = frame.db and frame.db.cutaway
|
|
local healthDB, powerDB = db and db.health, db and db.power
|
|
local healthEnabled = healthDB and healthDB.enabled
|
|
local powerEnabled = powerDB and powerDB.enabled
|
|
if healthEnabled or powerEnabled then
|
|
if not frame:IsElementEnabled("Cutaway") then
|
|
frame:EnableElement("Cutaway")
|
|
end
|
|
|
|
frame.Cutaway:UpdateConfigurationValues(db)
|
|
local health = frame.Cutaway.Health
|
|
if health and healthEnabled then
|
|
local point1, point2 = UF:GetPoints_Cutaway(frame.db.health)
|
|
local barTexture = frame.Health:GetStatusBarTexture()
|
|
|
|
health:ClearAllPoints()
|
|
health:SetPoint(point1[1], barTexture, point1[2])
|
|
health:SetPoint(point2[1], barTexture, point2[2])
|
|
|
|
frame.Health:PostUpdateColor(frame.unit)
|
|
end
|
|
|
|
local power = frame.Cutaway.Power
|
|
local powerUsable = powerEnabled and frame.USE_POWERBAR
|
|
if power and powerUsable then
|
|
local point1, point2 = UF:GetPoints_Cutaway(frame.db.power)
|
|
local barTexture = frame.Power:GetStatusBarTexture()
|
|
|
|
power:ClearAllPoints()
|
|
power:SetPoint(point1[1], barTexture, point1[2])
|
|
power:SetPoint(point2[1], barTexture, point2[2])
|
|
|
|
frame.Power:PostUpdateColor()
|
|
end
|
|
elseif frame:IsElementEnabled("Cutaway") then
|
|
frame:DisableElement("Cutaway")
|
|
end
|
|
end |