Event =
{
}
function Event:New()
local e = {}
setmetatable(e, Event)
e.events = {}
return e
end
function Event:Add(fun)
if fun then
self.events[fun] = fun
end
return fun
end
function Event:Remove(fun)
if fun then
self.events[fun] = nil
end
end
function Event:Call(param1, param2, param3, param4)
for k,v in pairs(self.events) do
v(param1, param2, param3, param4)
end
end
function Event:Clear()
for k,v in pairs(self.events) do
self.events[k] = nil
end
end
Event.__index = Event
return Event