3 function events:fire_event(event, callback)
6 local listeners = self._event_listeners[eventtype]
7 if listeners and #listeners > 0 then
8 for _, listener in ipairs(listeners) do
17 function events:add_event_listener(eventtype, eventlistener)
18 self._event_listeners[eventtype] = self._event_listeners[eventtype] or {}
19 table.insert(self._event_listeners[eventtype], eventlistener)
22 function events:remove_event_listener(eventtype, eventlistener)
23 local listeners = self._event_listeners[eventtype]
25 for k, listener in ipairs(listeners) do
26 if listener == eventlistener then
28 return self:removeEventListener(eventtype, eventlistener)
34 function events:clear_event_listeners()
35 self._event_listeners = {}
38 function Dragonblocks:create_event_interface()
40 table.assign(self, events)
41 self:clear_event_listeners()