From 63998fd7e720f836463a7f6202a504435cd934cd Mon Sep 17 00:00:00 2001
From: Novatux <nathanael.courant@laposte.net>
Date: Sun, 8 Jun 2014 19:02:15 +0200
Subject: Localize a few variables, add "GET" command to node detector.

---
 mesecons_detector/init.lua | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

(limited to 'mesecons_detector')

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", {
-- 
cgit v1.2.3