diff --git a/Core.lua b/Core.lua index d41040f..eab19d5 100644 --- a/Core.lua +++ b/Core.lua @@ -1,16 +1,25 @@ local addonName, DX = ... -_G[addonName] = DX +DX.Modules = {} -local f = CreateFrame("Frame") -f:RegisterEvent("ADDON_LOADED") +function DX:AddModule(name, func) + DX.Modules[name] = { + Init = func, + Enabled = true + } +end -f:SetScript("OnEvent", function(self, event, ...) - if event == "ADDON_LOADED" and ... == addonName then - self:UnregisterEvent("ADDON_LOADED") - DX:Initialize() +local coreFrame = CreateFrame("Frame") +coreFrame:RegisterEvent("PLAYER_LOGIN") + +coreFrame:SetScript("OnEvent", function(self, event) + if event == "PLAYER_LOGIN" then + print("|cffFF4500DX Tweaks:|r Loading modules") + for name, module in pairs(DX.Modules) do + if module.Enabled then + module.Init() + print("|cffFF4500DX Tweaks:|r " .. name .. " loaded") + end + end + self:UnregisterEvent("PLAYER_LOGIN") end -end) - -function DX:Initialize() - print("|cffFF4500DX Tweaks|r geladen!") -end \ No newline at end of file +end) \ No newline at end of file diff --git a/DX_Tweaks.toc b/DX_Tweaks.toc index 4ddb48c..1237062 100644 --- a/DX_Tweaks.toc +++ b/DX_Tweaks.toc @@ -27,4 +27,5 @@ libs\LibSharedMedia-3.0\LibSharedMedia-3.0.lua Media.lua Core.lua -# Modules \ No newline at end of file +# Modules +modules\talentbackground\TalentBackground.lua \ No newline at end of file diff --git a/Media.lua b/Media.lua index c1238c0..adfadb3 100644 --- a/Media.lua +++ b/Media.lua @@ -3,4 +3,9 @@ local LSM = LibStub("LibSharedMedia-3.0") -- ----- -- FONT -- ----- -LSM:Register('font', 'DX Narrow', [[Interface\Addons\DX_Tweaks\media\fonts\DX_Narrow.ttf]]) \ No newline at end of file +LSM:Register('font', 'DX Narrow', [[Interface\Addons\DX_Tweaks\media\fonts\DX_Narrow.ttf]]) + +-- ----- +-- BACKGROUND +-- ----- +LSM:Register('background', 'DX TalentBG', [[Interface\AddOns\DX_Tweaks\media\textures\talent_bg.tga]]) \ No newline at end of file diff --git a/media/textures/talent_bg.tga b/media/textures/talent_bg.tga new file mode 100644 index 0000000..c09a8bb Binary files /dev/null and b/media/textures/talent_bg.tga differ diff --git a/modules/talentbackground/TalentBackground.lua b/modules/talentbackground/TalentBackground.lua new file mode 100644 index 0000000..fe82374 --- /dev/null +++ b/modules/talentbackground/TalentBackground.lua @@ -0,0 +1,51 @@ +local addonName, DX = ... + +local LSM = LibStub("LibSharedMedia-3.0") + +local function LoadTalentBackground() + local eventFrame = CreateFrame("Frame") + + local function ApplyBG() + local frame = _G.PlayerSpellsFrame + if not frame or not frame.TalentsFrame then return end + + local bg = frame.TalentsFrame.Background + if bg then + local bgPath = LSM:Fetch("background", "DX TalentBG") + bg:SetAtlas(nil) + bg:SetTexture(bgPath) + bg:SetAlpha(1) + bg:SetDesaturated(false) + bg:SetVertexColor(1, 1, 1, 1) + bg:SetDrawLayer("BACKGROUND", -8) + bg:SetHorizTile(false) + bg:SetVertTile(false) + end + end + + local function SetupHooks() + local frame = _G.PlayerSpellsFrame + if not frame then return end + + hooksecurefunc(frame, "Show", function() + C_Timer.After(0.05, ApplyBG) + end) + if frame:IsVisible() then + ApplyBG() + end + end + + if C_AddOns.IsAddOnLoaded("Blizzard_PlayerSpells") then + SetupHooks() + else + eventFrame:SetScript("OnEvent", function(self, event, name) + if name == "Blizzard_PlayerSpells" then + SetupHooks() + self:UnregisterEvent("ADDON_LOADED") + end + end) + eventFrame:RegisterEvent("ADDON_LOADED") + end +end + +DX:AddModule("TalentBackground", LoadTalentBackground) \ No newline at end of file