diff options
Diffstat (limited to 'EventMsgCenter')
-rw-r--r-- | EventMsgCenter/EventMsgCenter.lua | 25 | ||||
-rw-r--r-- | EventMsgCenter/Events.lua | 1 | ||||
-rw-r--r-- | EventMsgCenter/README.md | 2 |
3 files changed, 18 insertions, 10 deletions
diff --git a/EventMsgCenter/EventMsgCenter.lua b/EventMsgCenter/EventMsgCenter.lua index 43e859b..7b944c2 100644 --- a/EventMsgCenter/EventMsgCenter.lua +++ b/EventMsgCenter/EventMsgCenter.lua @@ -1,13 +1,14 @@ +local EventMsgCenter = {} + -- <event, {callbacks}> local _broadcast = {} -local EventMsgCenter = {} EventMsgCenter.registerMsg = function(e, callback, first) if _broadcast[e] == nil then _broadcast[e] = {} end first = first or false - EventMsgCenter.unRegisterMsg(e, callback) + EventMsgCenter.unregisterMsg(e, callback) if not first then table.insert(_broadcast[e], callback) else @@ -15,21 +16,27 @@ EventMsgCenter.registerMsg = function(e, callback, first) end end -EventMsgCenter.unRegisterMsg = function(e, callback) - if _broadcast[e] == nil or callback == nil then - return +local removeElement = function(t, e) + for i, v in ipairs(t) do + if v == e then + table.remove(t, i) + break + end end - table.remove(_broadcast[e], callback) end -EventMsgCenter.unRegisterAllMsgByEvent = function(e) - if _broadcast[e] == nil then +EventMsgCenter.unregisterMsg = function(e, callback) + if _broadcast[e] == nil or callback == nil then return end + removeElement(_broadcast[e], callback) +end + +EventMsgCenter.unregisterAllMsgByEvent = function(e) _broadcast[e] = nil end -EventMsgCenter.unRegisterAllMsg = function() +EventMsgCenter.unregisterAllMsg = function() _broadcast = {} end diff --git a/EventMsgCenter/Events.lua b/EventMsgCenter/Events.lua index 5c45f2e..3803fd4 100644 --- a/EventMsgCenter/Events.lua +++ b/EventMsgCenter/Events.lua @@ -10,7 +10,6 @@ local events = { } function CreatEnumTable(tbl, index) - assert(IsTable(tbl)) local enumtbl = {} local enumindex = index or 0 for i, v in ipairs(tbl) do diff --git a/EventMsgCenter/README.md b/EventMsgCenter/README.md index e69de29..ef3bd92 100644 --- a/EventMsgCenter/README.md +++ b/EventMsgCenter/README.md @@ -0,0 +1,2 @@ +Event Massage Center + |