68 lines
2.2 KiB
Lua
68 lines
2.2 KiB
Lua
local _G = _G or getfenv(0)
|
|
local GetExpansion = ShaguTweaks.GetExpansion
|
|
|
|
local module = ShaguTweaks:register({
|
|
title = "Class Color On Unit Frames",
|
|
description = "Adds class colors to the player and target unitframe",
|
|
enabled = nil,
|
|
})
|
|
|
|
local partycolors = function()
|
|
for id = 1, MAX_PARTY_MEMBERS do
|
|
local name = _G['PartyMemberFrame'..id..'Name']
|
|
local _, class = UnitClass("party" .. id)
|
|
local class = RAID_CLASS_COLORS[class] or { r = .5, g = .5, b = .5, a = 1 }
|
|
name:SetTextColor(class.r, class.g, class.b, 1)
|
|
end
|
|
end
|
|
|
|
module.enable = function(self)
|
|
-- enable class color backgrounds
|
|
local original = TargetFrame_CheckFaction
|
|
function TargetFrame_CheckFaction(self)
|
|
original(self)
|
|
|
|
local reaction = UnitReaction("target", "player")
|
|
|
|
if UnitPlayerControlled("target") then
|
|
local _, class = UnitClass("target")
|
|
local class = RAID_CLASS_COLORS[class] or { r = .5, g = .5, b = .5, a = 1 }
|
|
TargetFrameNameBackground:SetVertexColor(class.r, class.g, class.b, 1)
|
|
TargetFrameNameBackground:Show()
|
|
TargetFrameBackground:Hide()
|
|
elseif reaction and reaction > 4 then
|
|
TargetFrameNameBackground:Hide()
|
|
TargetFrameBackground:Show()
|
|
else
|
|
TargetFrameNameBackground:Show()
|
|
TargetFrameBackground:Hide()
|
|
end
|
|
end
|
|
|
|
local _, class = UnitClass("player")
|
|
local class = RAID_CLASS_COLORS[class] or { r = .5, g = .5, b = .5, a = 1 }
|
|
|
|
-- add name background to player frame
|
|
PlayerFrameNameBackground = PlayerFrame:CreateTexture(nil, "BACKGROUND")
|
|
PlayerFrameNameBackground:SetTexture("Interface\\TargetingFrame\\UI-TargetingFrame-LevelBackground")
|
|
PlayerFrameNameBackground:SetWidth(119)
|
|
PlayerFrameNameBackground:SetHeight(19)
|
|
PlayerFrameNameBackground:SetPoint("TOPLEFT", 106, -22)
|
|
PlayerFrameNameBackground:SetVertexColor(class.r, class.g, class.b, 1)
|
|
PlayerFrameBackground:Hide()
|
|
|
|
-- add font outline
|
|
local font, size = PlayerFrame.name:GetFont()
|
|
PlayerFrame.name:SetFont(font, size, "NONE")
|
|
TargetFrame.name:SetFont(font, size, "NONE")
|
|
|
|
-- add party frame class colors
|
|
local HookPartyMemberFrame_UpdateMember = PartyMemberFrame_UpdateMember
|
|
PartyMemberFrame_UpdateMember = function(self)
|
|
HookPartyMemberFrame_UpdateMember(self)
|
|
partycolors()
|
|
end
|
|
|
|
partycolors()
|
|
end
|