X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/6f9efe3aedbfb5f6be2277de730fa446d87bb4d7..e410c5d67984d70758631f799bb8517f369d8fa1:/OmaRF/Core.lua?ds=sidebyside diff --git a/OmaRF/Core.lua b/OmaRF/Core.lua index 0b44b48..34b4657 100644 --- a/OmaRF/Core.lua +++ b/OmaRF/Core.lua @@ -1,4 +1,4 @@ -OmaRF = LibStub("AceAddon-3.0"):NewAddon("OmaRF"); +OmaRF = CreateFrame("Frame"); OmaRF.normalBarColor = CreateColor(0.3, 0.3, 0.3); OmaRF.dispelBarColor = CreateColor(1, 0.5, 0); @@ -6,15 +6,24 @@ OmaRF.normalBackColor = {0.7, 0.7, 0.7}; OmaRF.dispelBackColor = {0.5, 0.2, 0}; OmaRF.frames = {}; +OmaRF.majorFrames = {}; OmaRF.positions = { "TOPLEFT", "TOPRIGHT", "CENTER", "BOTTOMLEFT", "BOTTOMRIGHT" }; OmaRF.running = false; +OmaRF.ooc_queue = {}; + local defaults = { profile = { enabled = true, + majorAuras = { + auras = {"Aqua Bomb"}, + max = 3; + iconSize = 24, + textSize = 10, + }, indicators = { ['**'] = { auras = {}, @@ -45,14 +54,34 @@ end function OmaRF:OnDisable() self.running = false; - for _, frame in pairs(self.frames) do + for name, frame in pairs(self.frames) do for _, ind in pairs(frame) do - ind.text:SetText(""); - ind.icon:SetTexture(""); + ind.text:Hide(); + ind.icon:Hide(); + end + for _, ind in ipairs(self.majorFrames[name]) do + ind.icon:Hide(); + ind.expire:Hide(); + ind.stack:Hide(); end end end +local function onEvent(self, event, ...) + if event == "PLAYER_REGEN_ENABLED" then + for _, t in pairs(self.ooc_queue) do + t.func(t.args); + end + if next(self.ooc_queue) ~= nil then + wipe(self.ooc_queue); + end + elseif event == "PLAYER_LOGIN" then + self:OnEnable(); + elseif event == "ADDON_LOADED" then + self:OnInitialize(); + end +end + SLASH_OMARF1 = "/omarf"; function SlashCmdList.OMARF(msg, editBox) local loaded, finished = IsAddOnLoaded("OmaRFConfig"); @@ -80,3 +109,8 @@ function SlashCmdList.OMARF(msg, editBox) InterfaceOptionsFrame_OpenToCategory(OmaRF.optionsFrames.Profile); InterfaceOptionsFrame_OpenToCategory(OmaRF.optionsFrames.Indicators); end + +OmaRF:RegisterEvent("ADDON_LOADED"); +OmaRF:RegisterEvent("PLAYER_LOGIN"); +OmaRF:RegisterEvent("PLAYER_REGEN_ENABLED"); +OmaRF:SetScript("OnEvent", onEvent);