If context is nil, it is either found or created.
* sfinv.get_formspec(player, context) - builds current page's formspec
* sfinv.get_nav_fs(player, context, nav, current_idx) - see above
+* sfinv.get_homepage_name(player) - get the page name of the first page to show to a player
* sfinv.make_formspec(player, context, content, show_inv, size) - adds a theme to a formspec
* show_inv, defaults to false. Whether to show the player's main inventory
* size, defaults to `size[8,8.6]` if not specified
* pages - table of pages[pagename] = def
* pages_unordered - array table of pages in order of addition (used to build navigation tabs).
-* homepage_name - name of default page
* contexts - contexts[playername] = player_context
* enabled - set to false to disable. Good for inventory rehaul mods like unified inventory
creative.register_tab("nodes", "Nodes", minetest.registered_nodes)
creative.register_tab("tools", "Tools", minetest.registered_tools)
creative.register_tab("craftitems", "Items", minetest.registered_craftitems)
+
+local old_homepage_name = sfinv.get_homepage_name
+function sfinv.get_homepage_name(player)
+ if minetest.setting_getbool("creative_mode") then
+ return "creative:all"
+ else
+ return old_homepage_name(player)
+ end
+end
sfinv = {
pages = {},
pages_unordered = {},
- homepage_name = "sfinv:crafting",
contexts = {},
enabled = true
}
return table.concat(tmp, "")
end
+function sfinv.get_homepage_name(player)
+ return "sfinv:crafting"
+end
+
function sfinv.get_formspec(player, context)
-- Generate navigation tabs
local nav = {}
return page:get(player, context)
else
local old_page = context.page
- context.page = sfinv.homepage_name
+ context.page = sfinv.get_homepage_name(player)
assert(sfinv.pages[context.page], "[sfinv] Invalid homepage")
minetest.log("warning", "[sfinv] Couldn't find " .. dump(old_page) .. " so using switching to homepage")
return sfinv.get_formspec(player, context)
context = sfinv.contexts[name]
if not context then
context = {
- page = sfinv.homepage_name
+ page = sfinv.get_homepage_name(player)
}
sfinv.contexts[name] = context
end