local _, Engine = ... local AS = _G.LibStub('AceAddon-3.0'):NewAddon('AddOnSkins', 'AceConsole-3.0', 'AceEvent-3.0', 'AceHook-3.0', 'AceTimer-3.0') local _G = _G local select = select local format = format local strlower = strlower local CreateFrame = CreateFrame local GetAddOnEnableState = GetAddOnEnableState local GetAddOnInfo = GetAddOnInfo local GetAddOnMetadata = GetAddOnMetadata local GetNumAddOns = GetNumAddOns local GetPhysicalScreenSize = GetPhysicalScreenSize local GetRealmName = GetRealmName local UIParent = UIParent local UnitClass = UnitClass local UnitName = UnitName local UnitFactionGroup = UnitFactionGroup Engine[1] = AS Engine[2] = _G.LibStub("AceLocale-3.0"):GetLocale('AddOnSkins', false) _G.AddOnSkins = Engine _G.AddOnSkinsDS = {} local _, _, _, wowtoc = GetBuildInfo() -- TODO: Move back to Core.lua AS.Classic = WOW_PROJECT_ID == WOW_PROJECT_CLASSIC AS.Retail = WOW_PROJECT_ID == WOW_PROJECT_MAINLINE AS.TBC = wowtoc >= 20504 and wowtoc < 30000 AS.Wrath = wowtoc >= 30400 and wowtoc < 40000 AS.Title = GetAddOnMetadata(..., 'Title') AS.Version = tonumber(GetAddOnMetadata(..., 'Version')) AS.Authors = GetAddOnMetadata(..., 'Author'):gsub(", ", " ") AS.ProperVersion = format('%.2f', AS.Version) AS.TicketTracker = 'https://github.com/Azilroka/AddOnSkins/issues' AS.MyClass = select(2, UnitClass('player')) AS.MyName = UnitName('player') AS.MyRealm = GetRealmName() AS.Noop = function() end AS.TexCoords = { .075, .925, .075, .925 } AS.UIScale = UIParent:GetScale() AS.Faction = UnitFactionGroup('player') AS.Mult = 1 AS.ScreenWidth, AS.ScreenHeight = GetPhysicalScreenSize() AS.Libs = { ACH = _G.LibStub('LibAceConfigHelper'), LSM = _G.LibStub('LibSharedMedia-3.0', true), LCG = _G.LibStub('LibCustomGlow-1.0', true), AC = _G.LibStub('AceConfig-3.0'), GUI = _G.LibStub('AceGUI-3.0'), ACR = _G.LibStub('AceConfigRegistry-3.0'), ACD = _G.LibStub('AceConfigDialog-3.0'), ACL = Engine[2], ADB = _G.LibStub('AceDB-3.0'), } local Color = _G.RAID_CLASS_COLORS[AS.MyClass] AS.ClassColor = { Color.r, Color.g, Color.b } AS.Color = { 0, 0.44, .87, 1 } AS.skins = {} AS.events = {} AS.register = {} AS.FrameLocks = {} AS.preload = {} AS.AddOns = {} AS.AddOnVersion = {} for i = 1, GetNumAddOns() do local Name, _, _, _, Reason = GetAddOnInfo(i) AS.AddOns[strlower(Name)] = GetAddOnEnableState(AS.MyName, Name) == 2 and (not Reason or Reason ~= 'DEMAND_LOADED') AS.AddOnVersion[strlower(Name)] = GetAddOnMetadata(Name, 'Version') end AS.Media = { Textures = { Plus = [[Interface\AddOns\AddOnSkins\Media\Textures\Plus]], Minus = [[Interface\AddOns\AddOnSkins\Media\Textures\Minus]], QuestBang = [[Interface\AddOns\AddOnSkins\Media\Textures\UI-Icon-QuestBang]] } } AS.Hider = CreateFrame('Frame', nil, UIParent) AS.Hider:Hide()