Doors: Fix potential crashes, code improvements
[oweals/minetest_game.git] / mods / give_initial_stuff / init.lua
1 local stuff_string = minetest.setting_get("initial_stuff") or
2                 "default:pick_steel,default:axe_steel,default:shovel_steel," ..
3                 "default:torch 99,default:cobble 99"
4
5 give_initial_stuff = {
6         items = {}
7 }
8
9 function give_initial_stuff.give(player)
10         minetest.log("action",
11                         "Giving initial stuff to player " .. player:get_player_name())
12         local inv = player:get_inventory()
13         for _, stack in ipairs(give_initial_stuff.items) do
14                 inv:add_item("main", stack)
15         end
16 end
17
18 function give_initial_stuff.add(stack)
19         give_initial_stuff.items[#give_initial_stuff.items + 1] = ItemStack(stack)
20 end
21
22 function give_initial_stuff.clear()
23         give_initial_stuff.items = {}
24 end
25
26 function give_initial_stuff.add_from_csv(str)
27         local items = str:split(",")
28         for _, itemname in ipairs(items) do
29                 give_initial_stuff.add(itemname)
30         end
31 end
32
33 function give_initial_stuff.set_list(list)
34         give_initial_stuff.items = list
35 end
36
37 function give_initial_stuff.get_list()
38         return give_initial_stuff.items
39 end
40
41 give_initial_stuff.add_from_csv(stuff_string)
42 if minetest.setting_getbool("give_initial_stuff") then
43         minetest.register_on_newplayer(give_initial_stuff.give)
44 end