forked from Mirrorlandia_minetest/minetest
Use hypertext[] for credits so that long lines are wrapped (#13914)
This commit is contained in:
parent
906417cc0d
commit
2ce14ce4eb
@ -99,24 +99,17 @@ local previous_contributors = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
local function prepare_credits(dest, source)
|
local function prepare_credits(dest, source)
|
||||||
for _, s in ipairs(source) do
|
local string = table.concat(source, "\n") .. "\n"
|
||||||
-- if there's text inside brackets make it gray-ish
|
|
||||||
s = s:gsub("%[.-%]", core.colorize("#aaa", "%1"))
|
|
||||||
dest[#dest+1] = s
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function build_hacky_list(items, spacing)
|
local hypertext_escapes = {
|
||||||
spacing = spacing or 0.5
|
["\\"] = "\\\\",
|
||||||
local y = spacing / 2
|
["<"] = "\\<",
|
||||||
local ret = {}
|
[">"] = "\\>",
|
||||||
for _, item in ipairs(items) do
|
}
|
||||||
if item ~= "" then
|
string = string:gsub("[\\<>]", hypertext_escapes)
|
||||||
ret[#ret+1] = ("label[0,%f;%s]"):format(y, core.formspec_escape(item))
|
string = string:gsub("%[.-%]", "<gray>%1</gray>")
|
||||||
end
|
|
||||||
y = y + spacing
|
table.insert(dest, string)
|
||||||
end
|
|
||||||
return table.concat(ret, ""), y
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -127,50 +120,50 @@ return {
|
|||||||
local logofile = defaulttexturedir .. "logo.png"
|
local logofile = defaulttexturedir .. "logo.png"
|
||||||
local version = core.get_version()
|
local version = core.get_version()
|
||||||
|
|
||||||
local credit_list = {}
|
local hypertext = {
|
||||||
table.insert_all(credit_list, {
|
"<tag name=heading color=#ff0>",
|
||||||
core.colorize("#000", "Dedication of the current release"),
|
"<tag name=gray color=#aaa>",
|
||||||
"The 5.7.0 release is dedicated to the memory of",
|
}
|
||||||
"Minetest developer Jude Melton-Houghton (TurkeyMcMac)",
|
|
||||||
"who died on February 1, 2023.",
|
table.insert_all(hypertext, {
|
||||||
"Our thoughts are with his family and friends.",
|
"<style color=#000>Dedication of the current release</style>\n",
|
||||||
"",
|
"The 5.7.0 release is dedicated to the memory of\n",
|
||||||
core.colorize("#ff0", fgettext("Core Developers"))
|
"Minetest developer Jude Melton-Houghton (TurkeyMcMac)\n",
|
||||||
|
"who died on February 1, 2023.\n",
|
||||||
|
"Our thoughts are with his family and friends.\n",
|
||||||
|
"\n",
|
||||||
|
"<heading>", fgettext_ne("Core Developers"), "</heading>\n",
|
||||||
})
|
})
|
||||||
prepare_credits(credit_list, core_developers)
|
prepare_credits(hypertext, core_developers)
|
||||||
table.insert_all(credit_list, {
|
table.insert_all(hypertext, {
|
||||||
"",
|
"\n",
|
||||||
core.colorize("#ff0", fgettext("Core Team"))
|
"<heading>", fgettext_ne("Core Team"), "</heading>\n",
|
||||||
})
|
})
|
||||||
prepare_credits(credit_list, core_team)
|
prepare_credits(hypertext, core_team)
|
||||||
table.insert_all(credit_list, {
|
table.insert_all(hypertext, {
|
||||||
"",
|
"\n",
|
||||||
core.colorize("#ff0", fgettext("Active Contributors"))
|
"<heading>", fgettext_ne("Active Contributors"), "</heading>\n",
|
||||||
})
|
})
|
||||||
prepare_credits(credit_list, active_contributors)
|
prepare_credits(hypertext, active_contributors)
|
||||||
table.insert_all(credit_list, {
|
table.insert_all(hypertext, {
|
||||||
"",
|
"\n",
|
||||||
core.colorize("#ff0", fgettext("Previous Core Developers"))
|
"<heading>", fgettext_ne("Previous Core Developers"), "</heading>\n",
|
||||||
})
|
})
|
||||||
prepare_credits(credit_list, previous_core_developers)
|
prepare_credits(hypertext, previous_core_developers)
|
||||||
table.insert_all(credit_list, {
|
table.insert_all(hypertext, {
|
||||||
"",
|
"\n",
|
||||||
core.colorize("#ff0", fgettext("Previous Contributors"))
|
"<heading>", fgettext_ne("Previous Contributors"), "</heading>\n",
|
||||||
})
|
})
|
||||||
prepare_credits(credit_list, previous_contributors)
|
prepare_credits(hypertext, previous_contributors)
|
||||||
local credit_fs, scroll_height = build_hacky_list(credit_list)
|
|
||||||
-- account for the visible portion
|
hypertext = table.concat(hypertext):sub(1, -2)
|
||||||
scroll_height = math.max(0, scroll_height - 6.9)
|
|
||||||
|
|
||||||
local fs = "image[1.5,0.6;2.5,2.5;" .. core.formspec_escape(logofile) .. "]" ..
|
local fs = "image[1.5,0.6;2.5,2.5;" .. core.formspec_escape(logofile) .. "]" ..
|
||||||
"style[label_button;border=false]" ..
|
"style[label_button;border=false]" ..
|
||||||
"button[0.1,3.4;5.3,0.5;label_button;" ..
|
"button[0.1,3.4;5.3,0.5;label_button;" ..
|
||||||
core.formspec_escape(version.project .. " " .. version.string) .. "]" ..
|
core.formspec_escape(version.project .. " " .. version.string) .. "]" ..
|
||||||
"button[1.5,4.1;2.5,0.8;homepage;minetest.net]" ..
|
"button[1.5,4.1;2.5,0.8;homepage;minetest.net]" ..
|
||||||
"scroll_container[5.5,0.1;9.5,6.9;scroll_credits;vertical;" ..
|
"hypertext[5.5,0.25;9.75,6.6;credits;" .. minetest.formspec_escape(hypertext) .. "]"
|
||||||
tostring(scroll_height / 1000) .. "]" .. credit_fs ..
|
|
||||||
"scroll_container_end[]"..
|
|
||||||
"scrollbar[15,0.1;0.4,6.9;vertical;scroll_credits;0]"
|
|
||||||
|
|
||||||
-- Render information
|
-- Render information
|
||||||
local active_renderer_info = fgettext("Active renderer:") .. " " ..
|
local active_renderer_info = fgettext("Active renderer:") .. " " ..
|
||||||
|
Loading…
Reference in New Issue
Block a user