summaryrefslogtreecommitdiff
path: root/mesecons
diff options
context:
space:
mode:
authorJeija <norrepli@gmail.com>2012-08-13 13:12:19 +0200
committerJeija <norrepli@gmail.com>2012-08-13 13:12:19 +0200
commitb197d29bef365947d0f288287ebaf09fab07cd86 (patch)
tree63e5221e5e66b5349ef0c1f083cc72211a18580d /mesecons
parent987de2c7d5df3a389234b0122406afaaa3b1fafe (diff)
downloadmesecons-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.lua7
-rw-r--r--mesecons/internal.lua20
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