diff options
author | NatureFreshMilk <naturefreshmilk@github.com> | 2019-08-16 07:49:14 +0200 |
---|---|---|
committer | NatureFreshMilk <naturefreshmilk@github.com> | 2019-08-16 07:49:14 +0200 |
commit | aeb9ef2e382adcf2a6fc9aac25806397a0574455 (patch) | |
tree | 48ba4f72659513e119babea2b792ecf63817ebfb | |
download | mesecons_debug-aeb9ef2e382adcf2a6fc9aac25806397a0574455.tar.gz mesecons_debug-aeb9ef2e382adcf2a6fc9aac25806397a0574455.zip |
basic api
-rw-r--r-- | .luacheckrc | 16 | ||||
-rw-r--r-- | api.lua | 49 | ||||
-rw-r--r-- | depends.txt | 1 | ||||
-rw-r--r-- | flush.lua | 10 | ||||
-rw-r--r-- | globalstep.lua | 64 | ||||
-rw-r--r-- | init.lua | 10 | ||||
-rw-r--r-- | readme.md | 7 | ||||
-rw-r--r-- | register.lua | 6 |
8 files changed, 163 insertions, 0 deletions
diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000..550811a --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,16 @@ +allow_defined_top = true + +globals = { + "mesecon", + "minetest" +} + +read_globals = { + -- Stdlib + string = {fields = {"split"}}, + table = {fields = {"copy", "getn"}}, + + -- Minetest + "vector", "ItemStack", + "dump" +} @@ -0,0 +1,49 @@ + + +-- node.mesecons.effector.action_on() wrapper +-- def = { node = "", suffix = "" } +mesecons_debug.register_action_on_toggle = function(def) + + local nodedef = minetest.registered_nodes[def.node] + + local old_action_on = nodedef and + nodedef.mesecons and + nodedef.mesecons.effector and + nodedef.mesecons.effector.action_on + + if not old_action_on then + minetest.log( + "action", + "[mesecons_debug] invalid definition for " .. def.node + ) + return + end + + local enabled = true + + nodedef.mesecons.effector.action_on = function(...) + if enabled then + old_action_on(...) + end + end + + minetest.register_chatcommand("mesecons_debug_disable_" .. def.suffix, { + description = "disables the mesecon action_on() function for " .. def.node, + privs = {server=true}, + func = function() + enabled = false + return true, "Disabled action_on() for " .. def.node + end + }) + + minetest.register_chatcommand("mesecons_debug_enable_" .. def.suffix, { + description = "enables the mesecon action_on() function for " .. def.node, + privs = {server=true}, + func = function() + enabled = true + return true, "Enabled action_on() for " .. def.node + end + }) + + +end diff --git a/depends.txt b/depends.txt new file mode 100644 index 0000000..acaa924 --- /dev/null +++ b/depends.txt @@ -0,0 +1 @@ +mesecons diff --git a/flush.lua b/flush.lua new file mode 100644 index 0000000..1a57485 --- /dev/null +++ b/flush.lua @@ -0,0 +1,10 @@ + + +minetest.register_chatcommand("mesecons_flush", { + description = "flushes the mesecon actionqueue", + privs = {server=true}, + func = function(name) + minetest.log("warning", "Player " .. name .. " flushes mesecon actionqueue") + mesecon.queue.actions = {} + end +}) diff --git a/globalstep.lua b/globalstep.lua new file mode 100644 index 0000000..8b40669 --- /dev/null +++ b/globalstep.lua @@ -0,0 +1,64 @@ + +-- enable/disable mesecons entirely + +local enabled = true + +-- globalstep on/off +for i, globalstep in ipairs(minetest.registered_globalsteps) do + local info = minetest.callback_origins[globalstep] + if not info then + break + end + + local modname = info.mod + + if modname == "mesecons" then + local fn = function(dtime) + if enabled then + globalstep(dtime) + end + end + + minetest.callback_origins[fn] = info + minetest.registered_globalsteps[i] = fn + end +end + +-- execute() +local old_execute = mesecon.queue.execute +mesecon.queue.execute = function(...) + if enabled then + old_execute(...) + end +end + +-- add_action() +local old_add_action = mesecon.queue.add_action +mesecon.queue.add_action = function(...) + if enabled then + old_add_action(...) + end +end + + +-- mesecons commands + +minetest.register_chatcommand("mesecons_enable", { + description = "enables the mesecons globlastep", + privs = {server=true}, + func = function() + enabled = true + return true, "mesecons enabled" + end +}) + +minetest.register_chatcommand("mesecons_disable", { + description = "disables the mesecons globlastep", + privs = {server=true}, + func = function() + enabled = false + -- flush actions, while we are on it + mesecon.queue.actions = {} + return true, "mesecons disabled" + end +}) diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..390e78e --- /dev/null +++ b/init.lua @@ -0,0 +1,10 @@ +local MP = minetest.get_modpath("mesecons_debug") + +mesecons_debug = {} + +dofile(MP.."/api.lua") +dofile(MP.."/register.lua") +dofile(MP.."/flush.lua") +dofile(MP.."/globalstep.lua") + +print("[OK] mesecons_debug loaded") diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..4fa107d --- /dev/null +++ b/readme.md @@ -0,0 +1,7 @@ +Mesecons debug collection +================== + + + + +mesecons_debug_disable_ diff --git a/register.lua b/register.lua new file mode 100644 index 0000000..22c836b --- /dev/null +++ b/register.lua @@ -0,0 +1,6 @@ + + +mesecons_debug.register_action_on_toggle({ + node = "", + suffix = "" +}) |