From 30648d1cc987b25ccd2e09e18ee483a6b92e5ec1 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 28 Nov 2011 01:11:17 +0200 Subject: Implement callback registration in Lua instead of C --- data/builtin.lua | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'data/builtin.lua') diff --git a/data/builtin.lua b/data/builtin.lua index b1abeb364..a32761921 100644 --- a/data/builtin.lua +++ b/data/builtin.lua @@ -151,11 +151,24 @@ minetest.register_node("ignore", { -- Chat message processing -- -minetest.registered_on_chat_messages = {} +function make_registration() + local t = {} + local registerfunc = function(func) table.insert(t, func) end + return t, registerfunc +end + +minetest.registered_on_chat_messages, minetest.register_on_chat_message = make_registration() +minetest.registered_globalsteps, minetest.register_globalstep = make_registration() +minetest.registered_on_placenodes, minetest.register_on_placenode = make_registration() +minetest.registered_on_dignodes, minetest.register_on_dignode = make_registration() +minetest.registered_on_punchnodes, minetest.register_on_punchnode = make_registration() +minetest.registered_on_generateds, minetest.register_on_generated = make_registration() +minetest.registered_on_newplayers, minetest.register_on_newplayer = make_registration() +minetest.registered_on_respawnplayers, minetest.register_on_respawnplayer = make_registration() minetest.on_chat_message = function(name, message) for i,func in ipairs(minetest.registered_on_chat_messages) do - ate = func(name, message) + local ate = func(name, message) if ate then return true end @@ -163,8 +176,4 @@ minetest.on_chat_message = function(name, message) return false end -minetest.register_on_chat_message = function(func) - table.insert(minetest.registered_on_chat_messages, func) -end - -- END -- cgit v1.2.3