From 76a321c254bafc04aadd6ea53f09f785b8ef6b56 Mon Sep 17 00:00:00 2001 From: AndrejIT Date: Sun, 2 Oct 2016 17:52:16 +0300 Subject: [PATCH] Ability to create named teleporter --- init.lua | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index f5fc265..cf94d37 100644 --- a/init.lua +++ b/init.lua @@ -103,7 +103,12 @@ teleports.set_formspec = function(pos) local buttons = ""; for i, EachTeleport in ipairs( teleports:find_nearby(pos, 5) ) do - buttons = buttons.."button_exit[3,"..(i)..";2,0.5;tp"..i..";GO>"..EachTeleport.pos.x..","..EachTeleport.pos.y..","..EachTeleport.pos.z.."]"; + if EachTeleport["name"] then + buttons = buttons.."button_exit[3,"..(i)..";4,0.5;tp"..i..";GO>"..minetest.formspec_escape(EachTeleport.name).."]"; + else + buttons = buttons.."button_exit[3,"..(i)..";4,0.5;tp"..i..";GO>"..EachTeleport.pos.x..","..EachTeleport.pos.y..","..EachTeleport.pos.z.."]"; + end + end meta:set_string("formspec", "size[8,10;]" @@ -176,7 +181,15 @@ minetest.register_node("teleports:teleport", { local initialcharge = {name="default:mossycobble", count=30, wear=0, metadata=""} inv:add_item("price", initialcharge) teleports.set_formspec(pos) - table.insert(teleports.teleports, {pos=vector.round(pos)} ) + local sign_pos = minetest.find_node_near(pos, 1, "default:sign_wall_wood") + if sign_pos then + local sign_meta = minetest.env:get_meta(sign_pos) + local sign_text = sign_meta:get_string("text") + local secret_name = sign_text:sub(0, 16) + table.insert(teleports.teleports, {pos=vector.round(pos), name=secret_name}) + else + table.insert(teleports.teleports, {pos=vector.round(pos)}) + end teleports:save() end end,