From 7f3b8f28c57a1a3f9210b232505bb6df71b339fe Mon Sep 17 00:00:00 2001 From: Zheyu Shen Date: Sat, 14 Jun 2014 13:36:54 +0800 Subject: [PATCH 1/2] Don't create bones if the player's inventory is empty --- mods/bones/init.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mods/bones/init.lua b/mods/bones/init.lua index 72849c43..3cb3ac0b 100644 --- a/mods/bones/init.lua +++ b/mods/bones/init.lua @@ -82,6 +82,12 @@ minetest.register_on_dieplayer(function(player) return end + local player_inv = player:get_inventory() + if player_inv:is_empty("main") and + player_inv:is_empty("craft") then + return + end + local pos = player:getpos() pos.x = math.floor(pos.x+0.5) pos.y = math.floor(pos.y+0.5) @@ -91,8 +97,6 @@ minetest.register_on_dieplayer(function(player) local nn = minetest.get_node(pos).name if minetest.registered_nodes[nn].can_dig and not minetest.registered_nodes[nn].can_dig(pos, player) then - local player_inv = player:get_inventory() - for i=1,player_inv:get_size("main") do player_inv:set_stack("main", i, nil) end @@ -107,7 +111,6 @@ minetest.register_on_dieplayer(function(player) local meta = minetest.get_meta(pos) local inv = meta:get_inventory() - local player_inv = player:get_inventory() inv:set_size("main", 8*4) local empty_list = inv:get_list("main") From 71e384783f6cc3b62b8c974adaef4ae90976b272 Mon Sep 17 00:00:00 2001 From: Zheyu Shen Date: Sat, 21 Jun 2014 05:25:39 +0000 Subject: [PATCH 2/2] Remove the bones if emptied --- mods/bones/init.lua | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mods/bones/init.lua b/mods/bones/init.lua index 3cb3ac0b..30ab06cd 100644 --- a/mods/bones/init.lua +++ b/mods/bones/init.lua @@ -51,10 +51,8 @@ minetest.register_node("bones:bones", { on_metadata_inventory_take = function(pos, listname, index, stack, player) local meta = minetest.get_meta(pos) - if meta:get_string("owner") ~= "" and meta:get_inventory():is_empty("main") then - meta:set_string("infotext", meta:get_string("owner").."'s old bones") - meta:set_string("formspec", "") - meta:set_string("owner", "") + if meta:get_inventory():is_empty("main") then + minetest.remove_node(pos) end end,