ElvUI/Modules/Nameplates/Elements/Portraits.lua

67 lines
2.0 KiB
Lua
Raw Normal View History

2020-11-13 14:27:50 -05:00
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local NP = E:GetModule('NamePlates')
local _G = _G
local unpack = unpack
local hooksecurefunc = hooksecurefunc
function NP:Portrait_PostUpdate()
local nameplate = self.__owner
local db = NP:PlateDB(nameplate)
local sf = NP:StyleFilterChanges(nameplate)
if sf.Portrait or (db.portrait and db.portrait.enable) then
if db.portrait.classicon and nameplate.isPlayer then
self:SetTexture([[Interface\WorldStateFrame\Icons-Classes]])
self:SetTexCoord(unpack(_G.CLASS_ICON_TCOORDS[nameplate.classFile]))
self.backdrop:Hide()
else
self:SetTexCoord(.18, .82, .18, .82)
self.backdrop:Show()
end
else
self.backdrop:Hide()
end
end
function NP:Update_PortraitBackdrop()
if self.backdrop then
self.backdrop:SetShown(self:IsShown())
end
end
function NP:Construct_Portrait(nameplate)
local Portrait = nameplate:CreateTexture(nameplate:GetName() .. 'Portrait', 'OVERLAY', nil, 2)
Portrait:SetTexCoord(.18, .82, .18, .82)
Portrait:CreateBackdrop(nil, nil, nil, nil, nil, true)
Portrait:Hide()
Portrait.PostUpdate = NP.Portrait_PostUpdate
hooksecurefunc(Portrait, 'Hide', NP.Update_PortraitBackdrop)
hooksecurefunc(Portrait, 'Show', NP.Update_PortraitBackdrop)
return Portrait
end
function NP:Update_Portrait(nameplate)
local db = NP:PlateDB(nameplate)
local sf = NP:StyleFilterChanges(nameplate)
if sf.Portrait or (db.portrait and db.portrait.enable) then
if not nameplate:IsElementEnabled('Portrait') then
nameplate:EnableElement('Portrait')
nameplate.Portrait:ForceUpdate()
end
nameplate.Portrait:Size(db.portrait.width, db.portrait.height)
-- These values are forced in name only mode inside of DisablePlate
if not (db.nameOnly or sf.NameOnly) then
nameplate.Portrait:ClearAllPoints()
nameplate.Portrait:Point(E.InversePoints[db.portrait.position], nameplate, db.portrait.position, db.portrait.xOffset, db.portrait.yOffset)
end
elseif nameplate:IsElementEnabled('Portrait') then
nameplate:DisableElement('Portrait')
end
end