From 6348b85740a8c477e2c3d583fd6cea6d39fe2a32 Mon Sep 17 00:00:00 2001 From: Brues <5278969+brues-code@users.noreply.github.com> Date: Mon, 14 Sep 2026 14:05:29 -0500 Subject: [PATCH] Draw the stats window with art 1.12 actually ships Neither texture it asked for exists on this client, and ClassicAPI ships no art of its own. UI-DialogBox-Background-Dark is a later addition -- 1.12 has only the un-suffixed UI-DialogBox-Background -- and ItemSocketingFrame is TBC, so the featured emotes' border was cropped out of a sheet whose folder isn't there at all. UI-Quickslot2 is the obvious stand-in for that border, but its hole is ~55% of the texture, so a 70px emote needs a 128px ring and runs into the title above and the caption below. It is a small backdrop frame instead, styled like the autocomplete popup, which keeps the 86/70 sizing. The emote moves onto that frame to draw above the backdrop; topSentTex/topSeenTex keep their names, so the animator still finds them. --- TwitchEmotesStats.lua | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/TwitchEmotesStats.lua b/TwitchEmotesStats.lua index 0d5af23..a371f25 100644 --- a/TwitchEmotesStats.lua +++ b/TwitchEmotesStats.lua @@ -49,8 +49,13 @@ local WIN_H = 516 local FALLBACK_TEX = "Interface\\AddOns\\TwitchEmotes\\Emotes\\1337.tga" -local BORDER_TEX = "Interface\\ItemSocketingFrame\\UI-EngineeringSockets" -local BORDER = { left = 0.015625, right = 0.6875, top = 0.41210938, bottom = 0.49609375 } +-- Same panel styling as the autocomplete popup. +local FEATURED_BACKDROP = { + bgFile = "Interface\\Buttons\\WHITE8X8", + edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", + tile = true, tileSize = 8, edgeSize = 8, + insets = { left = 3, right = 3, top = 3, bottom = 3 }, +} local sentKeys = {} local seenKeys = {} @@ -184,15 +189,18 @@ local function makeFeatured(f, label, centerX) title:SetPoint("CENTER", f, "TOPLEFT", centerX, -52) title:SetText(label) - local border = f:CreateTexture(nil, "ARTWORK") - border:SetTexture(BORDER_TEX) + -- a frame rather than a texture, so the emote can sit on its OVERLAY layer + -- above the backdrop + local border = CreateFrame("Frame", nil, f) border:SetSize(86, 86) - border:SetTexCoord(BORDER.left, BORDER.right, BORDER.top, BORDER.bottom) border:SetPoint("CENTER", f, "TOPLEFT", centerX, -108) + border:SetBackdrop(FEATURED_BACKDROP) + border:SetBackdropColor(0.05, 0.05, 0.05, 0.95) + border:SetBackdropBorderColor(1, 1, 1, 1) - local tex = f:CreateTexture(nil, "OVERLAY") + local tex = border:CreateTexture(nil, "OVERLAY") tex:SetSize(70, 70) - tex:SetPoint("CENTER", f, "TOPLEFT", centerX, -108) + tex:SetPoint("CENTER", border, "CENTER", 0, 0) local cap = f:CreateFontString(nil, "OVERLAY", "GameFontHighlight") cap:SetPoint("CENTER", f, "TOPLEFT", centerX, -160) @@ -212,7 +220,7 @@ local function buildWindow() f:SetScript("OnDragStop", f.StopMovingOrSizing) f:SetFrameStrata("HIGH") f:SetBackdrop({ - bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background-Dark", + bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background", edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", tile = true, tileSize = 32, edgeSize = 32, insets = { left = 11, right = 12, top = 12, bottom = 11 },