mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-11-22 10:31:06 +01:00
Upgrade doc mod to v1.1.0
This commit is contained in:
parent
7fda66a5dd
commit
d80b75358d
2 changed files with 30 additions and 11 deletions
|
@ -4,7 +4,7 @@ can access help pages about various things and the modder can add those pages.
|
|||
The mod itself does not provide any help texts, just the framework.
|
||||
It is the heart of the Help modpack, on which the other Help mods depend.
|
||||
|
||||
Current version: 1.0.1
|
||||
Current version: 1.1.0
|
||||
|
||||
## For players
|
||||
### Accessing the help
|
||||
|
|
|
@ -190,16 +190,19 @@ function doc.mark_entry_as_revealed(playername, category_id, entry_id)
|
|||
doc.data.players[playername].stored_data.revealed_count[category_id] = doc.data.players[playername].stored_data.revealed_count[category_id] + 1
|
||||
-- Needed because a new entry is added to the list of visible entries
|
||||
doc.data.players[playername].entry_textlist_needs_updating = true
|
||||
if minetest.get_modpath("central_message") ~= nil then
|
||||
local cat = doc.data.categories[category_id]
|
||||
cmsg.push_message_player(minetest.get_player_by_name(playername), S("New help entry unlocked: @1 > @2", cat.def.name, entry.name))
|
||||
end
|
||||
-- To avoid sound spamming, don't play sound more than once per second
|
||||
local last_sound = doc.data.players[playername].last_reveal_sound
|
||||
if last_sound == nil or os.difftime(os.time(), last_sound) >= 1 then
|
||||
-- Play notification sound
|
||||
minetest.sound_play({ name = "doc_reveal", gain = 0.2 }, { to_player = playername })
|
||||
doc.data.players[playername].last_reveal_sound = os.time()
|
||||
-- Notify player of entry revelation
|
||||
if doc.data.players[playername].stored_data.notify_on_reveal == true then
|
||||
if minetest.get_modpath("central_message") ~= nil then
|
||||
local cat = doc.data.categories[category_id]
|
||||
cmsg.push_message_player(minetest.get_player_by_name(playername), S("New help entry unlocked: @1 > @2", cat.def.name, entry.name))
|
||||
end
|
||||
-- To avoid sound spamming, don't play sound more than once per second
|
||||
local last_sound = doc.data.players[playername].last_reveal_sound
|
||||
if last_sound == nil or os.difftime(os.time(), last_sound) >= 1 then
|
||||
-- Play notification sound
|
||||
minetest.sound_play({ name = "doc_reveal", gain = 0.2 }, { to_player = playername })
|
||||
doc.data.players[playername].last_reveal_sound = os.time()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -734,6 +737,7 @@ end
|
|||
|
||||
function doc.formspec_main(playername)
|
||||
local formstring = "label[0,0;"..minetest.formspec_escape(DOC_INTRO) .. "\n"
|
||||
local notify_checkbox_x, notify_checkbox_y
|
||||
if doc.get_category_count() >= 1 then
|
||||
formstring = formstring .. F("Please select a category you wish to learn more about:").."]"
|
||||
if doc.get_category_count() <= (CATEGORYFIELDSIZE.WIDTH * CATEGORYFIELDSIZE.HEIGHT) then
|
||||
|
@ -761,6 +765,8 @@ function doc.formspec_main(playername)
|
|||
end
|
||||
end
|
||||
end
|
||||
notify_checkbox_x = 0
|
||||
notify_checkbox_y = doc.FORMSPEC.HEIGHT-0.5
|
||||
else
|
||||
formstring = formstring .. "textlist[0,1;"..(doc.FORMSPEC.WIDTH-0.2)..","..(doc.FORMSPEC.HEIGHT-2)..";doc_mainlist;"
|
||||
for c=1,#doc.data.category_order do
|
||||
|
@ -778,7 +784,17 @@ function doc.formspec_main(playername)
|
|||
end
|
||||
formstring = formstring .. "]"
|
||||
formstring = formstring .. "button[0,"..(doc.FORMSPEC.HEIGHT-1)..";3,1;doc_button_goto_category;"..F("Show category").."]"
|
||||
notify_checkbox_x = 3.5
|
||||
notify_checkbox_y = doc.FORMSPEC.HEIGHT-1
|
||||
end
|
||||
local text
|
||||
if minetest.get_modpath("central_message") then
|
||||
text = F("Notify me when new help is available")
|
||||
else
|
||||
text = F("Play notification sound when new help is available")
|
||||
end
|
||||
formstring = formstring .. "checkbox["..notify_checkbox_x..","..notify_checkbox_y..";doc_setting_notify_on_reveal;"..text..";"..
|
||||
tostring(doc.data.players[playername].stored_data.notify_on_reveal == true) .. "]"
|
||||
else
|
||||
formstring = formstring .. "]"
|
||||
end
|
||||
|
@ -1066,6 +1082,9 @@ function doc.process_form(player,formname,fields)
|
|||
local formspec = doc.formspec_core(2)..doc.formspec_category(cid, playername)
|
||||
minetest.show_formspec(playername, "doc:category", formspec)
|
||||
end
|
||||
if fields["doc_setting_notify_on_reveal"] then
|
||||
doc.data.players[playername].stored_data.notify_on_reveal = fields["doc_setting_notify_on_reveal"] == "true"
|
||||
end
|
||||
elseif(formname == "doc:category") then
|
||||
if fields["doc_button_goto_entry"] then
|
||||
local cid = doc.data.players[playername].category
|
||||
|
|
Loading…
Reference in a new issue