diff options
| author | Wuzzy <almikes@aol.com> | 2016-08-04 02:19:30 +0200 | 
|---|---|---|
| committer | Wuzzy <almikes@aol.com> | 2016-08-04 02:19:30 +0200 | 
| commit | 98d093ca1bb8fd010596ad49dac5d7485ac6be68 (patch) | |
| tree | ae7a4c055a8ff0066cbc16a7a51e3c602b030f4b | |
| parent | 10e4e9157b8951dc94614fcd369661efd2005bab (diff) | |
Error message for when no categories exist
| -rw-r--r-- | init.lua | 53 | 
1 files changed, 40 insertions, 13 deletions
| @@ -68,12 +68,20 @@ end  -- Opens the main documentation formspec for the player  function doc.show_doc(playername) +	if doc.get_category_count() <= 0 then +		minetest.show_formspec(playername, "doc:error_no_categories", doc.formspec_error_no_categories()) +		return +	end  	local formspec = doc.formspec_core()..doc.formspec_main()  	minetest.show_formspec(playername, "doc:main", formspec)  end  -- Opens the documentation formspec for the player at the specified category  function doc.show_category(playername, category_id) +	if doc.get_category_count() <= 0 then +		minetest.show_formspec(playername, "doc:error_no_categories", doc.formspec_error_no_categories()) +		return +	end  	doc.data.players[playername].catsel = nil  	doc.data.players[playername].category = category_id  	doc.data.players[playername].entry = nil @@ -83,6 +91,10 @@ end  -- Opens the documentation formspec for the player showing the specified entry in a category  function doc.show_entry(playername, category_id, entry_id) +	if doc.get_category_count() <= 0 then +		minetest.show_formspec(playername, "doc:error_no_categories", doc.formspec_error_no_categories()) +		return +	end  	doc.data.players[playername].catsel = nil  	doc.data.players[playername].category = category_id  	doc.data.players[playername].entry = entry_id @@ -167,26 +179,41 @@ function doc.formspec_core(tab)  end  function doc.formspec_main() -	local y = 1  	local formstring = "label[0,0;This is the Documentation System, Version "..doc.VERSION.STRING..".\n" -	formstring = formstring .. "Please select a category you wish to learn more about:]" - -	for c=1,#doc.data.category_order do -		local id = doc.data.category_order[c] -		local data = doc.data.categories[id] -		-- Category buton -		local button = "button[0,"..y..";3,1;doc_button_category_"..id..";"..minetest.formspec_escape(data.def.name).."]" -		local tooltip = "" -		-- Optional description -		if data.def.description ~= nil then +	if doc.get_category_count() >= 1 then +		formstring = formstring .. "Please select a category you wish to learn more about:]" +		local y = 1 +		for c=1,#doc.data.category_order do +			local id = doc.data.category_order[c] +			local data = doc.data.categories[id] +			-- Category buton +			local button = "button[0,"..y..";3,1;doc_button_category_"..id..";"..minetest.formspec_escape(data.def.name).."]" +			local tooltip = "" +			-- Optional description +			if data.def.description ~= nil then  			tooltip = "tooltip[doc_button_category_"..id..";"..minetest.formspec_escape(data.def.description).."]" +			end +			formstring = formstring .. button .. tooltip +			y = y + 1  		end -		formstring = formstring .. button .. tooltip -		y = y + 1  	end  	return formstring  end +function doc.formspec_error_no_categories() +	local formstring = "size[8,6]textarea[0.25,0;8,6;;" +	formstring = formstring .. minetest.formspec_escape( +[=[This is the Documentation System, Version ]=]..doc.VERSION.STRING..[=[. + +ERROR: No help available. + +No categories have been registered, but the Documentation System is useless without them. +The Documentation System does not come with help contents on its own, it needs additional mods to add help content. +Please make sure such mods are enabled on this server, and try again.]=]) +	formstring = formstring .. ";]button_exit[3,5;2,1;okay;OK]" +	return formstring +end +  function doc.generate_entry_list(cid, playername)  	local formstring  	if doc.data.players[playername].entry_textlist == nil | 
