diff options
Diffstat (limited to 'api_nodetimer.lua')
-rw-r--r-- | api_nodetimer.lua | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/api_nodetimer.lua b/api_nodetimer.lua new file mode 100644 index 0000000..8e64277 --- /dev/null +++ b/api_nodetimer.lua @@ -0,0 +1,49 @@ + + +-- node.on_timer wrapper +-- def = { node = "", suffix = "" } +mesecons_debug.register_nodetimer_toggle = function(def) + + local nodedef = minetest.registered_nodes[def.node] + + local old_on_timer = nodedef and nodedef.on_timer + + if not old_on_timer then + minetest.log( + "action", + "[mesecons_debug] invalid definition for " .. def.node + ) + return + end + + local enabled = true + + nodedef.on_timer = function(...) + if enabled then + return old_on_timer(...) + else + -- rerun nodetimer again + return true + end + end + + minetest.register_chatcommand("mesecons_debug_disable_" .. def.suffix, { + description = "disables the nodetimer for " .. def.node, + privs = {mesecons_debug=true}, + func = function() + enabled = false + return true, "Disabled nodetimer for " .. def.node + end + }) + + minetest.register_chatcommand("mesecons_debug_enable_" .. def.suffix, { + description = "enables the nodetimer for " .. def.node, + privs = {mesecons_debug=true}, + func = function() + enabled = true + return true, "Enabled nodetimer for " .. def.node + end + }) + + +end |