You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
949 B

--[[
ScriptManager.lua
@Author : DengSir (tdaddon@163.com)
@Link : https://dengsir.github.io
]]
local ns = select(2, ...)
local Addon = ns.Addon
local ScriptManager = Addon:NewModule('ScriptManager', 'AceEvent-3.0')
local db = setmetatable({}, {
__index = function(t, k)
t[k] = {}
return t[k]
end
})
function ScriptManager:AddScript(plugin, key, script)
db[plugin][key] = script
self:SendMessage('PET_BATTLE_SCRIPT_SCRIPT_ADDED', plugin, key, script)
self:SendMessage('PET_BATTLE_SCRIPT_SCRIPT_LIST_UPDATE')
end
function ScriptManager:GetScript(plugin, key)
return db[plugin][key]
end
function ScriptManager:RemoveScript(plugin, key)
db[plugin][key] = nil
self:SendMessage('PET_BATTLE_SCRIPT_SCRIPT_REMOVED', plugin, key)
self:SendMessage('PET_BATTLE_SCRIPT_SCRIPT_LIST_UPDATE')
end
function ScriptManager:IteratePluginScripts(plugin)
return pairs(db[plugin])
end