Code opaque block redstone power rule (part 1)
This commit is contained in:
parent
2d5b519830
commit
1522c875ae
3 changed files with 64 additions and 29 deletions
|
@ -50,6 +50,23 @@ mesecon.on_placenode = function(pos, node)
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
if minetest.get_item_group(node.name, "opaque") == 1 then
|
||||
local neighbors = mesecon.mcl_get_neighbors(pos)
|
||||
local is_powered = mesecon.is_powered(pos)
|
||||
if is_powered then
|
||||
for n=1, #neighbors do
|
||||
local npos = neighbors[n].pos
|
||||
local nnode = minetest.get_node(npos)
|
||||
if mesecon.is_conductor_off(nnode) then
|
||||
mesecon.receptor_on(npos, mesecon.conductor_get_rules(nnode))
|
||||
elseif mesecon.is_effector_off(nnode.name) then
|
||||
mesecon.changesignal(npos, nnode, neighbors[n].link, mesecon.state.on, 1)
|
||||
mesecon.activate(npos, nnode, neighbors[n].link, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
mesecon.on_dignode = function(pos, node)
|
||||
|
@ -58,7 +75,21 @@ mesecon.on_dignode = function(pos, node)
|
|||
elseif mesecon.is_receptor_on(node.name) then
|
||||
mesecon.receptor_off(pos, mesecon.receptor_get_rules(node))
|
||||
end
|
||||
|
||||
if minetest.get_item_group(node.name, "opaque") == 1 then
|
||||
local sources = mesecon.is_powered(pos)
|
||||
local neighbors = mesecon.mcl_get_neighbors(pos)
|
||||
for n=1, #neighbors do
|
||||
local npos = neighbors[n].pos
|
||||
local nlink = neighbors[n].link
|
||||
local nnode = minetest.get_node(npos)
|
||||
if mesecon.is_conductor_on(nnode) and not mesecon.is_powered(npos) then
|
||||
mesecon.receptor_off(npos, mesecon.conductor_get_rules(nnode))
|
||||
elseif mesecon.is_effector_on(nnode.name) and not mesecon.is_powered(npos) then
|
||||
mesecon.changesignal(npos, nnode, nlink, mesecon.state.off, 1)
|
||||
mesecon.deactivate(npos, nnode, nlink, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
mesecon.execute_autoconnect_hooks_queue(pos, node)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue