Destroy modules also if area is protected(using minetest.remove_node)

master^2
Lejo1 2020-05-26 18:03:56 +02:00
parent 5de15c5317
commit 1c38a8d01e
No known key found for this signature in database
GPG Key ID: 7249ED75EF7EBABC
3 changed files with 10 additions and 7 deletions

View File

@ -18,7 +18,7 @@ end
local function diode_action(pos, node, channel, msg)
if digiline_routing.overheat.heat(pos) > OVERLOAD_THRESHOLD then
digiline_routing.overheat.forget(pos)
minetest.dig_node(pos)
minetest.remove_node(pos)
minetest.add_item(pos, node.name)
return
end

View File

@ -46,9 +46,10 @@ local function filter_cleanup(pos, node)
digiline_routing.multiblock.dig2(pos, node)
end
local function filter_test(master, channel)
local function filter_test(master, channel, node)
if digiline_routing.overheat.heat(master) > OVERLOAD_THRESHOLD then
minetest.dig_node(master)
minetest.remove_node(master)
filter_cleanup(master, node)
minetest.add_item(master, "digiline_routing:filter")
return false
end
@ -56,7 +57,7 @@ local function filter_test(master, channel)
end
local function filter_in_action(pos, node, channel, msg)
if filter_test(pos, channel) then
if filter_test(pos, channel, node) then
local off = minetest.facedir_to_dir(node.param2)
local slave = vector.add(pos, off)
digiline:receptor_send(slave, filter_rules_out(node), channel, msg)
@ -66,7 +67,7 @@ end
local function filter_out_action(pos, node, channel, msg)
local off = minetest.facedir_to_dir(node.param2)
local master = vector.subtract(pos, off)
if filter_test(master, channel) then
if filter_test(master, channel, node) then
digiline:receptor_send(master, filter_rules_in(node), channel, msg)
end
end

View File

@ -27,7 +27,8 @@ end
local function splitter_in_action(pos, node, channel, msg)
if digiline_routing.overheat.heat(pos) > OVERLOAD_THRESHOLD then
minetest.dig_node(pos)
minetest.remove_node(pos)
splitter_cleanup(pos, node)
minetest.add_item(pos, "digiline_routing:splitter")
return
end
@ -40,7 +41,8 @@ local function splitter_out_action(pos, node, channel, msg)
local off = minetest.facedir_to_dir(node.param2)
local master = vector.subtract(pos, off)
if digiline_routing.overheat.heat(master) > OVERLOAD_THRESHOLD then
minetest.dig_node(master)
minetest.remove_node(master)
splitter_cleanup(master, node)
minetest.add_item(master, "digiline_routing:splitter")
return
end