summaryrefslogtreecommitdiff
path: root/technic_chests/register.lua
diff options
context:
space:
mode:
authorVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-14 00:04:17 -0400
committerVanessa Ezekowitz <vanessaezekowitz@gmail.com>2017-03-14 00:04:17 -0400
commit6885943d0491db83268f8bb4743bfd82ed725ea2 (patch)
tree4be2bba618fe67d1b99a99f9aedf1a0f397a9c9c /technic_chests/register.lua
parenta46f07cbfbd9ae59b7b1cc2fc32f68c39ae34de0 (diff)
downloaddreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar.gz
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar.bz2
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.tar.xz
dreambuilder_modpack-6885943d0491db83268f8bb4743bfd82ed725ea2.zip
update coloredwood, digilines, technic, gloopblocks, homedecor, mesecons,
pipeworks, player_textures, signs_lib, unifieddyes, and worldedit
Diffstat (limited to 'technic_chests/register.lua')
-rw-r--r--technic_chests/register.lua35
1 files changed, 34 insertions, 1 deletions
diff --git a/technic_chests/register.lua b/technic_chests/register.lua
index 25e4cde..6a5b8db 100644
--- a/technic_chests/register.lua
+++ b/technic_chests/register.lua
@@ -263,12 +263,45 @@ function technic.chests:definition(name, data)
on_receive_fields = get_receive_fields(name, data),
on_metadata_inventory_move = self.on_inv_move,
on_metadata_inventory_put = self.on_inv_put,
- on_metadata_inventory_take = self.on_inv_take,
+ on_metadata_inventory_take = self.on_inv_take,
+ on_blast = function(pos)
+ local drops = {}
+ default.get_inventory_drops(pos, "main", drops)
+ drops[#drops+1] = "technic:"..name:lower()..(data.locked and "_locked" or "").."_chest"
+ minetest.remove_node(pos)
+ return drops
+ end,
}
if data.locked then
def.allow_metadata_inventory_move = self.inv_move
def.allow_metadata_inventory_put = self.inv_put
def.allow_metadata_inventory_take = self.inv_take
+ def.on_blast = function() end
+ def.can_dig = function(pos,player)
+ local meta = minetest.get_meta(pos);
+ local inv = meta:get_inventory()
+ return inv:is_empty("main") and default.can_interact_with_node(player, pos)
+ end
+ def.on_skeleton_key_use = function(pos, player, newsecret)
+ local meta = minetest.get_meta(pos)
+ local owner = meta:get_string("owner")
+ local name = player:get_player_name()
+
+ -- verify placer is owner of lockable chest
+ if owner ~= name then
+ minetest.record_protection_violation(pos, name)
+ minetest.chat_send_player(name, "You do not own this chest.")
+ return nil
+ end
+
+ local secret = meta:get_string("key_lock_secret")
+ if secret == "" then
+ secret = newsecret
+ meta:set_string("key_lock_secret", secret)
+ end
+
+ return secret, "a locked chest", owner
+ end
end
return def
end