Diff

core/eventmanager.lua @ 569:5216efe6088b

Add hostmanager, and eventmanager
author Matthew Wild <mwild1@gmail.com>
date Sat, 06 Dec 2008 03:41:49 +0000
child 1514:0c706c3d2e30
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/eventmanager.lua	Sat Dec 06 03:41:49 2008 +0000
@@ -0,0 +1,25 @@
+
+local t_insert = table.insert;
+local ipairs = ipairs;
+
+module "eventmanager"
+
+local event_handlers = {};
+
+function add_event_hook(name, handler)
+	if not event_handlers[name] then
+		event_handlers[name] = {};
+	end
+	t_insert(event_handlers[name] , handler);
+end
+
+function fire_event(name, ...)
+	local event_handlers = event_handlers[name];
+	if event_handlers then
+		for name, handler in ipairs(event_handlers) do
+			handler(...);
+		end
+	end
+end
+
+return _M;
\ No newline at end of file