From 41eb204305e529851aad45df70a0e6b0070b7cce Mon Sep 17 00:00:00 2001 From: Wuzzy Date: Wed, 11 Mar 2015 13:30:00 +0100 Subject: First mock-up --- init.lua | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 init.lua (limited to 'init.lua') diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..f55e5c5 --- /dev/null +++ b/init.lua @@ -0,0 +1,83 @@ +doc = {} + +doc.VERSION = {} +doc.VERSION.MAJOR = 0 +doc.VERSION.MINOR = 1 +doc.VERSION.PATCH = 0 +doc.VERSION.STRING = "0.1.0" + + +doc.data = {} +doc.data.categories = {} +doc.data.entries = {} + + +function doc.new_category(id, def) + if doc.data.categories[id] ~= nil and id ~= nil then + doc.data.categories[id] = def + end +end + +function doc.new_entry(def) + if doc.data.entries[id] ~= nil and id ~= nil then + doc.data.entries[id] = def + end +end + +function doc.show_doc(playername) + local formspec = doc.formspec_core()..doc.formspec_main() + minetest.show_formspec(playername, "doc:main", formspec) +end + +function doc.formspec_core(tab) + if tab == nil then tab = 1 else tab = tostring(tab) end + return "size[12,9]tabheader[0,0;doc_header;Main,Category,Entry;"..tab..";true;false]" +end + +function doc.formspec_main() + return "label[0,1;Main]" +end + +function doc.formspec_category() + return "label[0,1;Category]" +end + +function doc.formspec_entry() + return "label[0,1;Entry]" +end + +function doc.process_form(player,formname,fields) + local playername = player:get_player_name() + --[[ process clicks on the tab header ]] + if(formname == "doc:main" or formname == "doc:category" or formname == "doc:entry") then + if fields.doc_header ~= nil then + local tab = tonumber(fields.doc_header) + local formspec, subformname, contents + if(tab==1) then + contents = doc.formspec_main() + subformname = "main" + elseif(tab==2) then + contents = doc.formspec_category() + subformname = "category" + elseif(tab==3) then + contents = doc.formspec_entry() + subformname = "entry" + end + formspec = doc.formspec_core(tab)..contents + minetest.show_formspec(playername, "doc:" .. subformname, formspec) + return + end + end +end + +minetest.register_on_player_receive_fields(doc.process_form) + +minetest.register_chatcommand("doc", { + params = "", + description = "Show in-game documentation system.", + privs = {}, + func = function(playername, param) + doc.show_doc(playername) + end, + } +) -- cgit v1.2.3