df7cc26a64
Fix remaining lua errors covered by ascension patches Add Addon Skins Add Enhanced Friends List
196 lines
6.2 KiB
Lua
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) |