Code cleanup, little bugfix (some conductors placed next to receptors didn't turn on)

This commit is contained in:
Jeija
2012-08-13 13:12:19 +02:00
parent 987de2c7d5
commit b197d29bef
11 changed files with 23 additions and 57 deletions

View File

@ -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",

View File

@ -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