Files
Basalt/Basalt/libraries/basaltEvent.lua
Robert Jelic 4d2aad4155 1.7.1
- Dyn Values Update
- Template Update
- Property System
- Texture System Update
2023-06-15 18:22:43 +02:00

57 lines
1.5 KiB
Lua

local tableCount = require("utils").tableCount
return function()
local events = {}
local event = {
registerEvent = function(self, _event, func)
if (events[_event] == nil) then
events[_event] = {}
end
table.insert(events[_event], func)
end,
removeEvent = function(self, _event, index)
events[_event][index[_event]] = nil
end,
hasEvent = function(self, _event)
return events[_event]~=nil
end,
getEventCount = function(self, _event)
return _event~=nil and events[_event]~=nil and tableCount(events[_event]) or tableCount(events)
end,
getEvents = function(self)
local t = {}
for k,v in pairs(events)do
table.insert(t, k)
end
return t
end,
clearEvent = function(self, _event)
events[_event] = nil
end,
clear = function(self, _event)
events = {}
end,
sendEvent = function(self, _event, ...)
local returnValue
if (events[_event] ~= nil) then
for _, value in pairs(events[_event]) do
local val = value(...)
if(val==false)then
returnValue = val
end
end
end
return returnValue
end,
}
event.__index = event
return event
end