From fae3c4a427497229a6832be8122be00c4479a941 Mon Sep 17 00:00:00 2001 From: Justin van der Leij Date: Tue, 20 Feb 2018 23:43:48 +0100 Subject: [PATCH] Allowed for systems to atach multiple times under different callbacks --- fluid/eventManager.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fluid/eventManager.lua b/fluid/eventManager.lua index d4b14f1..61d0066 100644 --- a/fluid/eventManager.lua +++ b/fluid/eventManager.lua @@ -15,14 +15,14 @@ function EventManager:emit(name, ...) if listeners then for i = 1, #listeners do local listener = listeners[i] - listener[name](listener, ...) + listener[1][listener[2]](listener[1], ...) end end return self end -function EventManager:register(name, listener) +function EventManager:register(name, listener, callback) local listeners = self.listeners[name] if not listeners then @@ -31,17 +31,17 @@ function EventManager:register(name, listener) end listeners.count = listeners.count + 1 - listeners[listeners.count] = listener + listeners[listeners.count] = {listener, callback or name} return self end -function EventManager:deregister(name, listener) +function EventManager:deregister(name, listener, callback) local listeners = self.listeners[name] if listeners then for index, other in ipairs(listeners) do - if listener == other then + if listener[1] == other and listener[2] == (callback or name) then table.remove(listeners, index) listeners.count = listeners.count - 1