diff options
| -rw-r--r-- | mesecons_detector/init.lua | 19 | 
1 files changed, 14 insertions, 5 deletions
| diff --git a/mesecons_detector/init.lua b/mesecons_detector/init.lua index b4ea3f1..8d2f53c 100644 --- a/mesecons_detector/init.lua +++ b/mesecons_detector/init.lua @@ -1,3 +1,5 @@ +local GET_COMMAND = "GET" +  -- Object detector  -- Detects players in a certain radius  -- The radius can be specified in mesecons/settings.lua @@ -33,7 +35,7 @@ local object_detector_scan = function (pos)  end  -- set player name when receiving a digiline signal on a specific channel -object_detector_digiline = { +local object_detector_digiline = {  	effector = {  		action = function (pos, node, channel, msg)  			local meta = minetest.get_meta(pos) @@ -140,17 +142,24 @@ local node_detector_scan = function (pos)  end  -- set player name when receiving a digiline signal on a specific channel -node_detector_digiline = { +local node_detector_digiline = {  	effector = {  		action = function (pos, node, channel, msg)  			local meta = minetest.get_meta(pos)  			local active_channel = meta:get_string("digiline_channel")  			if channel == active_channel then -				meta:set_string("scanname", msg) -				node_detector_make_formspec(pos) +				if msg == GET_COMMAND then +					local frontpos = vector.subtract(pos, minetest.facedir_to_dir(node.param2)) +					local name = minetest.get_node(frontpos).name +					digiline:receptor_send(pos, digiline.rules.default, channel, name) +				else +					meta:set_string("scanname", msg) +					node_detector_make_formspec(pos) +				end  			end  		end, -	} +	}, +	receptor = {}  }  minetest.register_node("mesecons_detector:node_detector_off", { | 
