2023-02-19 21:41:32 +01:00
--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.
2023-02-23 17:10:51 +01:00
-- IMPORTANT! some lines had to be split up to new lines because they didn't fit in the window
2023-02-20 00:03:47 +01:00
local sussycraft_authors = {
2023-02-28 18:56:53 +01:00
" Kacper Kostka (kacperks) " ,
" <kacperks@cubesoftware.xyz> " ,
2023-02-23 01:28:36 +01:00
" (Programming, Textures) " ,
2023-02-28 18:56:53 +01:00
" ----------------------------------------------------------- " ,
2023-02-23 01:28:36 +01:00
" Łukasz Brzostowski (Looki2000) " ,
" <electro.brzostek@gmail.com or looki2000@cubesoftware.xyz> " ,
2023-02-23 16:35:44 +01:00
" (Programming, Textures, 3D Models, Soundtrack, Sounds) " ,
2023-02-23 01:28:36 +01:00
2023-02-28 18:56:53 +01:00
" ----------------------------------------------------------- " ,
" Karol Rostek (karoltoja200) " ,
" <discord: karoltoja200#6809> " ,
2023-02-23 01:28:36 +01:00
" (Textures) " ,
2023-02-28 18:56:53 +01:00
" ----------------------------------------------------------- " ,
" Dawid Cholewiusz (D47 0_o) " ,
" <discord: D46 0_o#8952> " ,
2023-02-23 01:28:36 +01:00
" (Structures builder) " ,
2023-02-28 18:56:53 +01:00
" ----------------------------------------------------------- " ,
" Kacper Brzostowski " ,
" (wooden plank texture) " ,
2023-02-20 00:03:47 +01:00
}
2023-02-23 17:10:51 +01:00
-- https://github.com/orgs/minetest/teams/engine/members
2023-02-19 21:41:32 +01:00
local core_developers = {
" Perttu Ahola (celeron55) <celeron55@gmail.com> [Project founder] " ,
" sfan5 <sfan5@live.de> " ,
" ShadowNinja <shadowninja@minetest.net> " ,
" Nathanaëlle Courant (Nore/Ekdohibs) <nore@mesecons.net> " ,
" Loic Blot (nerzhul/nrz) <loic.blot@unix-experience.fr> " ,
" Andrew Ward (rubenwardy) <rw@rubenwardy.com> " ,
" Krock/SmallJoker <mk939@ymail.com> " ,
" Lars Hofhansl <larsh@apache.org> " ,
" v-rob <robinsonvincent89@gmail.com> " ,
" hecks " ,
" Hugues Ross <hugues.ross@gmail.com> " ,
" Dmitry Kostenko (x2048) <codeforsmile@gmail.com> " ,
}
local core_team = {
" Zughy [Issue triager] " ,
}
-- For updating active/previous contributors, see the script in ./util/gather_git_credits.py
local active_contributors = {
" Wuzzy [Features, translations, devtest] " ,
" Lars Müller [Lua optimizations and fixes] " ,
" Jude Melton-Houghton [Optimizations, bugfixes] " ,
" paradust7 [Performance, fixes, Irrlicht refactoring] " ,
" Desour [Fixes] " ,
" ROllerozxa [Main menu] " ,
" savilli [Bugfixes] " ,
" Lexi Hale [Particlespawner animation] " ,
" Liso [Shadow Mapping] " ,
" JosiahWI [Fixes, build system] " ,
" numzero [Graphics and rendering] " ,
" HybridDog [Fixes] " ,
" NeroBurner [Joystick] " ,
" pecksin [Clickable web links] " ,
" Daroc Alden [Fixes] " ,
" Jean-Patrick Guerrero (kilbith) [Fixes] " ,
}
local previous_core_developers = {
" BlockMen " ,
" Maciej Kasatkin (RealBadAngel) [RIP] " ,
" Lisa Milne (darkrose) <lisa@ltmnet.com> " ,
" proller " ,
" Ilya Zhuravlev (xyz) <xyz@minetest.net> " ,
" PilzAdam <pilzadam@minetest.net> " ,
" est31 <MTest31@outlook.com> " ,
" kahrl <kahrl@gmx.net> " ,
" Ryan Kwolek (kwolekr) <kwolekr@minetest.net> " ,
" sapier " ,
" Zeno " ,
" Auke Kok (sofar) <sofar@foo-projects.org> " ,
" Aaron Suen <warr1024@gmail.com> " ,
" paramat " ,
" Pierre-Yves Rollo <dev@pyrollo.com> " ,
}
local previous_contributors = {
" Nils Dagsson Moskopp (erlehmann) <nils@dieweltistgarnichtso.net> [Minetest logo] " ,
" red-001 <red-001@outlook.ie> " ,
" Giuseppe Bilotta " ,
" ClobberXD " ,
" Dániel Juhász (juhdanad) <juhdanad@gmail.com> " ,
" MirceaKitsune <mirceakitsune@gmail.com> " ,
" MoNTE48 " ,
" Constantin Wenger (SpeedProg) " ,
" Ciaran Gultnieks (CiaranG) " ,
" Paul Ouellette (pauloue) " ,
" stujones11 " ,
" srifqi " ,
" Rogier <rogier777@gmail.com> " ,
" Gregory Currie (gregorycu) " ,
" JacobF " ,
" Jeija <jeija@mesecons.net> " ,
}
local function prepare_credits ( dest , source )
for _ , s in ipairs ( source ) do
-- 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 )
spacing = spacing or 0.5
local y = spacing / 2
local ret = { }
for _ , item in ipairs ( items ) do
if item ~= " " then
ret [ # ret + 1 ] = ( " label[0,%f;%s] " ) : format ( y , core.formspec_escape ( item ) )
end
y = y + spacing
end
return table.concat ( ret , " " ) , y
end
return {
name = " about " ,
caption = fgettext ( " About " ) ,
cbf_formspec = function ( tabview , name , tabdata )
local logofile = defaulttexturedir .. " logo.png "
local version = core.get_version ( )
2023-02-20 00:03:47 +01:00
local credit_list = { }
2023-02-19 21:41:32 +01:00
table.insert_all ( credit_list , {
2023-02-23 17:10:51 +01:00
core.colorize ( " #ffdd33 " , fgettext ( " SussyCraft Developers " ) )
2023-02-20 00:03:47 +01:00
} )
prepare_credits ( credit_list , sussycraft_authors )
table.insert_all ( credit_list , {
2023-02-28 18:56:53 +01:00
" " ,
2023-02-23 17:10:51 +01:00
core.colorize ( " #ffdd33 " , fgettext ( " Minetest Engine Developers " ) )
2023-02-19 21:41:32 +01:00
} )
prepare_credits ( credit_list , core_developers )
table.insert_all ( credit_list , {
" " ,
2023-02-23 17:10:51 +01:00
core.colorize ( " #ffdd33 " , fgettext ( " Core Team " ) )
2023-02-19 21:41:32 +01:00
} )
prepare_credits ( credit_list , core_team )
table.insert_all ( credit_list , {
" " ,
2023-02-23 17:10:51 +01:00
core.colorize ( " #ffdd33 " , fgettext ( " Active Contributors " ) )
2023-02-19 21:41:32 +01:00
} )
prepare_credits ( credit_list , active_contributors )
table.insert_all ( credit_list , {
" " ,
2023-02-23 17:10:51 +01:00
core.colorize ( " #ffdd33 " , fgettext ( " Previous Core Developers " ) )
2023-02-19 21:41:32 +01:00
} )
prepare_credits ( credit_list , previous_core_developers )
table.insert_all ( credit_list , {
" " ,
2023-02-23 17:10:51 +01:00
core.colorize ( " #ffdd33 " , fgettext ( " Previous Contributors " ) )
2023-02-19 21:41:32 +01:00
} )
prepare_credits ( credit_list , previous_contributors )
2023-02-23 17:10:51 +01:00
-- SUS
2023-02-23 16:35:44 +01:00
local excamation_marks_count = math.random ( 1 , 30 )
2023-02-23 02:26:22 +01:00
table.insert_all ( credit_list , {
" " ,
" " ,
core.colorize ( " #f00 " , fgettext ( " AMOGUS IS SUS " .. string.rep ( " ! " , excamation_marks_count ) ) )
} )
2023-02-19 21:41:32 +01:00
local credit_fs , scroll_height = build_hacky_list ( credit_list )
-- account for the visible portion
scroll_height = math.max ( 0 , scroll_height - 6.9 )
2023-03-05 00:05:58 +01:00
-- minetest gui system sucks so I had to make these calculations to center the buttons BECAUSE THEY CHANGE ON EVERY ANDROID DEVICE AND I HAVE TO WIDEN THEM MORE BECAUSE MINETEST IS A PIECE OF CRAP AAAAAAAAAAAAAAAA
local privacy_button_size = 3.5
local discord_button_size = 4.5
2023-02-19 21:41:32 +01:00
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; " ..
2023-02-26 21:15:22 +01:00
core.formspec_escape ( " SussyCraft " .. core.get_version ( ) . string ) .. " ] " ..
2023-02-23 18:06:59 +01:00
2023-03-02 23:31:12 +01:00
" button[ " .. tostring ( - privacy_button_size / 2 + 2.75 ) .. " ,4.1; " .. tostring ( privacy_button_size ) .. " ,0.8;privacy;Privacy Policy] " ..
" button[ " .. tostring ( - discord_button_size / 2 + 2.75 ) .. " ,5.1; " .. tostring ( discord_button_size ) .. " ,0.8;discord;SussyCraft Discord] " ..
2023-02-23 18:06:59 +01:00
2023-02-23 20:39:10 +01:00
" scroll_container[5.5,0.1;13.5,6.9;scroll_credits;vertical; " .. -- originally: 5.5,0.1;9.5,6.9
2023-02-19 21:41:32 +01:00
tostring ( scroll_height / 1000 ) .. " ] " .. credit_fs ..
" scroll_container_end[] " ..
2023-02-23 20:39:10 +01:00
" scrollbar[19,0.1;0.4,6.9;vertical;scroll_credits;0] " -- originally: 15,0.1;0.4,6.9
2023-02-23 18:06:59 +01:00
2023-02-23 17:30:38 +01:00
2023-02-19 21:41:32 +01:00
-- Render information
fs = fs .. " style[label_button2;border=false] " ..
" button[0.1,6;5.3,1;label_button2; " ..
2023-02-23 17:30:38 +01:00
2023-02-19 21:41:32 +01:00
fgettext ( " Active renderer: " ) .. " \n " ..
core.formspec_escape ( core.get_screen_info ( ) . render_info ) .. " ] "
2023-02-23 20:39:10 +01:00
return fs , " size[19.5,7.1,false]real_coordinates[true] " -- originally: 15.5,7.1
2023-02-19 21:41:32 +01:00
end ,
cbf_button_handler = function ( this , fields , name , tabdata )
2023-02-28 18:56:53 +01:00
if fields.privacy then
2023-02-20 00:03:47 +01:00
core.open_url ( " https://cubesoftware.xyz/sussycraft/privacy.html " )
2023-02-19 21:41:32 +01:00
end
2023-02-23 17:30:38 +01:00
if fields.discord then
core.open_url ( " https://discord.gg/aJmhBN74sh " )
end
2023-02-19 21:41:32 +01:00
end ,
}