summaryrefslogtreecommitdiff
path: root/mesecons/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mesecons/init.lua')
-rw-r--r--mesecons/init.lua24
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