diff options
Diffstat (limited to 'mesecons/init.lua')
-rw-r--r-- | mesecons/init.lua | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/mesecons/init.lua b/mesecons/init.lua index aa3f001..f53a5bf 100644 --- a/mesecons/init.lua +++ b/mesecons/init.lua @@ -22,14 +22,14 @@ -- { -- state = mesecon.state.on/off -- rules = rules/get_rules --- } +-- }, -- effector = -- { -- action_on = function -- action_off = function -- action_change = function -- rules = rules/get_rules --- } +-- }, -- conductor = -- { -- state = mesecon.state.on/off @@ -79,12 +79,10 @@ function mesecon:receptor_on(pos, rules) rules = rules or mesecon.rules.default for _, rule in ipairs(rules) do - local np = { - x = pos.x + rule.x, - y = pos.y + rule.y, - z = pos.z + rule.z} - if mesecon:rules_link(pos, np, rules) then - mesecon:turnon(np, pos) + local np = mesecon:addPosRule(pos, rule) + local link, rulename = mesecon:rules_link(pos, np, rules) + if link then + mesecon:turnon(np, rulename) end end end @@ -93,12 +91,10 @@ function mesecon:receptor_off(pos, rules) rules = rules or mesecon.rules.default for _, rule in ipairs(rules) do - local np = { - x = pos.x + rule.x, - y = pos.y + rule.y, - z = pos.z + rule.z} - if mesecon:rules_link(pos, np, rules) and not mesecon:connected_to_pw_src(np) then - mesecon:turnoff(np, pos) + local np = mesecon:addPosRule(pos, rule) + local link, rulename = mesecon:rules_link(pos, np, rules) + if link and not mesecon:connected_to_receptor(np) then + mesecon:turnoff(np, rulename) end end end |