Files
coa-elvui/ElvUI_AddOnSkins/Skins/Addons/talented.lua
T

196 lines
6.2 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("Talented") then return end
local unpack = unpack
-- Talented r660
S:AddCallbackForAddon("Talented", "Talented", function()
if not E.private.addOnSkins.Talented then return end
local function SkinButton(button)
S:HandleButton(button, true)
button.left:Kill()
button.middle:Kill()
button.right:Kill()
end
S:SecureHook(Talented, "CreateBaseFrame", function()
TalentedFrame:StripTextures()
TalentedFrame:SetTemplate("Transparent")
S:HandleCloseButton(TalentedFrame.close, TalentedFrame)
SkinButton(TalentedFrame.bactions)
SkinButton(TalentedFrame.bmode)
SkinButton(TalentedFrame.bglyphs)
SkinButton(TalentedFrame.bactivate)
TalentedFrame.bactivate:Point("BOTTOM", TalentedFrame, 0, 3)
TalentedFrame.editname:Height(18)
TalentedFrame.editname:DisableDrawLayer("BACKGROUND")
S:HandleEditBox(TalentedFrame.editname)
S:HandleCheckBox(TalentedFrame.checkbox)
S:Unhook(Talented, "CreateBaseFrame")
end)
S:RawHook(Talented, "MakeButton", function(self, parent)
local button = S.hooks[self].MakeButton(self, parent)
if not button.isSkinned then
button:SetTemplate("Default")
button:StyleButton()
button:DisableDrawLayer("BACKGROUND")
button:SetNormalTexture(nil)
button.SetNormalTexture = E.noop
button.texture:SetInside(button)
button.texture:SetTexCoord(unpack(E.TexCoords))
button.texture:SetDrawLayer("ARTWORK")
button.rank:SetFont(E.LSM:Fetch("font", E.db["general"].font), 12, "OUTLINE")
button.rank:Point("CENTER", button, "BOTTOMRIGHT", 2, 0)
button.rank.texture:Kill()
button.isSkinned = true
end
return button
end)
S:RawHook(Talented, "GetButtonTarget", function(self, button)
local target = S.hooks[self].GetButtonTarget(self, button)
if not target.isSkinned then
target:SetFont(E.LSM:Fetch("font", E.db["general"].font), 12, "OUTLINE")
target:Point("CENTER", button, "TOPRIGHT", 2, 0)
target.texture:Kill()
target.isSkinned = true
end
return target
end)
S:RawHook(Talented, "MakeTalentFrame", function(self, parent, width, height)
local tree = S.hooks[self].MakeTalentFrame(self, parent, width, height)
if not tree.isSkinned then
tree.clear:GetNormalTexture():SetDesaturated(true)
tree.clear:GetPushedTexture():SetDesaturated(true)
tree.clear:GetHighlightTexture():SetDesaturated(true)
tree.isSkinned = true
end
return tree
end)
AS:SkinLibrary("Dewdrop-2.0")
end)
S:AddCallbackForAddon("Talented_GlyphFrame", "Talented_GlyphFrame", function()
if not E.private.addOnSkins.Talented then return end
TalentedGlyphs:CreateBackdrop("Transparent")
TalentedGlyphs.backdrop:Point("TOPLEFT", 11, -12)
TalentedGlyphs.backdrop:Point("BOTTOMRIGHT", -32, 76)
TalentedGlyphs:SetHitRectInsets(0, 0, 0, 0)
S:SetBackdropHitRect(TalentedGlyphs, TalentedGlyphs.backdrop, true)
S:HandleCloseButton(TalentedGlyphs.close)
TalentedGlyphs.title:Point("TOP", 0, -15)
TalentedGlyphs.portrait:Hide()
TalentedGlyphs.background:SetDrawLayer("ARTWORK")
TalentedGlyphs.background:Size(323, 349)
TalentedGlyphs.background:Point("TOPLEFT", 20, -59)
TalentedGlyphs.background:CreateBackdrop()
TalentedGlyphs.glow:SetDrawLayer("OVERLAY")
TalentedGlyphs.glow:SetAllPoints(TalentedGlyphs.background)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 512, 512, 315, 340, 21, 72
TalentedGlyphs.background:SetTexCoord(0.041015625, 0.65625, 0.140625, 0.8046875)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 512, 512, 315, 340, 30, 34
TalentedGlyphs.glow:SetTexCoord(0.05859375, 0.673828125, 0.06640625, 0.73046875)
local glyphBGScale = 1.0253968
local glyphPositions = {
{"CENTER", -1, 126},
{"CENTER", -1, -119},
{"TOPLEFT", 8, -62},
{"BOTTOMRIGHT", -10, 70},
{"TOPRIGHT", -8, -62},
{"BOTTOMLEFT", 7, 70}
}
local slotAnimations = {}
local TOPLEFT, TOP, TOPRIGHT, BOTTOMRIGHT, BOTTOM, BOTTOMLEFT = 3, 1, 5, 4, 2, 6
slotAnimations[TOPLEFT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -85, ["yStart"] = 17, ["yStop"] = 60}
slotAnimations[TOP] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -13, ["yStart"] = 17, ["yStop"] = 100}
slotAnimations[TOPRIGHT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = 59, ["yStart"] = 17, ["yStop"] = 60}
slotAnimations[BOTTOM] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -13, ["yStart"] = 17, ["yStop"] = -64}
slotAnimations[BOTTOMLEFT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -87, ["yStart"] = 18, ["yStop"] = -27}
slotAnimations[BOTTOMRIGHT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = 61, ["yStart"] = 18, ["yStop"] = -27}
for _, animData in ipairs(slotAnimations) do
animData.xStart = animData.xStart + 3
animData.yStart = animData.yStart + 8
animData.xStop = (animData.xStop + 3) * glyphBGScale
animData.yStop = (animData.yStop + 8) * glyphBGScale
end
local glyphFrameLevel = TalentedGlyphs:GetFrameLevel() + 1
for glyphID, glyph in ipairs(TalentedGlyphs.glyphs) do
glyph:SetFrameLevel(glyphFrameLevel)
glyph:Size(90)
glyph:SetScale(glyphBGScale)
local point, x, y = unpack(glyphPositions[glyphID])
glyph:Point(point, TalentedGlyphs.background.backdrop, x, y)
local animation = slotAnimations[glyphID]
glyph.sparkle:SetDrawLayer("OVERLAY")
glyph.sparkle:Point(animation.point, animation.xStart, animation.yStart)
glyph.sparkle.anim.translation:SetOffset(animation.xStop - animation.xStart, animation.yStop - animation.yStart)
end
S:HandleCheckBox(TalentedGlyphs.checkbox)
TalentedGlyphs.checkbox:Point("BOTTOMLEFT", 15, 80)
end)
S:AddCallbackForAddon("Talented_SpecTabs", "Talented_SpecTabs", function()
if not E.private.addOnSkins.Talented then return end
local function skinTabs()
Talented.tabs:Point("TOPLEFT", TalentedFrame, "TOPRIGHT", -1, -40)
for _, tab in ipairs({"spec1", "spec2", "petspec1"}) do
tab = Talented.tabs[tab]
tab:SetTemplate("Default")
tab:StyleButton()
tab:DisableDrawLayer("BACKGROUND")
tab:GetNormalTexture():SetInside(tab.backdrop)
tab:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
end
end
if Talented.base then
skinTabs()
else
hooksecurefunc(Talented, "CreateBaseFrame", skinTabs)
end
end)