minetest.register_privilege("metatest", definition)
minetest.register_node("metatest:metatestblock",
{ description = "Block to test some meta",
drawtype = "normal",
tiles = {"default_mese_block.png"},
after_place_node = function(pos, placer, itemstack, pointed_thing)
local meta = minetest.get_meta(pos)
local player = placer:get_player_name()
meta:set_string("owner", player)
meta:set_string("infotext", ("Test meta block" ).." (owned by "..meta:get_string("owner")..")")
local metatest_formspec =
"size[8,8]" ..
"box[-0.2,-0.2;8.2,8.5;#75816b]" ..
"background[2.9,3.2;2,2;default_mese_block.png;auto_clip]" ..
"field[1,1;2,1;x;Enter x coord (xx):;]" ..
"field[3,1;2,1;y;Enter y coord (yy):;]" ..
"field[5,1;2,1;z;Enter z coord (zz):;]" ..
"button[0.7,2.5;2,2;remove;Remove Node]" ..
"button[0.7,3.5;2,2;activate;Activate]" ..
"button_exit[0.7,4.5;2,2;exit;Cancel]" ..
"button[5.7,2.5;2,2;unlock;Unlock Coords]"
meta:set_string("formspec", metatest_formspec)
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.get_meta(pos)
local name = sender:get_player_name()
---------------------------------------------------------------------------------------------------------------------------------------------
if fields and fields.activate then
if fields and fields.x and fields.y and fields.z then
if (tonumber(fields.x)) then pos.x = tonumber(fields.x)
else minetest.chat_send_player(name, "X Coordinate Invalid") end
if (tonumber(fields.y)) then pos.y = tonumber(fields.y)
else minetest.chat_send_player(name, "Y Coordinate Invalid") end
if (tonumber(fields.z)) then pos.z = tonumber(fields.z)
else minetest.chat_send_player(name, "Z Coordinate Invalid") end
end
sender:set_pos({x=pos.x, y=pos.y, z=pos.z})
end
---------------------------------------------------------------------------------------------------------------------------------------------
if fields and fields.remove then
local owner = meta:get_string( "owner" )
if owner ~= name then
minetest.chat_send_player(name, ("This Metatest Block belongs to ") ..meta:get_string("owner") ..(". You can't remove it."))
return
end
minetest.set_node(pos, {name = "air"})
sender:get_inventory():add_item("main", "metatest:metatestblock")
end
---------------------------------------------------------------------------------------------------------------------------------------------
end
}
)