diff --git a/init.lua b/init.lua index d891174..3f50d0b 100644 --- a/init.lua +++ b/init.lua @@ -142,6 +142,18 @@ function switch_creative:get_area_size(astore_area) return x*z end +function switch_creative:initial_stuff() + local stuff_string = minetest.settings:get("initial_stuff") or + "default:pick_steel,default:axe_steel,default:shovel_steel," .. + "default:torch 99,default:cobble 99" + local itemtable = {} + local items = stuff_string:split(",") + for _, stack in ipairs(items) do + table.insert(itemtable, ItemStack(stack)) + end + return itemtable +end + function switch_creative:save_player_privs(player) local name = player:get_player_name() local pmeta = player:get_meta() @@ -171,8 +183,20 @@ function switch_creative:restore_player_inventory(player, listname) local name = player:get_player_name() local pmeta = player:get_meta() local inv = player:get_inventory() - local player_items = inv:get_list(listname) or {} + local player_items = inv:get_list(listname) + local give_initial = false + if not player_items then + player_items = {} + give_initial = true + end inv:set_list("main", player_items) + if give_initial then + local initial_items = switch_creative:initial_stuff() + for _, stack in ipairs(initial_items) do + inv:add_item("main", stack) + end + end + end function switch_creative:player_enter_area(player, privstring)