Update init.lua

This commit is contained in:
Josh Mars
2017-03-14 12:34:42 -04:00
committed by GitHub
parent 8480c08827
commit 126285fb65

View File

@ -6,11 +6,11 @@ local GET_COMMAND = "GET"
local function object_detector_make_formspec(pos) local function object_detector_make_formspec(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("formspec", "size[9,2.5]" .. meta:set_string("formspec", "size[9,2.5]" ..
"field[0.3, 0;9,2;scanname;Name of player to scan for (empty for any):;${scanname}]".. "field[0.3, 0;9,2;scanname;Name of player to scan for (empty for any):;${scanname}]"..
"field[0.3,1.5;4,2;digiline_channel;Digiline Channel (optional):;${digiline_channel}]".. "field[0.3,1.5;4,2;digiline_channel;Digiline Channel (optional):;${digiline_channel}]"..
"button_exit[7,0.75;2,3;;Save]") "button_exit[7,0.75;2,3;;Save]")
if not meta:get_string("owner") then meta:set_string("owner", "") end if not meta:get_string("owner") then meta:set_string("owner", "") end
end end
local function after_place(pos, placer) local function after_place(pos, placer)
@ -27,11 +27,10 @@ local function object_detector_on_receive_fields(pos, formname, fields, sender)
if owner ~= "" and sender:get_player_name() ~= owner then if owner ~= "" and sender:get_player_name() ~= owner then
minetest.chat_send_player(sender:get_player_name(), "This detector is owned by "..owner.."!") minetest.chat_send_player(sender:get_player_name(), "This detector is owned by "..owner.."!")
return return
else end
meta:set_string("scanname", fields.scanname) meta:set_string("scanname", fields.scanname)
meta:set_string("digiline_channel", fields.digiline_channel) meta:set_string("digiline_channel", fields.digiline_channel)
object_detector_make_formspec(pos) object_detector_make_formspec(pos)
end
end end
-- returns true if player was found, false if not -- returns true if player was found, false if not
@ -43,10 +42,9 @@ local function object_detector_scan(pos)
local scanname = minetest.get_meta(pos):get_string("scanname") local scanname = minetest.get_meta(pos):get_string("scanname")
local sep = "," -- Begin code to split scanname into array local sep = "," -- Begin code to split scanname into array
local t={} ; i=1 local t={}
for str in string.gmatch(scanname, "([^"..sep.."]+)") do for str in string.gmatch(scanname, "([^"..sep.."]+)") do
t[i] = str:gsub("%s+", "") t[str:gsub("%s+", "")] = true
i = i + 1
end -- end split code end -- end split code
local every_player = scanname == "" local every_player = scanname == ""
for _, obj in pairs(objs) do for _, obj in pairs(objs) do
@ -54,13 +52,12 @@ local function object_detector_scan(pos)
local foundname = obj:get_player_name() local foundname = obj:get_player_name()
if foundname ~= "" then if foundname ~= "" then
for l = 1, i do for _ in pairs(t) do
if (foundname == t[l] and foundname ~= "") or (foundname ~= "" and scanname == "") then if t[foundname] then return true end
return true
end
end end
-- return true if scanning for any player or if specific playername was detected
end end
if scanname == "" then return true end -- Return true if no player name was specified
end end
return false return false
@ -190,7 +187,7 @@ local function node_detector_scan(pos)
distance = 0 distance = 0
end end
local frontname = minetest.get_node( local frontname = minetest.get_node(
vector.subtract(pos, minetest.facedir_to_dir(node.param2)) vector.subtract(pos, vector.multiply(minetest.facedir_to_dir(node.param2), distance+1))
).name ).name
local scanname = minetest.get_meta(pos):get_string("scanname") local scanname = minetest.get_meta(pos):get_string("scanname")