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

64 lines
1.3 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("LoseControl") then return end
local _G = _G
local unpack = unpack
local hooksecurefunc = hooksecurefunc
-- LoseControl 3.33
-- https://www.curseforge.com/wow/addons/losecontrol/files/417954
S:AddCallbackForAddon("LoseControl", "LoseControl", function()
if not E.private.addOnSkins.LoseControl then return end
local framePrefix = "LoseControl"
local frameUnits = {
"player",
"target",
"focus",
"party1",
"party2",
"party3",
"party4",
"arena1",
"arena2",
"arena3",
"arena4",
"arena5",
}
local function fixParent(self, parent)
if not parent then
self:SetParent(UIParent)
end
end
local function skinIcon(frame)
if not frame or frame.inSkinned then return end
frame:CreateBackdrop()
frame.texture:SetAllPoints(frame)
frame.texture:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(frame)
hooksecurefunc(frame, "SetParent", fixParent)
frame.SetSize = frame.Size
frame.inSkinned = true
end
for _, frameUnit in ipairs(frameUnits) do
skinIcon(_G[framePrefix..frameUnit])
end
hooksecurefunc(_G["LoseControlplayer"].__index, "new", function(_, unitID)
skinIcon(_G[framePrefix..unitID])
end)
end)