summaryrefslogtreecommitdiff
path: root/mesecons/init.lua
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2012-08-16 21:24:06 +0200
committerJeija <norrepli@gmail.com>2012-08-16 21:24:06 +0200
commit78fdedc880f33f740d7dbaee3c23ca34c0b397da (patch)
tree1e3cd1890991ab0c2dc6de4461a087b6f651d43c /mesecons/init.lua
parente74bb1ce75c7f83b5a40e866a1ecf8fbc6478c66 (diff)
downloadmesecons-78fdedc880f33f740d7dbaee3c23ca34c0b397da.tar
mesecons-78fdedc880f33f740d7dbaee3c23ca34c0b397da.tar.gz
mesecons-78fdedc880f33f740d7dbaee3c23ca34c0b397da.tar.bz2
mesecons-78fdedc880f33f740d7dbaee3c23ca34c0b397da.tar.xz
mesecons-78fdedc880f33f740d7dbaee3c23ca34c0b397da.zip
Add conductor rules, add demo isolated mesecons to proof that it works
Diffstat (limited to 'mesecons/init.lua')
-rw-r--r--mesecons/init.lua23
1 files changed, 14 insertions, 9 deletions
diff --git a/mesecons/init.lua b/mesecons/init.lua
index 7e7456f..1d1be6d 100644
--- a/mesecons/init.lua
+++ b/mesecons/init.lua
@@ -154,7 +154,9 @@ function mesecon:receptor_on(pos, rules)
np.x = pos.x + rules[i].x
np.y = pos.y + rules[i].y
np.z = pos.z + rules[i].z
- mesecon:turnon(np, pos)
+ if mesecon:rules_link(pos, np, rules) then
+ mesecon:turnon(np, pos)
+ end
i=i+1
end
end
@@ -171,8 +173,7 @@ function mesecon:receptor_off(pos, rules)
np.x = pos.x + rules[i].x
np.y = pos.y + rules[i].y
np.z = pos.z + rules[i].z
- connected = mesecon:connected_to_pw_src(np)
- if connected == false then
+ if mesecon:rules_link(pos, np, rules) and mesecon:connected_to_pw_src(np) == false then
mesecon:turnoff(np, pos)
end
i=i+1
@@ -206,15 +207,19 @@ function mesecon:register_on_signal_change(action)
mesecon.actions_change[i]=action
end
-function mesecon:register_conductor (onstate, offstate, rules)
- local i=0
+function mesecon:register_conductor (onstate, offstate, rules, get_rules)
+ local i = 1
while mesecon.conductors[i]~=nil do
- i=i+1
+ i = i + 1
+ end
+ if rules == nil then
+ rules = mesecon:get_rules("default")
end
mesecon.conductors[i]={}
- mesecon.conductors[i].on = onstate
- mesecon.conductors[i].off = offstate
- mesecon.conductors[i].rules = offstate
+ mesecon.conductors[i].onstate = onstate
+ mesecon.conductors[i].offstate = offstate
+ mesecon.conductors[i].rules = rules
+ mesecon.conductors[i].get_rules = get_rules
end
mesecon:add_rules("default",