X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/b8c70450d10559c08516416bf92fb95434bd3034..a0d7f3ac4eccb0300ead1d3c745b9b2587351c7e:/OmaRF/Core.lua diff --git a/OmaRF/Core.lua b/OmaRF/Core.lua index e4c2d29..e0ecbd1 100644 --- a/OmaRF/Core.lua +++ b/OmaRF/Core.lua @@ -1,24 +1,29 @@ -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.positions = { "TOPLEFT", "TOPRIGHT", "CENTER", "BOTTOMLEFT", "BOTTOMRIGHT" }; - OmaRF.running = false; +OmaRF.ooc_queue = {}; local defaults = { profile = { - indicatorFont = "Arial Narrow", - showIcons = true, enabled = true, + majorAuras = { + auras = {"Aqua Bomb"}, + max = 3; + iconSize = 24, + textSize = 10, + }, indicators = { ['**'] = { + auras = {}, textSize = 10, textColor = {1, 1, 1, 1}, mine = false, @@ -46,19 +51,29 @@ end function OmaRF:OnDisable() self.running = false; - for _, frame in pairs(self.frames) do - for _, ind in pairs(frame) do - ind.text:SetText(""); - ind.icon:SetTexture(""); + 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 + 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"); + local loaded, finished = IsAddOnLoaded("OmaRFConfig"); if not loaded then - local loaded, reason = LoadAddon("OmaRFConfig"); + local loaded, reason = LoadAddOn("OmaRFConfig"); if not loaded then if reason == "DISABLED" then print("OmaRFConfig is disabled"); @@ -78,5 +93,11 @@ function SlashCmdList.OMARF(msg, editBox) return; end + 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);