From ac56de61191e104209a60bde05a041832fb54d38 Mon Sep 17 00:00:00 2001 From: shagu Date: Mon, 6 Dec 2021 14:51:30 +0100 Subject: [PATCH] unitframes-classportrait: class icons as portrait --- ShaguTweaks-tbc.toc | 1 + ShaguTweaks.toc | 1 + img/UI-Classes-Circles.tga | Bin 0 -> 86212 bytes mods/unitframes-classportrait.lua | 72 ++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 img/UI-Classes-Circles.tga create mode 100644 mods/unitframes-classportrait.lua diff --git a/ShaguTweaks-tbc.toc b/ShaguTweaks-tbc.toc index 9cfa30b..aaa14d5 100644 --- a/ShaguTweaks-tbc.toc +++ b/ShaguTweaks-tbc.toc @@ -61,3 +61,4 @@ mods\chat-tweaks.lua mods\hide-gryphons.lua mods\worldmap-colors.lua mods\unitframes-bighealth.lua +mods\unitframes-classportrait.lua diff --git a/ShaguTweaks.toc b/ShaguTweaks.toc index d1e83c2..2aa0d83 100644 --- a/ShaguTweaks.toc +++ b/ShaguTweaks.toc @@ -61,3 +61,4 @@ mods\chat-tweaks.lua mods\hide-gryphons.lua mods\worldmap-colors.lua mods\unitframes-bighealth.lua +mods\unitframes-classportrait.lua diff --git a/img/UI-Classes-Circles.tga b/img/UI-Classes-Circles.tga new file mode 100644 index 0000000000000000000000000000000000000000..68c6b60f9d151b4783de6ca1aae5285a83d32610 GIT binary patch literal 86212 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

`C1@9hOzb!Cqy4_Pkzo@Nln~t-eR1!zG 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 R!{7Of-~Z|le*B}u{{bvDvqJy? literal 0 HcmV?d00001 diff --git a/mods/unitframes-classportrait.lua b/mods/unitframes-classportrait.lua new file mode 100644 index 0000000..1a52caa --- /dev/null +++ b/mods/unitframes-classportrait.lua @@ -0,0 +1,72 @@ +local _G = _G or getfenv(0) + +local addonpath +local tocs = { "", "-master", "-tbc", "-wotlk" } +for _, name in pairs(tocs) do + local current = string.format("ShaguTweaks%s", name) + local _, title = GetAddOnInfo(current) + if title then + addonpath = "Interface\\AddOns\\" .. current + break + end +end + +local CLASS_ICON_TCOORDS = { + ["WARRIOR"] = { 0, 0.25, 0, 0.25 }, + ["MAGE"] = { 0.25, 0.49609375, 0, 0.25 }, + ["ROGUE"] = { 0.49609375, 0.7421875, 0, 0.25 }, + ["DRUID"] = { 0.7421875, 0.98828125, 0, 0.25 }, + ["HUNTER"] = { 0, 0.25, 0.25, 0.5 }, + ["SHAMAN"] = { 0.25, 0.49609375, 0.25, 0.5 }, + ["PRIEST"] = { 0.49609375, 0.7421875, 0.25, 0.5 }, + ["WARLOCK"] = { 0.7421875, 0.98828125, 0.25, 0.5 }, + ["PALADIN"] = { 0, 0.25, 0.5, 0.75 }, + ["DEATHKNIGHT"] = { 0.25, .5, 0.5, .75 }, +} + +local module = ShaguTweaks:register({ + title = "Unit Frame Class Portraits", + description = "Replace unitframe portraits with class icons.", + expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Unit Frames", + enabled = nil, +}) + +local function UpdatePortraits(frame) + -- detect unit class or remove for non-player units + local _, class = UnitClass(frame.unit) + class = UnitIsPlayer(frame.unit) and class or nil + + -- update class icon if possible + if class and frame.portrait then + local iconCoords = CLASS_ICON_TCOORDS[class] + frame.portrait:SetTexture(addonpath .. "\\img\\UI-Classes-Circles") + frame.portrait:SetTexCoord(unpack(iconCoords)) + elseif not class and frame.portrait then + frame.portrait:SetTexCoord(0, 1, 0, 1) + end +end + +module.enable = function(self) + -- overwrite portraits set by the game + local original = UnitFrame_Update + UnitFrame_Update = function(arg1, arg2, arg3) + original(arg1, arg2, arg3) + UpdatePortraits(this) + end + + -- handle portrait update events + local events = CreateFrame("Frame") + events:RegisterEvent("PLAYER_ENTERING_WORLD") + events:RegisterEvent("UNIT_PORTRAIT_UPDATE") + events:SetScript("OnEvent", function(a1, a2) + -- reload player portrait + UpdatePortraits(PlayerFrame) + + -- reload party portraits + UpdatePortraits(PartyMemberFrame1) + UpdatePortraits(PartyMemberFrame2) + UpdatePortraits(PartyMemberFrame3) + UpdatePortraits(PartyMemberFrame4) + end) +end