added key position in the description and better form protection

master
Juraj Vajda 2018-01-25 20:59:37 -05:00
parent bca466a3c4
commit 477bdd574f
1 changed files with 10 additions and 7 deletions

17
api.lua
View File

@ -214,10 +214,16 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local mod_pos_pos2 = formname:split(":")
if mod_pos_pos2[1] == "telemosaic" then
local pos = minetest.string_to_pos(mod_pos_pos2[2])
if minetest.is_protected(pos, player:get_player_name()) then
minetest.chat_send_player(player:get_player_name(), "You cannot use protected beacon!")
return
end
-- beacon name change
if fields.bname then
local bname = fields.bname
local pos = minetest.string_to_pos(mod_pos_pos2[2])
local meta = minetest.get_meta(pos)
local pos2 = minetest.string_to_pos(mod_pos_pos2[3])
@ -241,11 +247,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
local range = meta:get_int("range")
local pos2 = minetest.string_to_pos(mod_pos_pos2[3])
if minetest.is_protected(pos, player:get_player_name()) then
minetest.chat_send_player(player:get_player_name(), "You cannot teleport from protected beacon!")
return
end
if pos2 then
if math.floor(vector.distance(pos, pos2)) <= range then
for i = 1, 2 do
@ -438,10 +439,12 @@ function telemosaic.beacon_rightclick(pos, node, clicker, itemstack, pointed_thi
-- departure
if stackname == "default:mese_crystal_fragment" and itemstack:get_count() == 1 then
itemstack:replace("telemosaic:key")
local item_description = minetest.registered_items[itemstack:get_name()]["description"]
-- remember departure position in the item meta
meta_stack:set_string("dep_pos", minetest.pos_to_string(pos))
meta_stack:set_string("description", item_description.."\nsaved position: "..minetest.pos_to_string(pos))
meta:set_string("infotext", description.."\nowner: "..ownername.."\nrange: "..range.." blocks\nright-click for more info")