47 lines
880 B
Lua
47 lines
880 B
Lua
Broadcast = {}
|
|
local _events = {}
|
|
|
|
function Broadcast.AddListener(eventName, Func, Obj)
|
|
if _events[eventName] == nil then
|
|
_events[eventName] = {}
|
|
end
|
|
local event = _events[eventName]
|
|
event[#event + 1] = {
|
|
func = Func,
|
|
obj = Obj
|
|
}
|
|
end
|
|
|
|
function Broadcast.RemoveListener(eventName, func)
|
|
local event = _events[eventName]
|
|
if event == nil then
|
|
return
|
|
end
|
|
|
|
for _, e in pairs(event) do
|
|
if e.func == func then
|
|
event[_] = nil
|
|
return
|
|
end
|
|
end
|
|
end
|
|
|
|
function Broadcast.Send(eventName, ...)
|
|
local event = _events[eventName]
|
|
if event == nil then
|
|
return
|
|
end
|
|
|
|
for _, e in pairs(event) do
|
|
e.func(e.obj, ...)
|
|
end
|
|
end
|
|
|
|
BroadcastEvent = {
|
|
|
|
OnJoinsChange = 'OnJoinsChange',
|
|
OnMemberChange = "OnMemberChange",
|
|
OnOutFamily = "OnOutFamily",
|
|
}
|
|
|