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.
37 lines
949 B
37 lines
949 B
|
5 years ago
|
--[[
|
||
|
|
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
|