RaidFrameCustomization = LibStub("AceAddon-3.0"):NewAddon("RaidFrameCustomization", "AceTimer-3.0"); RaidFrameCustomization.normalBarColor = CreateColor(0.3, 0.3, 0.3); RaidFrameCustomization.dispelBarColor = CreateColor(1, 0.5, 0); RaidFrameCustomization.normalBackColor = {0.7, 0.7, 0.7}; RaidFrameCustomization.dispelBackColor = {0.5, 0.2, 0}; RaidFrameCustomization.inits = {}; RaidFrameCustomization.enables = {}; RaidFrameCustomization.disables = {}; RaidFrameCustomization.frames = {}; RaidFrameCustomization.positions = { "TOPLEFT", "TOPRIGHT", "CENTER", "BOTTOMLEFT", "BOTTOMRIGHT" }; local defaults = { profile = { indicatorFont = "Arial Narrow", showIcons = true, enabled = true, indicators = { ['**'] = { textSize = 10, color = {1, 1, 1, 1}, mine = false, stack = true, showText = true, showIcon = true, useDefaultIcon = true, iconSize = 10, }, }, } }; function RaidFrameCustomization:OnInitialize() self.db = LibStub("AceDB-3.0"):New("RaidFrameCustomizationDB", defaults); self:SetupOptions(); self.db.RegisterCallback(self, "OnProfileChanged", "RefreshConfig"); self.db.RegisterCallback(self, "OnProfileCopied", "RefreshConfig"); self.db.RegisterCallback(self, "OnProfileReset", "RefreshConfig"); end function RaidFrameCustomization:OnEnable() self:RefreshConfig(); end function RaidFrameCustomization:OnDisable() self:CancelAllTimers(); for _, frame in pairs(self.frames) do for _, ind in pairs(frame) do ind.text:SetText(""); ind.icon:SetTexture(""); end end end