diff options
Diffstat (limited to 'mesecons/services.lua')
-rw-r--r-- | mesecons/services.lua | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/mesecons/services.lua b/mesecons/services.lua index 27900b1..a3aab43 100644 --- a/mesecons/services.lua +++ b/mesecons/services.lua @@ -1,28 +1,28 @@ -minetest.register_on_dignode( - function(pos, oldnode, digger) - if mesecon:is_conductor_on(oldnode.name) then - mesecon:receptor_off(pos) - end - - if mesecon:is_receptor_node(oldnode.name) then - mesecon:receptor_off(pos, mesecon:receptor_get_rules(oldnode)) +mesecon.on_placenode = function (pos, node) + if mesecon:is_receptor_on(node.name) then + mesecon:receptor_on(pos, mesecon:receptor_get_rules(node)) + elseif mesecon:is_powered(pos) then + if mesecon:is_conductor(node.name) then + mesecon:turnon (pos) + mesecon:receptor_on (pos, mesecon:conductor_get_rules(node)) + else + mesecon:changesignal(pos, node) + mesecon:activate(pos, node) end + elseif mesecon:is_conductor_on(node.name) then + mesecon:swap_node(pos, mesecon:get_conductor_off(node.name)) + elseif mesecon:is_effector_on (node.name) then + mesecon:deactivate(pos, node) end -) - -minetest.register_on_placenode( - function (pos, node) - if mesecon:is_receptor_node(node.name) then - mesecon:receptor_on(pos, mesecon:receptor_get_rules(node)) - end +end - if mesecon:is_powered(pos) then - if mesecon:is_conductor_off(node.name) then - mesecon:turnon(pos, node) - else - mesecon:changesignal(pos, node) - mesecon:activate(pos, node) - end - end +mesecon.on_dignode = function (pos, node) + if mesecon:is_conductor_on(node.name) then + mesecon:receptor_off(pos, mesecon:conductor_get_rules(node)) + elseif mesecon:is_receptor_on(node.name) then + mesecon:receptor_off(pos, mesecon:receptor_get_rules(node)) end -) +end + +minetest.register_on_placenode(mesecon.on_placenode) +minetest.register_on_dignode(mesecon.on_dignode) |