Show the contents of the locked chest only to the owner
authorPilzAdam <PilzAdam@gmx.de>
Fri, 4 Jan 2013 15:59:43 +0000 (16:59 +0100)
committerPilzAdam <PilzAdam@gmx.de>
Fri, 4 Jan 2013 20:25:37 +0000 (21:25 +0100)
mods/default/init.lua

index d5a329322cfec3ce031b30a383c5b8290b763876..39437813dffbaab6f43f632dd9076d0dfe41da7c 100644 (file)
@@ -1281,10 +1281,6 @@ minetest.register_node("default:chest_locked", {
        end,
        on_construct = function(pos)
                local meta = minetest.env:get_meta(pos)
-               meta:set_string("formspec",
-                               "size[8,9]"..
-                               "list[current_name;main;0,0;8,4;]"..
-                               "list[current_player;main;0,5;8,4;]")
                meta:set_string("infotext", "Locked Chest")
                meta:set_string("owner", "")
                local inv = meta:get_inventory()
@@ -1340,6 +1336,16 @@ minetest.register_node("default:chest_locked", {
                minetest.log("action", player:get_player_name()..
                                " takes stuff from locked chest at "..minetest.pos_to_string(pos))
        end,
+       on_rightclick = function(pos, node, clicker)
+               local meta = minetest.env:get_meta(pos)
+               if has_locked_chest_privilege(meta, clicker) then
+                       local pos = pos.x .. "," .. pos.y .. "," ..pos.z
+                       minetest.show_formspec(clicker:get_player_name(),
+                               "size[8,9]"..
+                               "list[nodemeta:".. pos .. ";main;0,0;8,4;]"..
+                               "list[current_player;main;0,5;8,4;]")
+               end
+       end,
 })
 
 default.furnace_inactive_formspec =