Update Algae, Beds, and Fix display of mod documentations

This commit is contained in:
ExeVirus 2021-06-03 21:46:32 -04:00
parent 1cdd518fe5
commit a2565d93f3
5 changed files with 32 additions and 44 deletions

View File

@ -8,13 +8,13 @@ local S = minetest.get_translator("algae")
-----Load documentation via doc_helper------------------------
local MP = minetest.get_modpath(minetest.get_current_modname())
local docpath = MP .. DIR_DELIM .. "doc"
doc.add_category("_aglae",
doc.add_category("algae",
{
name = "_algae",
description = "Algae Mod Documentation",
name = S("_Algae_"),
description = S("Algae Mod Documentation"),
build_formspec = doc.entry_builders.text_and_square_gallery,
})
doc.build_entries(docpath, "_algae")
doc.build_entries(docpath, "algae")
------Registrations--------

View File

@ -3,10 +3,10 @@
-----Load documentation via doc_helper------------------------
local MP = minetest.get_modpath(minetest.get_current_modname())
local docpath = MP .. DIR_DELIM .. "doc"
doc.add_category("_beds",
doc.add_category("beds",
{
name = "_beds",
name = "_Beds_",
description = "Bed Documentation",
build_formspec = doc.entry_builders.text_and_square_gallery,
})
doc.build_entries(docpath, "_beds")
doc.build_entries(docpath, "beds")

View File

@ -479,6 +479,25 @@ doc.entry_builders.text_and_gallery = function(data, playername)
return formstring
end
-- Scrollable freeform text with an optional standard gallery (3 rows, 1:1 aspect ratio)
doc.entry_builders.text_and_square_gallery = function(data, playername)
-- How much height the image gallery “steals” from the text widget
local stolen_height = 0
local formstring = ""
-- Only add the gallery if images are in the data, otherwise, the text widget gets all of the space
if data.images ~= nil then
local gallery
gallery, stolen_height = doc.widgets.gallery(data.images, playername, nil, doc.FORMSPEC.ENTRY_END_Y + 0.2, 1, doc.FORMSPEC.ENTRY_WIDTH*3/5, 5, nil, false, nil)
formstring = formstring .. gallery
end
formstring = formstring .. doc.widgets.text(data.text,
doc.FORMSPEC.ENTRY_START_X,
doc.FORMSPEC.ENTRY_START_Y,
doc.FORMSPEC.ENTRY_WIDTH - 0.4,
doc.FORMSPEC.ENTRY_HEIGHT - stolen_height)
return formstring
end
doc.widgets = {}
-- Scrollable freeform text
@ -508,7 +527,7 @@ end
-- Image gallery
-- Currently, only one gallery per entry is supported. TODO: Add support for multiple galleries in an entry (low priority)
doc.widgets.gallery = function(imagedata, playername, x, y, aspect_ratio, width, rows, align_left, align_top)
doc.widgets.gallery = function(imagedata, playername, x, y, aspect_ratio, width, rows, align_left, align_top, button_width)
if playername == nil then return nil end -- emergency exit
local formstring = ""
@ -542,7 +561,7 @@ doc.widgets.gallery = function(imagedata, playername, x, y, aspect_ratio, width,
if aspect_ratio == nil then aspect_ratio = (2/3) end
local pos = 0
local totalimagewidth, iw, ih
local bw = 0.5
local bw = button_width or 0.5
local buttonoffset = 0
if #imagedata > rows then
totalimagewidth = width - bw*2
@ -562,6 +581,7 @@ doc.widgets.gallery = function(imagedata, playername, x, y, aspect_ratio, width,
end
formstring = formstring .. "tooltip[doc_button_gallery_prev;"..tt.."]"
end
buttonoffset = bw
if (imageindex + rows) <= #imagedata then
local rightx = buttonoffset + (x + rows * iw)
formstring = formstring .. "button["..rightx..","..y..";"..bw..","..ih..";doc_button_gallery_next;"..F(">").."]"
@ -572,7 +592,6 @@ doc.widgets.gallery = function(imagedata, playername, x, y, aspect_ratio, width,
end
formstring = formstring .. "tooltip[doc_button_gallery_next;"..tt.."]"
end
buttonoffset = bw
else
totalimagewidth = width
iw = totalimagewidth / rows
@ -593,7 +612,6 @@ doc.widgets.gallery = function(imagedata, playername, x, y, aspect_ratio, width,
formstring = formstring .. "label["..nx..","..ny..";"..i.."]"
pos = pos + 1
end
local bw, bh
return formstring, ih
end

View File

@ -26,34 +26,4 @@ doc.build_entries = function(path, category)
util.create_entries(modname, path, filename, category) --generates entries for given category
end
end
end
-- Scrollable freeform text with an optional standard gallery (3 rows, 1:1 aspect ratio)
doc.entry_builders.text_and_square_gallery = function(data, playername)
-- How much height the image gallery “steals” from the text widget
local stolen_height = 0
local formstring = ""
-- Only add the gallery if images are in the data, otherwise, the text widget gets all of the space
if data.images ~= nil then
local gallery
gallery, stolen_height = doc.widgets.gallery(data.images, playername, nil, doc.FORMSPEC.ENTRY_END_Y + 0.2, 1, nil, nil, nil, false)
formstring = formstring .. gallery
end
formstring = formstring .. doc.widgets.text(data.text,
doc.FORMSPEC.ENTRY_START_X,
doc.FORMSPEC.ENTRY_START_Y,
doc.FORMSPEC.ENTRY_WIDTH - 0.4,
doc.FORMSPEC.ENTRY_HEIGHT - stolen_height)
return formstring
end
local docpath = MP .. DIR_DELIM .. "doc"
doc.add_category("fun",
{
name = "fun",
description = "FUN!",
build_formspec = doc.entry_builders.text_and_square_gallery,
})
doc.build_entries(docpath, "fun")
end

View File

@ -85,8 +85,8 @@ util.create_entries = function(modname, folder_path, filename, category)
table.insert(imagelist, {image=img})
end
end
doc.add_entry(category, modname.."_"..filename_noext, {
name = minetest.get_translator(modname)(modname).."_"..filename_noext, --Modname is assumed to the be translator for everything that's not covered by doc
doc.add_entry(category, filename_noext, {
name = S(filename_noext),
data = {
text = document,
images = imagelist,