This repository has been archived on 2020-05-24. You can view files and clone it, but cannot push or open issues or pull requests.
minetest-mod-sparktech/sparktool/lua/nametag.lua

53 lines
1.3 KiB
Lua

local NAME = minetest.get_current_modname()
local formspec =
"size[6,1]" ..
"real_coordinates[true]" ..
"textarea[0,0;5,1;name;Name;]" ..
"button_exit[5,0;1,1;confirm;Confirm]" ..
"bgcolor[#FC05E344;false]"
local player_pointed_pos = {}
minetest.register_craftitem(NAME .. ":nametag", {
description = "Nametag",
inventory_image = "nametag.png",
stack_max = 128,
on_place = function(itemstack, placer, pointed_thing)
-- TODO Check that nodes does not already interact with the grid
if pointed_thing["type"] == "node" then
local n = placer:get_player_name()
player_pointed_pos[n] = pointed_thing.under
minetest.show_formspec(n, NAME .. ":nametag", formspec)
end
return itemstack
end
})
minetest.register_on_player_receive_fields(function(player, form, fields)
if form ~= NAME .. ":nametag" then
return false
end
local p = player_pointed_pos[player:get_player_name()]
if p and fields.name then
local meta = minetest.get_meta(p)
meta:set_string("infotext", fields.name)
local stack = player:get_wielded_item()
stack:set_count(stack:get_count() -1)
player:set_wielded_item(stack)
return true
end
end)
minetest.register_craft({
type = "shapeless",
output = NAME .. ":nametag",
recipe = {
"farming:string", "default:paper"
}
})