diff options
| author | Jeija <norrepli@gmail.com> | 2013-01-09 16:56:25 +0100 | 
|---|---|---|
| committer | Jeija <norrepli@gmail.com> | 2013-01-09 16:56:25 +0100 | 
| commit | 841bc70b97e237477b0dd9ba36fd9cd307daf581 (patch) | |
| tree | 73cf0ce33fdbff460796fa776b0009dfdfc8e894 | |
| parent | 17579a6aa139d306780bcb2556b74dde667c0697 (diff) | |
Fix a bug that occured when using a receptor placed directly next to a
gate.
We need to call a changesignal even if the gate/other effector is still
connected to a power source in a way.
| -rw-r--r-- | mesecons/init.lua | 8 | ||||
| -rw-r--r-- | mesecons_gates/init.lua | 2 | 
2 files changed, 7 insertions, 3 deletions
diff --git a/mesecons/init.lua b/mesecons/init.lua index 011c96f..50ed4ca 100644 --- a/mesecons/init.lua +++ b/mesecons/init.lua @@ -94,8 +94,12 @@ function mesecon:receptor_off(pos, rules)  	for _, rule in ipairs(rules) do  		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) +		if link then +			if not mesecon:connected_to_receptor(np) then +				mesecon:turnoff(np, rulename) +			else +				mesecon:changesignal(np, minetest.env:get_node(np), rulename) +			end  		end  	end  end diff --git a/mesecons_gates/init.lua b/mesecons_gates/init.lua index f49da0b..0e3d934 100644 --- a/mesecons_gates/init.lua +++ b/mesecons_gates/init.lua @@ -99,7 +99,7 @@ gates = {  {name = "xor"  , inputnumber = 2}}  local onoff, drop, nodename, description, groups -for i, gate in ipairs(gates) do +for _, gate in ipairs(gates) do  	if gate.inputnumber == 1 then  		get_rules = gate_get_input_rules_oneinput  	elseif gate.inputnumber == 2 then  | 
