diff options
| -rw-r--r-- | mesecons/services.lua | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/mesecons/services.lua b/mesecons/services.lua index 469ab95..215fb31 100644 --- a/mesecons/services.lua +++ b/mesecons/services.lua @@ -28,11 +28,13 @@ mesecon.on_placenode = function (pos, node)  	-- Effectors: Send changesignal and activate or deactivate  	if mesecon.is_effector(node.name) then  		local powered_rules = {} +		local unpowered_rules = {}  		-- for each input rule, check if powered  		for _, r in ipairs(mesecon.effector_get_rules(node)) do  			local powered = mesecon.is_powered(pos, r) -			if powered then table.insert(powered_rules, r) end +			if powered then table.insert(powered_rules, r) +			else table.insert(unpowered_rules, r) end  			local state = powered and mesecon.state.on or mesecon.state.off  			mesecon.changesignal(pos, node, r, state, 1) @@ -42,6 +44,10 @@ mesecon.on_placenode = function (pos, node)  			for _, r in ipairs(powered_rules) do  				mesecon.activate(pos, node, r, 1)  			end +		else +			for _, r in ipairs(unpowered_rules) do +				mesecon.deactivate(pos, node, r, 1) +			end  		end  	end  end | 
