Hide repair recipes if disable_repair=1 is set
[MineClone/MineClone2.git] / mods / PLAYER / mcl_death_drop / init.lua
blob1b033bae4d92e33e341bdcf714535a2a1cefd585
1 minetest.register_on_dieplayer(function(player)
2 local keep = minetest.settings:get_bool("mcl_keepInventory") or false
3 if keep == false then
4 -- Drop inventory, crafting grid and armor
5 local inv = player:get_inventory()
6 local pos = player:get_pos()
7 local name, player_armor_inv, armor_armor_inv, pos = armor:get_valid_player(player, "[on_dieplayer]")
8 -- No item drop if in deep void
9 local void, void_deadly = mcl_worlds.is_in_void(pos)
10 local lists = {
11 { inv = inv, listname = "main", drop = true },
12 { inv = inv, listname = "craft", drop = true },
13 { inv = player_armor_inv, listname = "armor", drop = true },
14 { inv = armor_armor_inv, listname = "armor", drop = false },
16 for l=1,#lists do
17 local inv = lists[l].inv
18 local listname = lists[l].listname
19 local drop = lists[l].drop
20 if inv ~= nil then
21 for i, stack in ipairs(inv:get_list(listname)) do
22 local x = math.random(0, 9)/3
23 local z = math.random(0, 9)/3
24 pos.x = pos.x + x
25 pos.z = pos.z + z
26 if not void_deadly and drop then
27 minetest.add_item(pos, stack)
28 end
29 stack:clear()
30 inv:set_stack(listname, i, stack)
31 pos.x = pos.x - x
32 pos.z = pos.z - z
33 end
34 end
35 end
36 armor:set_player_armor(player)
37 armor:update_inventory(player)
38 end
39 end)