X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/976f2194da6abfa6ba4f0c00759a0743af282105..a0d7f3ac4eccb0300ead1d3c745b9b2587351c7e:/OmaRF/Core.lua diff --git a/OmaRF/Core.lua b/OmaRF/Core.lua index 74f5aed..e0ecbd1 100644 --- a/OmaRF/Core.lua +++ b/OmaRF/Core.lua @@ -1,17 +1,16 @@ -OmaRF = LibStub("AceAddon-3.0"):NewAddon("OmaRF"); +local unpack, wipe, next, pairs, ipairs = unpack, wipe, next, pairs, ipairs; + +OmaRF = CreateFrame("Frame"); OmaRF.normalBarColor = CreateColor(0.3, 0.3, 0.3); OmaRF.dispelBarColor = CreateColor(1, 0.5, 0); 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 = { @@ -52,16 +51,21 @@ end function OmaRF:OnDisable() self.running = false; - for name, frame in pairs(self.frames) do - for _, ind in pairs(frame) do - ind.text:Hide(); - ind.icon:Hide(); + self.frameBase:Hide(); +end + +local function onEvent(self, event, ...) + if event == "PLAYER_REGEN_ENABLED" then + for _, t in pairs(self.ooc_queue) do + t.func(unpack(t.args)); end - for _, ind in ipairs(self.majorFrames[name]) do - ind.icon:Hide(); - ind.expire:Hide(); - ind.stack:Hide(); + 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 @@ -92,3 +96,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);