49 lines
1.5 KiB
Lua
49 lines
1.5 KiB
Lua
local name, addon = ...
|
|
addon['name'] = name
|
|
addon['parentName'] = name
|
|
addon['inits'] = addon['inits'] or {}
|
|
addon['defaults'] = {
|
|
['profile'] = {
|
|
["zz_Skeletontoggle"] = false,
|
|
}
|
|
}
|
|
addon['db'] = {}
|
|
local brokers = {}
|
|
|
|
function addon:RegisterBroker(brokerName, brokerFunc,default,defaults)
|
|
brokers[brokerName] = {
|
|
['func'] = brokerFunc,
|
|
['default'] = default,
|
|
['defaults'] = defaults,
|
|
}
|
|
end
|
|
|
|
function addon:PLAYER_ENTERING_WORLD(event,...)
|
|
for broker, tab in pairs(brokers) do
|
|
if(type(tab['defaults']) == 'table') then
|
|
addon['db']['profile'][broker] = addon['db']['profile'][broker] or tab['defaults']
|
|
else
|
|
addon['db']['profile'][broker] = addon['db']['profile'][broker] or {}
|
|
end
|
|
addon:AddConfigEntry(name,"toggle",broker.."toggle",broker,"Enable/Disable "..broker.." on next reload",1,nil,nil,nil,nil,addon['options']['args'][name])
|
|
if(addon['db']['profile'][broker..'toggle'] or addon['db']['profile'][broker..'toggle'] == nil) then
|
|
tab['func']()
|
|
end
|
|
end
|
|
self:UnregisterEvent(event)
|
|
end
|
|
|
|
function addon:ADDON_LOADED(event,arg1)
|
|
if(arg1 ~= name) then return end
|
|
addon['db'] = LibStub("AceDB-3.0"):New(name.."DB", addon['defaults'], true)
|
|
addon['db']['profile'][name] = addon['db']['profile'][name] or {}
|
|
addon:InitConfig(name)
|
|
self:UnregisterEvent(event)
|
|
end
|
|
|
|
addon:RegisterFunc({'ADDON_LOADED','PLAYER_ENTERING_WORLD'},"OnEvent", function(self, event, ...)
|
|
if(type(addon[event]) == 'function') then
|
|
addon[event](self, event, ...)
|
|
end
|
|
end)
|
|
-- addon['inits'][name] = init |