aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Rudin <thomas@rudin.io>2019-10-14 20:13:35 +0200
committerThomas Rudin <thomas@rudin.io>2019-10-14 20:13:35 +0200
commit53935e81eef563986b3182c3c94f92d614d9ea27 (patch)
tree44dc0d94375b240a22d4a2f34f96fc5c6629b9bb
parent7b6d776051582176e357ca364f82143ca4818dac (diff)
downloadmesecons_debug-53935e81eef563986b3182c3c94f92d614d9ea27.tar.gz
mesecons_debug-53935e81eef563986b3182c3c94f92d614d9ea27.zip
add luac penalty
-rw-r--r--init.lua1
-rw-r--r--luacontroller.lua45
-rw-r--r--mod.conf2
3 files changed, 47 insertions, 1 deletions
diff --git a/init.lua b/init.lua
index a091174..85643fd 100644
--- a/init.lua
+++ b/init.lua
@@ -12,6 +12,7 @@ mesecons_debug = {
dofile(MP.."/privs.lua")
dofile(MP.."/flush.lua")
dofile(MP.."/overrides.lua")
+dofile(MP.."/luacontroller.lua")
dofile(MP.."/chatcommands.lua")
dofile(MP.."/hud.lua")
diff --git a/luacontroller.lua b/luacontroller.lua
new file mode 100644
index 0000000..615e4c6
--- /dev/null
+++ b/luacontroller.lua
@@ -0,0 +1,45 @@
+
+local function override_node_timer(node_name)
+ local def = minetest.registered_nodes[node_name]
+ local old_node_timer = def.on_timer
+ def.on_timer = function(pos)
+ local ctx = mesecons_debug.get_context(pos)
+ if ctx.penalty > 0 then
+ -- defer
+ local timer = minetest.get_node_timer(pos)
+ local meta = minetest.get_meta(pos)
+ local is_defered = meta:get_int("_defered") == 1
+
+ if is_defered then
+ -- already delayed
+ meta:set_int("_defered", 0)
+ return old_node_timer(pos)
+ else
+ -- start timer
+ meta:set_int("_defered", 1)
+ timer:start(ctx.penalty)
+ end
+ else
+ -- immediate
+ return old_node_timer(pos)
+ end
+ end
+end
+
+-- luaC
+local BASENAME = "mesecons_luacontroller:luacontroller"
+for a = 0, 1 do -- 0 = off 1 = on
+for b = 0, 1 do
+for c = 0, 1 do
+for d = 0, 1 do
+ local cid = tostring(d)..tostring(c)..tostring(b)..tostring(a)
+ local node_name = BASENAME..cid
+ override_node_timer(node_name)
+end
+end
+end
+end
+
+-- blinky
+override_node_timer("mesecons_blinkyplant:blinky_plant_off")
+override_node_timer("mesecons_blinkyplant:blinky_plant_on")
diff --git a/mod.conf b/mod.conf
index 105a175..060185e 100644
--- a/mod.conf
+++ b/mod.conf
@@ -1,3 +1,3 @@
name = mesecons_debug
depends = mesecons
-optional_depends = mesecons_blinkyplant, pipeworks, technic
+optional_depends = mesecons_blinkyplant, mesecons_luacontroller, pipeworks, technic