Remember selected entry in entry list
This commit is contained in:
parent
4f4cb58bb0
commit
77ca4362d6
26
init.lua
26
init.lua
@ -9,6 +9,7 @@ doc.VERSION.STRING = "0.1.0"
|
|||||||
|
|
||||||
doc.data = {}
|
doc.data = {}
|
||||||
doc.data.categories = {}
|
doc.data.categories = {}
|
||||||
|
doc.data.players = {}
|
||||||
|
|
||||||
function doc.new_category(id, def)
|
function doc.new_category(id, def)
|
||||||
if doc.data.categories[id] == nil and id ~= nil then
|
if doc.data.categories[id] == nil and id ~= nil then
|
||||||
@ -73,7 +74,7 @@ function doc.formspec_main()
|
|||||||
return formstring
|
return formstring
|
||||||
end
|
end
|
||||||
|
|
||||||
function doc.formspec_category(id)
|
function doc.formspec_category(id, playername)
|
||||||
local formstring
|
local formstring
|
||||||
if id == nil then
|
if id == nil then
|
||||||
formstring = "label[0,0;You haven't selected a help topic yet. Please select one in the category list first.]"
|
formstring = "label[0,0;You haven't selected a help topic yet. Please select one in the category list first.]"
|
||||||
@ -90,6 +91,10 @@ function doc.formspec_category(id)
|
|||||||
if counter >= 1 then
|
if counter >= 1 then
|
||||||
formstring = string.sub(formstring, 1, #formstring-1)
|
formstring = string.sub(formstring, 1, #formstring-1)
|
||||||
end
|
end
|
||||||
|
local catsel = doc.data.players[playername].catsel
|
||||||
|
if catsel then
|
||||||
|
formstring = formstring .. ";"..doc.data.players[playername].catsel
|
||||||
|
end
|
||||||
formstring = formstring .. "]"
|
formstring = formstring .. "]"
|
||||||
formstring = formstring .. "button[0,8;3,1;doc_button_goto_entry;Show entry]"
|
formstring = formstring .. "button[0,8;3,1;doc_button_goto_entry;Show entry]"
|
||||||
end
|
end
|
||||||
@ -124,7 +129,7 @@ function doc.process_form(player,formname,fields)
|
|||||||
contents = doc.formspec_main()
|
contents = doc.formspec_main()
|
||||||
subformname = "main"
|
subformname = "main"
|
||||||
elseif(tab==2) then
|
elseif(tab==2) then
|
||||||
contents = doc.formspec_category("one")
|
contents = doc.formspec_category("one", playername)
|
||||||
subformname = "category"
|
subformname = "category"
|
||||||
elseif(tab==3) then
|
elseif(tab==3) then
|
||||||
contents = doc.formspec_entry("one", "o1")
|
contents = doc.formspec_entry("one", "o1")
|
||||||
@ -138,7 +143,8 @@ function doc.process_form(player,formname,fields)
|
|||||||
if(formname == "doc:main") then
|
if(formname == "doc:main") then
|
||||||
for id,category in pairs(doc.data.categories) do
|
for id,category in pairs(doc.data.categories) do
|
||||||
if fields["doc_button_category_"..id] then
|
if fields["doc_button_category_"..id] then
|
||||||
local formspec = doc.formspec_core(2)..doc.formspec_category(id)
|
local formspec = doc.formspec_core(2)..doc.formspec_category(id, playername)
|
||||||
|
doc.data.players[playername].catsel = nil
|
||||||
minetest.show_formspec(playername, "doc:category", formspec)
|
minetest.show_formspec(playername, "doc:category", formspec)
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
@ -148,6 +154,12 @@ function doc.process_form(player,formname,fields)
|
|||||||
local formspec = doc.formspec_core(3)..doc.formspec_entry("one", "o1")
|
local formspec = doc.formspec_core(3)..doc.formspec_entry("one", "o1")
|
||||||
minetest.show_formspec(playername, "doc:entry", formspec)
|
minetest.show_formspec(playername, "doc:entry", formspec)
|
||||||
end
|
end
|
||||||
|
if fields["doc_catlist"] then
|
||||||
|
local event = minetest.explode_textlist_event(fields["doc_catlist"])
|
||||||
|
if event.type == "CHG" then
|
||||||
|
doc.data.players[playername].catsel = event.index
|
||||||
|
end
|
||||||
|
end
|
||||||
elseif(formname == "doc:entry") then
|
elseif(formname == "doc:entry") then
|
||||||
|
|
||||||
end
|
end
|
||||||
@ -164,3 +176,11 @@ minetest.register_chatcommand("doc", {
|
|||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
doc.data.players[player:get_player_name()] = {}
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_leaveplayer(function(player)
|
||||||
|
doc.data.players[player:get_player_name()] = nil
|
||||||
|
end)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user