minetest.register_privilege("metatest", definition)
minetest.register_node("metatest2:metatestblock",
{ description = "Block to test some meta",
drawtype = "normal",
tiles = {"default_wood.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_nopriv =
"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]" ..
"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]"
local metatest_formspec_haspriv =
"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]"
meta:set_string("formspec1", metatest_formspec_nopriv)
meta:set_string("formspec2", metatest_formspec_haspriv)
-- end,
------------------------------------------------------------------------------------------------------------------
-- on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
-- local meta = minetest.get_meta(pos)
-- local player = clicker:get_player_name()
local fs1 = meta:get_string("formspec1")
local fs2 = meta:get_string("formspec2")
if not minetest.check_player_privs(player, {metatest=true}) then
minetest.show_formspec(player, "form1", fs1)
elseif minetest.check_player_privs(player, {metatest=true}) then
minetest.show_formspec(player, "form2", fs2)
end
end,
--------------------------------------------------------------------------------------------------------------------
on_receive_fields = function(pos, formname, fields, sender)
-- if not minetest.check_player_privs(player, {metatest=true}) then
-- if formname = ("form1") then return end
-- else if formname = ("form2") then
local meta = minetest.get_meta(pos)
local name = sender:get_player_name()
local owner = meta:get_string("owner")
local fs1 = meta:get_string("formspec1")
local fs2 = meta:get_string("formspec2")
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
}
)