summaryrefslogtreecommitdiff
path: root/mesecons_detector
diff options
context:
space:
mode:
authorNovatux <nathanael.courant@laposte.net>2014-06-08 19:02:15 +0200
committerNovatux <nathanael.courant@laposte.net>2014-06-08 19:02:15 +0200
commit63998fd7e720f836463a7f6202a504435cd934cd (patch)
tree2a580ea721bf7e074db286d2e54d2aeec90fa79d /mesecons_detector
parent99cb021f15358e03c797b79fdcf58a7a364a5ed0 (diff)
downloadmesecons-63998fd7e720f836463a7f6202a504435cd934cd.tar
mesecons-63998fd7e720f836463a7f6202a504435cd934cd.tar.gz
mesecons-63998fd7e720f836463a7f6202a504435cd934cd.tar.bz2
mesecons-63998fd7e720f836463a7f6202a504435cd934cd.tar.xz
mesecons-63998fd7e720f836463a7f6202a504435cd934cd.zip
Localize a few variables, add "GET" command to node detector.
Diffstat (limited to 'mesecons_detector')
-rw-r--r--mesecons_detector/init.lua19
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", {