--Minetest --Copyright (C) 2013 sapier -- --This program is free software; you can redistribute it and/or modify --it under the terms of the GNU Lesser General Public License as published by --the Free Software Foundation; either version 2.1 of the License, or --(at your option) any later version. -- --This program is distributed in the hope that it will be useful, --but WITHOUT ANY WARRANTY; without even the implied warranty of --MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --GNU Lesser General Public License for more details. -- --You should have received a copy of the GNU Lesser General Public License along --with this program; if not, write to the Free Software Foundation, Inc., --51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -- https://github.com/orgs/minetest/teams/engine/members local core_developers = { "Perttu Ahola (celeron55) [Project founder]", "sfan5 ", "ShadowNinja ", "Nathanaëlle Courant (Nore/Ekdohibs) ", "Loic Blot (nerzhul/nrz) ", "Andrew Ward (rubenwardy) ", "Krock/SmallJoker ", "Lars Hofhansl ", "v-rob ", "Desour/DS", "srifqi", "Gregor Parzefall (grorp)", } -- currently only https://github.com/orgs/minetest/teams/triagers/members local core_team = { "Zughy [Issue triager]", "wsor [Issue triager]", "Hugo Locurcio (Calinou) [Issue triager]", } -- For updating active/previous contributors, see the script in ./util/gather_git_credits.py local active_contributors = { "Wuzzy [Features, translations, documentation]", "numzero [Optimizations, work on OpenGL driver]", "ROllerozxa [Bugfixes, Mainmenu]", "Lars Müller [Bugfixes]", "AFCMS [Documentation]", "savilli [Bugfixes]", "fluxionary [Bugfixes]", "Bradley Pierce (Thresher) [Documentation]", "Stvk imension [Android]", "JosiahWI [Code cleanups]", "OgelGames [UI, Bugfixes]", "ndren [Bugfixes]", "Abdou-31 [Documentation]", } local previous_core_developers = { "BlockMen", "Maciej Kasatkin (RealBadAngel) [RIP]", "Lisa Milne (darkrose) ", "proller", "Ilya Zhuravlev (xyz) ", "PilzAdam ", "est31 ", "kahrl ", "Ryan Kwolek (kwolekr) ", "sapier", "Zeno", "Auke Kok (sofar) ", "Aaron Suen ", "paramat", "Pierre-Yves Rollo ", "hecks", "Jude Melton-Houghton (TurkeyMcMac) [RIP]", "Hugues Ross ", "Dmitry Kostenko (x2048) ", } local previous_contributors = { "Nils Dagsson Moskopp (erlehmann) [Minetest logo]", "red-001 ", "Giuseppe Bilotta", "HybridDog", "ClobberXD", "Dániel Juhász (juhdanad) ", "MirceaKitsune ", "Jean-Patrick Guerrero (kilbith)", "MoNTE48", "Constantin Wenger (SpeedProg)", "Ciaran Gultnieks (CiaranG)", "Paul Ouellette (pauloue)", "stujones11", "Rogier ", "Gregory Currie (gregorycu)", "JacobF", "Jeija ", } local function prepare_credits(dest, source) local string = table.concat(source, "\n") .. "\n" local hypertext_escapes = { ["\\"] = "\\\\", ["<"] = "\\<", [">"] = "\\>", } string = string:gsub("[\\<>]", hypertext_escapes) string = string:gsub("%[.-%]", "%1") table.insert(dest, string) end return { name = "about", caption = fgettext("About"), cbf_formspec = function(tabview, name, tabdata) local logofile = defaulttexturedir .. "logo.png" local version = core.get_version() local hypertext = { "", "", } table.insert_all(hypertext, { "", fgettext_ne("Core Developers"), "\n", }) prepare_credits(hypertext, core_developers) table.insert_all(hypertext, { "\n", "", fgettext_ne("Core Team"), "\n", }) prepare_credits(hypertext, core_team) table.insert_all(hypertext, { "\n", "", fgettext_ne("Active Contributors"), "\n", }) prepare_credits(hypertext, active_contributors) table.insert_all(hypertext, { "\n", "", fgettext_ne("Previous Core Developers"), "\n", }) prepare_credits(hypertext, previous_core_developers) table.insert_all(hypertext, { "\n", "", fgettext_ne("Previous Contributors"), "\n", }) prepare_credits(hypertext, previous_contributors) hypertext = table.concat(hypertext):sub(1, -2) local fs = "image[1.5,0.6;2.5,2.5;" .. core.formspec_escape(logofile) .. "]" .. "style[label_button;border=false]" .. "button[0.1,3.4;5.3,0.5;label_button;" .. core.formspec_escape(version.project .. " " .. version.string) .. "]" .. "button_url[1.5,4.1;2.5,0.8;homepage;minetest.net;https://www.minetest.net/]" .. "hypertext[5.5,0.25;9.75,6.6;credits;" .. minetest.formspec_escape(hypertext) .. "]" -- Render information local active_renderer_info = fgettext("Active renderer:") .. " " .. core.formspec_escape(core.get_active_renderer()) fs = fs .. "style[label_button2;border=false]" .. "button[0.1,6;5.3,0.5;label_button2;" .. active_renderer_info .. "]".. "tooltip[label_button2;" .. active_renderer_info .. "]" -- Irrlicht device information local irrlicht_device_info = fgettext("Irrlicht device:") .. " " .. core.formspec_escape(core.get_active_irrlicht_device()) fs = fs .. "style[label_button3;border=false]" .. "button[0.1,6.5;5.3,0.5;label_button3;" .. irrlicht_device_info .. "]".. "tooltip[label_button3;" .. irrlicht_device_info .. "]" if PLATFORM == "Android" then fs = fs .. "button[0.5,5.1;4.5,0.8;share_debug;" .. fgettext("Share debug log") .. "]" else fs = fs .. "tooltip[userdata;" .. fgettext("Opens the directory that contains user-provided worlds, games, mods,\n" .. "and texture packs in a file manager / explorer.") .. "]" fs = fs .. "button[0.5,5.1;4.5,0.8;userdata;" .. fgettext("Open User Data Directory") .. "]" end return fs end, cbf_button_handler = function(this, fields, name, tabdata) if fields.share_debug then local path = core.get_user_path() .. DIR_DELIM .. "debug.txt" core.share_file(path) end if fields.userdata then core.open_dir(core.get_user_path()) end end, on_change = function(type) if type == "ENTER" then mm_game_theme.set_engine() end end, }