diff options
author | Jeija <norrepli@gmail.com> | 2012-08-13 13:12:19 +0200 |
---|---|---|
committer | Jeija <norrepli@gmail.com> | 2012-08-13 13:12:19 +0200 |
commit | b197d29bef365947d0f288287ebaf09fab07cd86 (patch) | |
tree | 63e5221e5e66b5349ef0c1f083cc72211a18580d /mesecons | |
parent | 987de2c7d5df3a389234b0122406afaaa3b1fafe (diff) | |
download | mesecons-b197d29bef365947d0f288287ebaf09fab07cd86.tar mesecons-b197d29bef365947d0f288287ebaf09fab07cd86.tar.gz mesecons-b197d29bef365947d0f288287ebaf09fab07cd86.tar.bz2 mesecons-b197d29bef365947d0f288287ebaf09fab07cd86.tar.xz mesecons-b197d29bef365947d0f288287ebaf09fab07cd86.zip |
Code cleanup, little bugfix (some conductors placed next to receptors didn't turn on)
Diffstat (limited to 'mesecons')
-rw-r--r-- | mesecons/init.lua | 7 | ||||
-rw-r--r-- | mesecons/internal.lua | 20 |
2 files changed, 15 insertions, 12 deletions
diff --git a/mesecons/init.lua b/mesecons/init.lua index 9ecd007..48209d7 100644 --- a/mesecons/init.lua +++ b/mesecons/init.lua @@ -191,14 +191,15 @@ function mesecon:register_on_signal_change(action) mesecon.actions_change[i]=action end -function mesecon:register_conductor (onstate, offstate) +function mesecon:register_conductor (onstate, offstate, rules) local i=0 while mesecon.conductors[i]~=nil do i=i+1 end mesecon.conductors[i]={} - mesecon.conductors[i].on=onstate - mesecon.conductors[i].off=offstate + mesecon.conductors[i].on = onstate + mesecon.conductors[i].off = offstate + mesecon.conductors[i].rules = offstate end mesecon:add_rules("default", diff --git a/mesecons/internal.lua b/mesecons/internal.lua index d47c25c..68bc6b5 100644 --- a/mesecons/internal.lua +++ b/mesecons/internal.lua @@ -325,14 +325,15 @@ function mesecon:is_powered_by_receptor(pos) local i = 1 local j = 1 local k = 1 + local rules local pos_checked = false while mesecon.rules[i]~=nil do - j=1 + local j=1 while mesecon.rules[i].rules[j]~=nil do rcpt_pos = { - x = pos.x-mesecon.rules[i].rules[j].x, - y = pos.y-mesecon.rules[i].rules[j].y, + x = pos.x-mesecon.rules[i].rules[j].x, + y = pos.y-mesecon.rules[i].rules[j].y, z = pos.z-mesecon.rules[i].rules[j].z} k = 1 @@ -350,14 +351,15 @@ function mesecon:is_powered_by_receptor(pos) if mesecon:is_receptor_node(rcpt.name) then rules = mesecon:receptor_get_rules(rcpt) + j = 1 while rules[j] ~= nil do - if pos.x + rules[j].x == rcpt_pos.x - and pos.y + rules[j].y == rcpt_pos.y - and pos.z + rules[j].z == rcpt_pos.z then - return true + if rcpt_pos.x + rules[j].x == pos.x + and rcpt_pos.y + rules[j].y == pos.y + and rcpt_pos.z + rules[j].z == pos.z then + return true + end + j=j+1 end - j=j+1 - end end end j=j+1 |