From 2862544a75b64cdc3c8f64168a747ea9ef7bc83f Mon Sep 17 00:00:00 2001 From: Jude Melton-Houghton Date: Sun, 20 Nov 2022 17:10:04 -0500 Subject: [PATCH] Fix mvps receptor_off issue --- mesecons/init.lua | 1 - mesecons/internal.lua | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/mesecons/init.lua b/mesecons/init.lua index 83e611b..c11e480 100644 --- a/mesecons/init.lua +++ b/mesecons/init.lua @@ -99,7 +99,6 @@ mesecon.queue:add_function("receptor_off", function (pos, rules) local rulenames = mesecon.rules_link_rule_all(pos, rule) for _, rulename in ipairs(rulenames) do mesecon.vm_begin() - mesecon.changesignal(np, minetest.get_node(np), rulename, mesecon.state.off, 2) -- Turnoff returns true if turnoff process was successful, no onstate receptor -- was found along the way. Commit changes that were made in voxelmanip. If turnoff diff --git a/mesecons/internal.lua b/mesecons/internal.lua index 6f52b44..93d3cfd 100644 --- a/mesecons/internal.lua +++ b/mesecons/internal.lua @@ -542,9 +542,11 @@ function mesecon.turnoff(pos, link) end for _, sig in ipairs(signals) do - mesecon.changesignal(sig.pos, sig.node, sig.link, mesecon.state.off, sig.depth) - if mesecon.is_effector_on(sig.node.name) and not mesecon.is_powered(sig.pos) then - mesecon.deactivate(sig.pos, sig.node, sig.link, sig.depth) + if sig.depth > 1 or not mesecon.is_powered(sig.pos, sig.link) then + mesecon.changesignal(sig.pos, sig.node, sig.link, mesecon.state.off, sig.depth) + if mesecon.is_effector_on(sig.node.name) and not mesecon.is_powered(sig.pos) then + mesecon.deactivate(sig.pos, sig.node, sig.link, sig.depth) + end end end