@@ -13,6 +13,7 @@ return function(name, basalt)
1313 local isEnabled ,initialized = true ,false
1414
1515 local eventSystem = basaltEvent ()
16+ local registeredEvents = {}
1617 local activeEvents = {}
1718
1819 local parent
@@ -113,7 +114,6 @@ return function(name, basalt)
113114 remove = function (self )
114115 if (parent ~= nil ) then
115116 parent :removeObject (self )
116- parent :removeEvents (self )
117117 end
118118 self :updateDraw ()
119119 return self
@@ -139,11 +139,19 @@ return function(name, basalt)
139139 return eventSystem
140140 end ,
141141
142+ getRegisteredEvents = function (self )
143+ return registeredEvents
144+ end ,
145+
142146 registerEvent = function (self , event , func )
143147 if (parent ~= nil )then
144148 parent :addEvent (event , self )
145149 end
146- return eventSystem :registerEvent (event , func )
150+ eventSystem :registerEvent (event , func )
151+ if (registeredEvents [event ] == nil ) then
152+ registeredEvents [event ] = {}
153+ end
154+ table.insert (registeredEvents [event ], func )
147155 end ,
148156
149157 removeEvent = function (self , event , index )
@@ -152,7 +160,13 @@ return function(name, basalt)
152160 parent :removeEvent (event , self )
153161 end
154162 end
155- return eventSystem :removeEvent (event , index )
163+ eventSystem :removeEvent (event , index )
164+ if (registeredEvents [event ] ~= nil ) then
165+ table.remove (registeredEvents [event ], index )
166+ if (# registeredEvents [event ] == 0 ) then
167+ registeredEvents [event ] = nil
168+ end
169+ end
156170 end ,
157171
158172 eventHandler = function (self , event , ...)
@@ -262,7 +276,7 @@ return function(name, basalt)
262276 end
263277 return self
264278 end ,
265- }
279+ }
266280
267281 object .__index = object
268282 return object
0 commit comments