You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.7 KiB

4 years ago
local _G = _G
local format = format
local strlower = strlower
local CreateFrame = CreateFrame
local GetAddOnEnableState = C_AddOns.GetAddOnEnableState
local GetAddOnInfo = C_AddOns.GetAddOnInfo
local GetAddOnMetadata = C_AddOns.GetAddOnMetadata
local GetNumAddOns = C_AddOns.GetNumAddOns
4 years ago
local GetRealmName = GetRealmName
local UIParent = UIParent
local UnitClass = UnitClass
local UnitName = UnitName
local UnitFactionGroup = UnitFactionGroup
local AddOnName, Engine = ...
local AS = _G.LibStub('AceAddon-3.0'):NewAddon('AddOnSkins', 'AceConsole-3.0', 'AceEvent-3.0', 'AceHook-3.0', 'AceTimer-3.0')
local _
AS.EmbedSystem = AS:NewModule('EmbedSystem', 'AceEvent-3.0', 'AceHook-3.0')
AS.Skins = AS:NewModule('Skins', 'AceTimer-3.0', 'AceHook-3.0', 'AceEvent-3.0')
3 years ago
Engine[1] = AS
Engine[2] = {}
Engine[3] = AS.Skins
Engine[4] = {}
4 years ago
_G.AddOnSkins = Engine
_G.AddOnSkinsDS = {}
3 years ago
AS.Classic = WOW_PROJECT_ID == WOW_PROJECT_CLASSIC
AS.Retail = WOW_PROJECT_ID == WOW_PROJECT_MAINLINE
AS.TBC = WOW_PROJECT_ID == WOW_PROJECT_BURNING_CRUSADE_CLASSIC
AS.Wrath = WOW_PROJECT_ID == WOW_PROJECT_WRATH_CLASSIC
4 years ago
AS.Libs = {
AC = _G.LibStub('AceConfig-3.0'),
ACD = _G.LibStub('AceConfigDialog-3.0-ElvUI', true) or _G.LibStub('AceConfigDialog-3.0'),
ACH = _G.LibStub('LibAceConfigHelper'),
ADB = _G.LibStub('AceDB-3.0'),
ADBO = _G.LibStub('AceDBOptions-3.0'),
ACL = _G.LibStub("AceLocale-3.0-ElvUI", true) or _G.LibStub("AceLocale-3.0"),
EP = _G.LibStub('LibElvUIPlugin-1.0', true),
ACR = _G.LibStub('AceConfigRegistry-3.0'),
GUI = _G.LibStub('AceGUI-3.0'),
LCG = _G.LibStub('LibCustomGlow-1.0', true),
LSM = _G.LibStub('LibSharedMedia-3.0', true),
}
AS.Title = GetAddOnMetadata(AddOnName, 'Title')
AS.Version = tonumber(GetAddOnMetadata(AddOnName, 'Version'))
AS.Authors = GetAddOnMetadata(AddOnName, 'Author'):gsub(", ", " ")
3 years ago
AS.ProperVersion = format('%.2f', AS.Version)
AS.TicketTracker = 'https://github.com/Azilroka/AddOnSkins/issues'
_, AS.MyClass = UnitClass('player')
3 years ago
AS.MyName = UnitName('player')
AS.MyRealm = GetRealmName()
AS.Noop = function() end
AS.TexCoords = { .075, .925, .075, .925 }
AS.Faction = UnitFactionGroup('player')
AS.Debug = false
4 years ago
AS.preload = {}
3 years ago
AS.skins = {}
AS.events = {}
AS.FrameLocks = {}
4 years ago
3 years ago
AS.AddOns = {}
AS.AddOnVersion = {}
4 years ago
for i = 1, GetNumAddOns() do
local Name, _, _, _, Reason = GetAddOnInfo(i)
AS.AddOns[strlower(Name)] = GetAddOnEnableState(Name, AS.MyName) == 2 and (not Reason or Reason ~= 'DEMAND_LOADED')
3 years ago
AS.AddOnVersion[strlower(Name)] = GetAddOnMetadata(Name, 'Version')
4 years ago
end
AS.Libs.LSM:Register('statusbar', 'Solid', [[Interface\Buttons\WHITE8X8]])
4 years ago
3 years ago
AS.Hider = CreateFrame('Frame', nil, UIParent)
AS.Hider:Hide()