diff --git a/.gitignore b/.gitignore
index 0c5f5b57c55..db6fad71d99 100644
--- a/.gitignore
+++ b/.gitignore
@@ -138,3 +138,5 @@ package-lock.json
*.temp_check
/docker/*.tar.xz
+/scripts/patrons.json
+/scripts/translators.json
diff --git a/.rubocop.yml b/.rubocop.yml
index 3daeb77055e..0b535a000e6 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -1,4 +1,4 @@
-Metrics/LineLength:
+Layout/LineLength:
Max: 95
Metrics/MethodLength:
diff --git a/Thrive.csproj b/Thrive.csproj
index 39b5598710f..09f396a601b 100644
--- a/Thrive.csproj
+++ b/Thrive.csproj
@@ -21,6 +21,7 @@
+
@@ -88,6 +89,7 @@
+
@@ -339,6 +341,7 @@
+
diff --git a/Thrive.sln.DotSettings b/Thrive.sln.DotSettings
index 54e7b38d870..4b338cb132d 100644
--- a/Thrive.sln.DotSettings
+++ b/Thrive.sln.DotSettings
@@ -461,10 +461,13 @@
JSON
MP
MSAA
+ OFL
+ GPL
OS
SFX
UI
UV
+ VIP
False
<Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" />
<Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="" Suffix="" Style="AA_BB" /></Policy>
@@ -497,6 +500,7 @@
True
True
True
+ True
True
True
True
@@ -531,6 +535,7 @@
True
True
True
+ True
True
True
True
@@ -559,6 +564,7 @@
True
True
True
+ True
True
True
True
diff --git a/assets/README.md b/assets/README.txt
similarity index 93%
rename from assets/README.md
rename to assets/README.txt
index 86feb8512b6..c869e8c5a61 100644
--- a/assets/README.md
+++ b/assets/README.txt
@@ -1,5 +1,5 @@
-License Info
-============
+Asset License Info
+==================
With some exceptions, all assets in the assets folder
and subfolders use a Creative Commons license as defined
diff --git a/export_presets.cfg b/export_presets.cfg
index 066cc010b8b..430b5902e0b 100644
--- a/export_presets.cfg
+++ b/export_presets.cfg
@@ -6,7 +6,7 @@ runnable=true
custom_features=""
export_filter="all_resources"
include_filter="*.json, *.txt"
-exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*"
+exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*"
export_path="builds/Thrive.x86_64"
script_export_mode=1
script_encryption_key=""
@@ -31,7 +31,7 @@ runnable=true
custom_features=""
export_filter="all_resources"
include_filter="*.json, *.txt"
-exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*"
+exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*"
export_path="builds/Thrive.exe"
script_export_mode=1
script_encryption_key=""
@@ -72,7 +72,7 @@ runnable=false
custom_features=""
export_filter="all_resources"
include_filter="*.json, *.txt"
-exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*"
+exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*"
export_path="builds/Thrive.exe"
script_export_mode=1
script_encryption_key=""
@@ -113,7 +113,7 @@ runnable=true
custom_features=""
export_filter="all_resources"
include_filter="*.json, *.txt"
-exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*"
+exclude_filter="stylecop.json, test/*, RubySetupSystem/*, builds/*, *mono_crash*, fast_build_mode.json, docker/*, scripts/*"
export_path="builds/Thrive.zip"
script_export_mode=1
script_encryption_key=""
diff --git a/locale/bg.po b/locale/bg.po
index a31dcd115c1..3c6365f43fe 100644
--- a/locale/bg.po
+++ b/locale/bg.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-09 21:04+1000\n"
+"POT-Creation-Date: 2021-09-17 17:10+0300\n"
"PO-Revision-Date: 2021-09-12 07:51+0000\n"
"Last-Translator: Georgi Georgiev (Жоро) \n"
"Language-Team: Bulgarian \n"
"Language-Team: Catalan \n"
"Language-Team: Czech \n"
"Language-Team: German \n"
@@ -1372,61 +1372,61 @@ msgstr "Art by {0}"
msgid "CLOSE"
msgstr "Close"
-#: ../src/general/MainMenu.cs:359
+#: ../src/general/MainMenu.cs:394
msgid "OK"
msgstr "OK"
-#: ../src/general/MainMenu.cs:360
+#: ../src/general/MainMenu.cs:395
msgid "Cancel"
msgstr "Cancel"
-#: ../src/general/MainMenu.tscn:146
+#: ../src/general/MainMenu.tscn:149
msgid "NEW_GAME"
msgstr "New Game"
-#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72
+#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72
msgid "LOAD_GAME"
msgstr "Load Game"
-#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94
+#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94
msgid "OPTIONS"
msgstr "Options"
-#: ../src/general/MainMenu.tscn:181
+#: ../src/general/MainMenu.tscn:184
msgid "TOOLS"
msgstr "Tools"
-#: ../src/general/MainMenu.tscn:192
+#: ../src/general/MainMenu.tscn:195
msgid "VIEW_SOURCE_CODE"
msgstr "View Source Code"
-#: ../src/general/MainMenu.tscn:204
+#: ../src/general/MainMenu.tscn:207
msgid "EXTRAS"
msgstr "Extras"
-#: ../src/general/MainMenu.tscn:216
+#: ../src/general/MainMenu.tscn:218
msgid "CREDITS"
msgstr "Credits"
-#: ../src/general/MainMenu.tscn:227
+#: ../src/general/MainMenu.tscn:229
msgid "QUIT"
msgstr "Quit"
-#: ../src/general/MainMenu.tscn:249
+#: ../src/general/MainMenu.tscn:251
msgid "MICROBE_FREEBUILD_EDITOR"
msgstr "Microbe Freebuild Editor"
-#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173
-#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108
-#: ../src/saving/SaveManagerGUI.tscn:120
+#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345
+#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134
+#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120
msgid "BACK"
msgstr "Back"
-#: ../src/general/MainMenu.tscn:349
+#: ../src/general/MainMenu.tscn:382
msgid "GLES2_MODE_WARNING"
msgstr "GLES2 Mode Warning"
-#: ../src/general/MainMenu.tscn:362
+#: ../src/general/MainMenu.tscn:395
msgid "GLES2_MODE_WARNING_TEXT"
msgstr ""
"You are running Thrive with GLES2. This is severely untested and is likely "
@@ -1768,6 +1768,143 @@ msgstr "@"
msgid "PERCENTAGE_VALUE"
msgstr "{0}%"
+#: ../src/gui_common/CreditsScroll.cs:228
+msgid "LEAD_DEVELOPERS"
+msgstr "Lead Developers"
+
+#: ../src/gui_common/CreditsScroll.cs:234
+msgid "LEAD_PROGRAMMER"
+msgstr "Lead Programmer"
+
+#: ../src/gui_common/CreditsScroll.cs:235
+msgid "LEAD_PROGRAMMERS"
+msgstr "Lead Programmers"
+
+#: ../src/gui_common/CreditsScroll.cs:240
+msgid "LEAD_THEORIST"
+msgstr "Lead Theorist"
+
+#: ../src/gui_common/CreditsScroll.cs:241
+msgid "LEAD_THEORISTS"
+msgstr "Lead Theorists"
+
+#: ../src/gui_common/CreditsScroll.cs:246
+msgid "LEAD_ARTIST"
+msgstr "Lead Artist"
+
+#: ../src/gui_common/CreditsScroll.cs:247
+msgid "LEAD_ARTISTS"
+msgstr "Lead Artists"
+
+#: ../src/gui_common/CreditsScroll.cs:252
+msgid "SOUND_TEAM_LEAD"
+msgstr "Sound Team Lead"
+
+#: ../src/gui_common/CreditsScroll.cs:253
+msgid "SOUND_TEAM_LEADS"
+msgstr "Sound Team Leads"
+
+#: ../src/gui_common/CreditsScroll.cs:258
+msgid "LEAD_OUTREACH_PERSON"
+msgstr "Lead Outreach Person"
+
+#: ../src/gui_common/CreditsScroll.cs:259
+msgid "LEAD_OUTREACH_PEOPLE"
+msgstr "Lead Outreach People"
+
+#: ../src/gui_common/CreditsScroll.cs:264
+msgid "LEAD_GAME_DESIGNER"
+msgstr "Lead Game Designer"
+
+#: ../src/gui_common/CreditsScroll.cs:265
+msgid "LEAD_GAME_DESIGNERS"
+msgstr "Lead Game Designers"
+
+#: ../src/gui_common/CreditsScroll.cs:270
+msgid "LEAD_TESTER"
+msgstr "Lead Tester"
+
+#: ../src/gui_common/CreditsScroll.cs:271
+msgid "LEAD_TESTERS"
+msgstr "Lead Testers"
+
+#: ../src/gui_common/CreditsScroll.cs:276
+msgid "LEAD_PROJECT_MANAGER"
+msgstr "Lead Project Manager"
+
+#: ../src/gui_common/CreditsScroll.cs:277
+msgid "LEAD_PROJECT_MANAGERS"
+msgstr "Lead Project Managers"
+
+#: ../src/gui_common/CreditsScroll.cs:284
+msgid "CURRENT_DEVELOPERS"
+msgstr "Current Developers"
+
+#: ../src/gui_common/CreditsScroll.cs:300
+msgid "PAST_DEVELOPERS"
+msgstr "Past Developers"
+
+#: ../src/gui_common/CreditsScroll.cs:316
+msgid "OUTSIDE_CONTRIBUTORS"
+msgstr "Outside Contributors"
+
+#: ../src/gui_common/CreditsScroll.cs:319
+msgid "YOU_CAN_MAKE_PULL_REQUEST"
+msgstr ""
+"Thrive is an open source project. \n"
+"You can contribute a pull request without applying to the team."
+
+#: ../src/gui_common/CreditsScroll.cs:334
+msgid "PATRONS"
+msgstr "Patrons"
+
+#: ../src/gui_common/CreditsScroll.cs:338
+msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON"
+msgstr "You can support Thrive on Patreon to support future development"
+
+#: ../src/gui_common/CreditsScroll.cs:341
+msgid "VIP_PATRONS"
+msgstr "VIP Supporters"
+
+#: ../src/gui_common/CreditsScroll.cs:342
+msgid "DEV_BUILD_PATRONS"
+msgstr "Devbuilds Supporters"
+
+#: ../src/gui_common/CreditsScroll.cs:344
+msgid "SUPPORTER_PATRONS"
+msgstr "Supporters"
+
+#: ../src/gui_common/CreditsScroll.cs:354
+msgid "DONATIONS"
+msgstr "Donations"
+
+#: ../src/gui_common/CreditsScroll.cs:377
+msgid "TRANSLATORS"
+msgstr "Translators"
+
+#: ../src/gui_common/CreditsScroll.cs:391
+msgid "USED_LIBRARIES_LICENSES"
+msgstr "Licenses And Used Libraries"
+
+#: ../src/gui_common/CreditsScroll.cs:485
+msgid "THANKS_FOR_PLAYING"
+msgstr ""
+"Thank you for playing!\n"
+"\n"
+"If you enjoyed the game, please tell your friends about us."
+
+#: ../src/gui_common/CreditsScroll.tscn:45
+msgid "BY_REVOLUTIONARY_GAMES"
+msgstr "By Revolutionary Games Studio"
+
+#: ../src/gui_common/CreditsScroll.tscn:52
+msgid "DEVELOPMENT_SUPPORTED_BY"
+msgstr "Development Supported By Revolutionary Games Studio ry"
+
+#: ../src/gui_common/CreditsScroll.tscn:60
+msgid "DEVELOPERS"
+msgstr "Developers"
+
#: ../src/gui_common/QuickLoadHandler.tscn:18
msgid "SAVE_HAS_DIFFERENT_VERSION"
msgstr "Save has different version"
@@ -3460,9 +3597,6 @@ msgstr ""
#~ msgid "PARENRIGHT"
#~ msgstr ")"
-#~ msgid "ASTERISK"
-#~ msgstr "*"
-
#~ msgid "PLUS"
#~ msgstr "+"
diff --git a/locale/eo.po b/locale/eo.po
index 2ea20535568..b4149bb4289 100644
--- a/locale/eo.po
+++ b/locale/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-10 07:23-0400\n"
+"POT-Creation-Date: 2021-09-17 17:10+0300\n"
"PO-Revision-Date: 2021-04-02 10:19+0000\n"
"Last-Translator: Fredy Ivan Sucari Callohuanca \n"
"Language-Team: Esperanto \n"
"Language-Team: Spanish \n"
"Language-Team: Spanish (Argentina) \n"
"Language-Team: Estonian \n"
@@ -1328,61 +1328,61 @@ msgstr "Taidetta, jonka tekijä on {0}"
msgid "CLOSE"
msgstr "Sulje"
-#: ../src/general/MainMenu.cs:359
+#: ../src/general/MainMenu.cs:394
msgid "OK"
msgstr "OK"
-#: ../src/general/MainMenu.cs:360
+#: ../src/general/MainMenu.cs:395
msgid "Cancel"
msgstr "Peruuta"
-#: ../src/general/MainMenu.tscn:146
+#: ../src/general/MainMenu.tscn:149
msgid "NEW_GAME"
msgstr "Uusi Peli"
-#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72
+#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72
msgid "LOAD_GAME"
msgstr "Lataa Peli"
-#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94
+#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94
msgid "OPTIONS"
msgstr "Asetukset"
-#: ../src/general/MainMenu.tscn:181
+#: ../src/general/MainMenu.tscn:184
msgid "TOOLS"
msgstr "Työkalut"
-#: ../src/general/MainMenu.tscn:192
+#: ../src/general/MainMenu.tscn:195
msgid "VIEW_SOURCE_CODE"
msgstr "Katsele lähdekoodia"
-#: ../src/general/MainMenu.tscn:204
+#: ../src/general/MainMenu.tscn:207
msgid "EXTRAS"
msgstr "Ekstrat"
-#: ../src/general/MainMenu.tscn:216
+#: ../src/general/MainMenu.tscn:218
msgid "CREDITS"
msgstr "Tekijät"
-#: ../src/general/MainMenu.tscn:227
+#: ../src/general/MainMenu.tscn:229
msgid "QUIT"
msgstr "Lopeta"
-#: ../src/general/MainMenu.tscn:249
+#: ../src/general/MainMenu.tscn:251
msgid "MICROBE_FREEBUILD_EDITOR"
msgstr "Mikrobien vapaa rakentelu"
-#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173
-#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108
-#: ../src/saving/SaveManagerGUI.tscn:120
+#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345
+#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134
+#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120
msgid "BACK"
msgstr "Takaisin"
-#: ../src/general/MainMenu.tscn:349
+#: ../src/general/MainMenu.tscn:382
msgid "GLES2_MODE_WARNING"
msgstr "GLES2-moodi Varoitus"
-#: ../src/general/MainMenu.tscn:362
+#: ../src/general/MainMenu.tscn:395
msgid "GLES2_MODE_WARNING_TEXT"
msgstr ""
@@ -1727,6 +1727,140 @@ msgstr ""
msgid "PERCENTAGE_VALUE"
msgstr "{0}%"
+#: ../src/gui_common/CreditsScroll.cs:228
+msgid "LEAD_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:234
+msgid "LEAD_PROGRAMMER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:235
+msgid "LEAD_PROGRAMMERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:240
+msgid "LEAD_THEORIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:241
+msgid "LEAD_THEORISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:246
+msgid "LEAD_ARTIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:247
+msgid "LEAD_ARTISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:252
+msgid "SOUND_TEAM_LEAD"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:253
+msgid "SOUND_TEAM_LEADS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:258
+msgid "LEAD_OUTREACH_PERSON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:259
+msgid "LEAD_OUTREACH_PEOPLE"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:264
+msgid "LEAD_GAME_DESIGNER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:265
+msgid "LEAD_GAME_DESIGNERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:270
+msgid "LEAD_TESTER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:271
+msgid "LEAD_TESTERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:276
+msgid "LEAD_PROJECT_MANAGER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:277
+msgid "LEAD_PROJECT_MANAGERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:284
+msgid "CURRENT_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:300
+msgid "PAST_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:316
+msgid "OUTSIDE_CONTRIBUTORS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:319
+msgid "YOU_CAN_MAKE_PULL_REQUEST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:334
+msgid "PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:338
+msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:341
+msgid "VIP_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:342
+msgid "DEV_BUILD_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:344
+msgid "SUPPORTER_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:354
+#, fuzzy
+msgid "DONATIONS"
+msgstr "Asetukset"
+
+#: ../src/gui_common/CreditsScroll.cs:377
+#, fuzzy
+msgid "TRANSLATORS"
+msgstr "Auta pelin kääntämisessä"
+
+#: ../src/gui_common/CreditsScroll.cs:391
+msgid "USED_LIBRARIES_LICENSES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:485
+msgid "THANKS_FOR_PLAYING"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:45
+msgid "BY_REVOLUTIONARY_GAMES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:52
+msgid "DEVELOPMENT_SUPPORTED_BY"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:60
+msgid "DEVELOPERS"
+msgstr ""
+
#: ../src/gui_common/QuickLoadHandler.tscn:18
msgid "SAVE_HAS_DIFFERENT_VERSION"
msgstr "Tallennus on pelin eri versiosta"
diff --git a/locale/fr.po b/locale/fr.po
index b0129cbf0c8..bcf5fe9ac30 100644
--- a/locale/fr.po
+++ b/locale/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-10 07:23-0400\n"
+"POT-Creation-Date: 2021-09-17 17:10+0300\n"
"PO-Revision-Date: 2021-09-06 00:51+0000\n"
"Last-Translator: Felecarp \n"
"Language-Team: French \n"
"Language-Team: Hebrew 10 && "
-"n % 10 == 0) ? 2 : 3));\n"
+"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 "
+"&& n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 4.7.2\n"
"Generated-By: Babel 2.8.0\n"
@@ -1354,61 +1354,61 @@ msgstr "ציור מאת {0}"
msgid "CLOSE"
msgstr "סגור"
-#: ../src/general/MainMenu.cs:359
+#: ../src/general/MainMenu.cs:394
msgid "OK"
msgstr "בסדר"
-#: ../src/general/MainMenu.cs:360
+#: ../src/general/MainMenu.cs:395
msgid "Cancel"
msgstr "ביטול"
-#: ../src/general/MainMenu.tscn:146
+#: ../src/general/MainMenu.tscn:149
msgid "NEW_GAME"
msgstr "משחק חדש"
-#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72
+#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72
msgid "LOAD_GAME"
msgstr "טען שמירה"
-#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94
+#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94
msgid "OPTIONS"
msgstr "אפשרויות"
-#: ../src/general/MainMenu.tscn:181
+#: ../src/general/MainMenu.tscn:184
msgid "TOOLS"
msgstr "כלים"
-#: ../src/general/MainMenu.tscn:192
+#: ../src/general/MainMenu.tscn:195
msgid "VIEW_SOURCE_CODE"
msgstr "צפה בקוד מקור"
-#: ../src/general/MainMenu.tscn:204
+#: ../src/general/MainMenu.tscn:207
msgid "EXTRAS"
msgstr "תוספות"
-#: ../src/general/MainMenu.tscn:216
+#: ../src/general/MainMenu.tscn:218
msgid "CREDITS"
msgstr "קרדיט"
-#: ../src/general/MainMenu.tscn:227
+#: ../src/general/MainMenu.tscn:229
msgid "QUIT"
msgstr "יציאה"
-#: ../src/general/MainMenu.tscn:249
+#: ../src/general/MainMenu.tscn:251
msgid "MICROBE_FREEBUILD_EDITOR"
msgstr "עורך ארגז חול המיקרובי"
-#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173
-#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108
-#: ../src/saving/SaveManagerGUI.tscn:120
+#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345
+#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134
+#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120
msgid "BACK"
msgstr "חזור"
-#: ../src/general/MainMenu.tscn:349
+#: ../src/general/MainMenu.tscn:382
msgid "GLES2_MODE_WARNING"
msgstr "אזהרת GLES2"
-#: ../src/general/MainMenu.tscn:362
+#: ../src/general/MainMenu.tscn:395
msgid "GLES2_MODE_WARNING_TEXT"
msgstr ""
"אתה מריץ את Thrive על GLES2. אופציה זו עדין לא נבדקה ועלולה לגרום לבעיות. "
@@ -1749,6 +1749,140 @@ msgstr "@"
msgid "PERCENTAGE_VALUE"
msgstr "{0}%"
+#: ../src/gui_common/CreditsScroll.cs:228
+msgid "LEAD_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:234
+msgid "LEAD_PROGRAMMER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:235
+msgid "LEAD_PROGRAMMERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:240
+msgid "LEAD_THEORIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:241
+msgid "LEAD_THEORISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:246
+msgid "LEAD_ARTIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:247
+msgid "LEAD_ARTISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:252
+msgid "SOUND_TEAM_LEAD"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:253
+msgid "SOUND_TEAM_LEADS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:258
+msgid "LEAD_OUTREACH_PERSON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:259
+msgid "LEAD_OUTREACH_PEOPLE"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:264
+msgid "LEAD_GAME_DESIGNER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:265
+msgid "LEAD_GAME_DESIGNERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:270
+msgid "LEAD_TESTER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:271
+msgid "LEAD_TESTERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:276
+msgid "LEAD_PROJECT_MANAGER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:277
+msgid "LEAD_PROJECT_MANAGERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:284
+msgid "CURRENT_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:300
+msgid "PAST_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:316
+msgid "OUTSIDE_CONTRIBUTORS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:319
+msgid "YOU_CAN_MAKE_PULL_REQUEST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:334
+msgid "PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:338
+msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:341
+msgid "VIP_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:342
+msgid "DEV_BUILD_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:344
+msgid "SUPPORTER_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:354
+#, fuzzy
+msgid "DONATIONS"
+msgstr "אפשרויות"
+
+#: ../src/gui_common/CreditsScroll.cs:377
+#, fuzzy
+msgid "TRANSLATORS"
+msgstr "עזור לתרגם את המשחק"
+
+#: ../src/gui_common/CreditsScroll.cs:391
+msgid "USED_LIBRARIES_LICENSES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:485
+msgid "THANKS_FOR_PLAYING"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:45
+msgid "BY_REVOLUTIONARY_GAMES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:52
+msgid "DEVELOPMENT_SUPPORTED_BY"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:60
+msgid "DEVELOPERS"
+msgstr ""
+
#: ../src/gui_common/QuickLoadHandler.tscn:18
msgid "SAVE_HAS_DIFFERENT_VERSION"
msgstr "לשמירה יש גרסה שונה"
diff --git a/locale/id.po b/locale/id.po
index 2be28ad44a1..43b038b19ec 100644
--- a/locale/id.po
+++ b/locale/id.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-10 07:23-0400\n"
+"POT-Creation-Date: 2021-09-17 17:10+0300\n"
"PO-Revision-Date: 2021-09-08 14:51+0000\n"
"Last-Translator: Nozt \n"
"Language-Team: Indonesian \n"
"Language-Team: Italian \n"
"Language-Team: Korean \n"
"Language-Team: Latin \n"
"Language-Team: Latvian \n"
"Language-Team: LANGUAGE \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.1\n"
+"Generated-By: Babel 2.9.0\n"
#: ../simulation_parameters/common/help_texts.json:6
#: ../simulation_parameters/common/help_texts.json:85
@@ -1198,61 +1198,61 @@ msgstr ""
msgid "CLOSE"
msgstr ""
-#: ../src/general/MainMenu.cs:359
+#: ../src/general/MainMenu.cs:394
msgid "OK"
msgstr ""
-#: ../src/general/MainMenu.cs:360
+#: ../src/general/MainMenu.cs:395
msgid "Cancel"
msgstr ""
-#: ../src/general/MainMenu.tscn:146
+#: ../src/general/MainMenu.tscn:149
msgid "NEW_GAME"
msgstr ""
-#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72
+#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72
msgid "LOAD_GAME"
msgstr ""
-#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94
+#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94
msgid "OPTIONS"
msgstr ""
-#: ../src/general/MainMenu.tscn:181
+#: ../src/general/MainMenu.tscn:184
msgid "TOOLS"
msgstr ""
-#: ../src/general/MainMenu.tscn:192
+#: ../src/general/MainMenu.tscn:195
msgid "VIEW_SOURCE_CODE"
msgstr ""
-#: ../src/general/MainMenu.tscn:204
+#: ../src/general/MainMenu.tscn:207
msgid "EXTRAS"
msgstr ""
-#: ../src/general/MainMenu.tscn:216
+#: ../src/general/MainMenu.tscn:218
msgid "CREDITS"
msgstr ""
-#: ../src/general/MainMenu.tscn:227
+#: ../src/general/MainMenu.tscn:229
msgid "QUIT"
msgstr ""
-#: ../src/general/MainMenu.tscn:249
+#: ../src/general/MainMenu.tscn:251
msgid "MICROBE_FREEBUILD_EDITOR"
msgstr ""
-#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173
-#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108
-#: ../src/saving/SaveManagerGUI.tscn:120
+#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345
+#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134
+#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120
msgid "BACK"
msgstr ""
-#: ../src/general/MainMenu.tscn:349
+#: ../src/general/MainMenu.tscn:382
msgid "GLES2_MODE_WARNING"
msgstr ""
-#: ../src/general/MainMenu.tscn:362
+#: ../src/general/MainMenu.tscn:395
msgid "GLES2_MODE_WARNING_TEXT"
msgstr ""
@@ -1586,6 +1586,138 @@ msgstr ""
msgid "PERCENTAGE_VALUE"
msgstr ""
+#: ../src/gui_common/CreditsScroll.cs:228
+msgid "LEAD_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:234
+msgid "LEAD_PROGRAMMER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:235
+msgid "LEAD_PROGRAMMERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:240
+msgid "LEAD_THEORIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:241
+msgid "LEAD_THEORISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:246
+msgid "LEAD_ARTIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:247
+msgid "LEAD_ARTISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:252
+msgid "SOUND_TEAM_LEAD"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:253
+msgid "SOUND_TEAM_LEADS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:258
+msgid "LEAD_OUTREACH_PERSON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:259
+msgid "LEAD_OUTREACH_PEOPLE"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:264
+msgid "LEAD_GAME_DESIGNER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:265
+msgid "LEAD_GAME_DESIGNERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:270
+msgid "LEAD_TESTER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:271
+msgid "LEAD_TESTERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:276
+msgid "LEAD_PROJECT_MANAGER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:277
+msgid "LEAD_PROJECT_MANAGERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:284
+msgid "CURRENT_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:300
+msgid "PAST_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:316
+msgid "OUTSIDE_CONTRIBUTORS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:319
+msgid "YOU_CAN_MAKE_PULL_REQUEST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:334
+msgid "PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:338
+msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:341
+msgid "VIP_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:342
+msgid "DEV_BUILD_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:344
+msgid "SUPPORTER_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:354
+msgid "DONATIONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:377
+msgid "TRANSLATORS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:391
+msgid "USED_LIBRARIES_LICENSES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:485
+msgid "THANKS_FOR_PLAYING"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:45
+msgid "BY_REVOLUTIONARY_GAMES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:52
+msgid "DEVELOPMENT_SUPPORTED_BY"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:60
+msgid "DEVELOPERS"
+msgstr ""
+
#: ../src/gui_common/QuickLoadHandler.tscn:18
msgid "SAVE_HAS_DIFFERENT_VERSION"
msgstr ""
diff --git a/locale/nl.po b/locale/nl.po
index de1078e693b..e7c794ff78b 100644
--- a/locale/nl.po
+++ b/locale/nl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-10 07:23-0400\n"
+"POT-Creation-Date: 2021-09-17 17:10+0300\n"
"PO-Revision-Date: 2021-09-08 14:51+0000\n"
"Last-Translator: Joah van der Maaden \n"
"Language-Team: Dutch \n"
"Language-Team: Dutch (Belgium) \n"
"Language-Team: Polish \n"
@@ -1367,61 +1367,61 @@ msgstr "Arte por {0}"
msgid "CLOSE"
msgstr "Fechar"
-#: ../src/general/MainMenu.cs:359
+#: ../src/general/MainMenu.cs:394
msgid "OK"
msgstr "OK"
-#: ../src/general/MainMenu.cs:360
+#: ../src/general/MainMenu.cs:395
msgid "Cancel"
msgstr "Cancelar"
-#: ../src/general/MainMenu.tscn:146
+#: ../src/general/MainMenu.tscn:149
msgid "NEW_GAME"
msgstr "Novo Jogo"
-#: ../src/general/MainMenu.tscn:159 ../src/general/PauseMenu.tscn:72
+#: ../src/general/MainMenu.tscn:162 ../src/general/PauseMenu.tscn:72
msgid "LOAD_GAME"
msgstr "Carregar Jogo"
-#: ../src/general/MainMenu.tscn:170 ../src/general/PauseMenu.tscn:94
+#: ../src/general/MainMenu.tscn:173 ../src/general/PauseMenu.tscn:94
msgid "OPTIONS"
msgstr "Opções"
-#: ../src/general/MainMenu.tscn:181
+#: ../src/general/MainMenu.tscn:184
msgid "TOOLS"
msgstr "Ferramentas"
-#: ../src/general/MainMenu.tscn:192
+#: ../src/general/MainMenu.tscn:195
msgid "VIEW_SOURCE_CODE"
msgstr "Ver código fonte"
-#: ../src/general/MainMenu.tscn:204
+#: ../src/general/MainMenu.tscn:207
msgid "EXTRAS"
msgstr "Extras"
-#: ../src/general/MainMenu.tscn:216
+#: ../src/general/MainMenu.tscn:218
msgid "CREDITS"
msgstr "Créditos"
-#: ../src/general/MainMenu.tscn:227
+#: ../src/general/MainMenu.tscn:229
msgid "QUIT"
msgstr "Sair"
-#: ../src/general/MainMenu.tscn:249
+#: ../src/general/MainMenu.tscn:251
msgid "MICROBE_FREEBUILD_EDITOR"
msgstr "Editor de Micróbio Livre"
-#: ../src/general/MainMenu.tscn:309 ../src/general/OptionsMenu.tscn:1173
-#: ../src/general/PauseMenu.tscn:134 ../src/saving/NewSaveMenu.tscn:108
-#: ../src/saving/SaveManagerGUI.tscn:120
+#: ../src/general/MainMenu.tscn:311 ../src/general/MainMenu.tscn:345
+#: ../src/general/OptionsMenu.tscn:1173 ../src/general/PauseMenu.tscn:134
+#: ../src/saving/NewSaveMenu.tscn:108 ../src/saving/SaveManagerGUI.tscn:120
msgid "BACK"
msgstr "Voltar"
-#: ../src/general/MainMenu.tscn:349
+#: ../src/general/MainMenu.tscn:382
msgid "GLES2_MODE_WARNING"
msgstr "Aviso do Modo GLES2"
-#: ../src/general/MainMenu.tscn:362
+#: ../src/general/MainMenu.tscn:395
msgid "GLES2_MODE_WARNING_TEXT"
msgstr ""
"Você está usando Thrive usando GLES2, que não é testado e pode causar "
@@ -1767,6 +1767,140 @@ msgstr "@"
msgid "PERCENTAGE_VALUE"
msgstr "{0}%"
+#: ../src/gui_common/CreditsScroll.cs:228
+msgid "LEAD_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:234
+msgid "LEAD_PROGRAMMER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:235
+msgid "LEAD_PROGRAMMERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:240
+msgid "LEAD_THEORIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:241
+msgid "LEAD_THEORISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:246
+msgid "LEAD_ARTIST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:247
+msgid "LEAD_ARTISTS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:252
+msgid "SOUND_TEAM_LEAD"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:253
+msgid "SOUND_TEAM_LEADS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:258
+msgid "LEAD_OUTREACH_PERSON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:259
+msgid "LEAD_OUTREACH_PEOPLE"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:264
+msgid "LEAD_GAME_DESIGNER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:265
+msgid "LEAD_GAME_DESIGNERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:270
+msgid "LEAD_TESTER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:271
+msgid "LEAD_TESTERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:276
+msgid "LEAD_PROJECT_MANAGER"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:277
+msgid "LEAD_PROJECT_MANAGERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:284
+msgid "CURRENT_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:300
+msgid "PAST_DEVELOPERS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:316
+msgid "OUTSIDE_CONTRIBUTORS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:319
+msgid "YOU_CAN_MAKE_PULL_REQUEST"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:334
+msgid "PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:338
+msgid "YOU_CAN_SUPPORT_THRIVE_ON_PATREON"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:341
+msgid "VIP_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:342
+msgid "DEV_BUILD_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:344
+msgid "SUPPORTER_PATRONS"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:354
+#, fuzzy
+msgid "DONATIONS"
+msgstr "Opções"
+
+#: ../src/gui_common/CreditsScroll.cs:377
+#, fuzzy
+msgid "TRANSLATORS"
+msgstr "Ajude a traduzir o jogo"
+
+#: ../src/gui_common/CreditsScroll.cs:391
+msgid "USED_LIBRARIES_LICENSES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.cs:485
+msgid "THANKS_FOR_PLAYING"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:45
+msgid "BY_REVOLUTIONARY_GAMES"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:52
+msgid "DEVELOPMENT_SUPPORTED_BY"
+msgstr ""
+
+#: ../src/gui_common/CreditsScroll.tscn:60
+msgid "DEVELOPERS"
+msgstr ""
+
#: ../src/gui_common/QuickLoadHandler.tscn:18
msgid "SAVE_HAS_DIFFERENT_VERSION"
msgstr "O arquivo salvo não corresponde à versão atual do jogo"
diff --git a/locale/pt_PT.po b/locale/pt_PT.po
index 97c895877ff..311d53adcbb 100644
--- a/locale/pt_PT.po
+++ b/locale/pt_PT.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2021-09-10 07:23-0400\n"
+"POT-Creation-Date: 2021-09-17 17:10+0300\n"
"PO-Revision-Date: 2021-08-29 18:21+0000\n"
"Last-Translator: Jorge Maldonado Ventura \n"
"Language-Team: Portuguese (Portugal) \n"
"Language-Team: Russian \n"
"Language-Team: Sinhala \n"
"Language-Team: Serbian (cyrillic) \n"
"Language-Team: Serbian (latin) \n"
"Language-Team: Swedish \n"
"Language-Team: Thai \n"
"Language-Team: Turkish \n"
"Language-Team: Chinese (Simplified) \n"
"Language-Team: Chinese (Traditional) FILE_AGE_THRESHOLD
+ puts 'The download file is too old. Please get a newer version'
+ else
+ return
+ end
+ end
+
+ puts "A required file for credits generation is missing: #{path}, please download from:"
+ puts download_url
+ puts extra if extra
+ exit 2
+end
+
+def fetch_wiki_developers
+ page = Nokogiri::HTML(URI.parse(DEVELOPERS_PAGE).open)
+ content = page.at_css('#bodyContent')
+
+ in_section = :none
+ team = :none
+
+ groups = {}
+
+ content.css('.mw-parser-output > *').each do |node|
+ if node.name == 'h2'
+ case node.content
+ when 'Current Team'
+ in_section = :current
+ when 'Past Developers'
+ in_section = :past
+ when 'Outside Contributors'
+ in_section = :outside
+ end
+
+ team = :none
+ next
+ end
+
+ if node.name == 'h3'
+ team = node.content
+ next
+ end
+
+ next unless node.name == 'ul' && team != :none && in_section != :none
+
+ groups[in_section] = {} unless groups[in_section]
+
+ list = []
+
+ node.css('li').each do |child|
+ lead = child.inner_html.include?('')
+
+ list.append({ person: child.content.strip, lead: lead })
+ end
+
+ groups[in_section][team] = list
+ end
+
+ groups
+end
+
+def fetch_wiki_donations
+ page = Nokogiri::HTML(URI.parse(DONATIONS_PAGE).open)
+ content = page.at_css('#bodyContent')
+
+ in_donators = false
+
+ year = nil
+ month = nil
+
+ donations = {}
+
+ content.css('.mw-parser-output > *').each do |node|
+ if node.name == 'h2'
+ in_donators = node.content == 'Donators'
+ next
+ end
+
+ next unless in_donators
+
+ if node.name == 'h3'
+ year = Integer(node.content)
+ month = nil
+ next
+ end
+
+ if node.name == 'h4'
+ month = node.content
+ next
+ end
+
+ next unless node.name == 'ul' && !year.nil? && !month.nil?
+
+ donations[year] = {} unless donations[year]
+
+ list = []
+
+ node.css('li').each do |child|
+ list.append(child.content.strip)
+ end
+
+ donations[year][month] = list
+ end
+
+ donations
+end
+
+# Removes the old donations that shouldn't be listed in the credits anymore
+def prune_old_donations(donations)
+ now = Time.now.utc
+
+ donations.select! do |year|
+ donations[year].select! do |month|
+ time = Time.utc(year, Date::MONTHNAMES.index(month))
+
+ (now - time).to_i < DONATION_DISPLAY_CUTOFF
+ end
+
+ donations[year].size.positive?
+ end
+end
+
+def process_translators(translators)
+ # For now all languages are rolled into one as many people have just fixed a basic thing in
+ # a translation without being able to properly participate in it
+ people = {}
+
+ translators.each do |item|
+ item.each do |_language, data|
+ data.each do |user|
+ name = user[1]
+
+ # Skip deleted users in weblate
+ next if user[0] == 'noreply+90@weblate.org' || name == 'Deleted User'
+
+ # Ignore weblate admin account to make this a bit nicer
+ next if name == 'Weblate Admin'
+
+ # Might actually be translations, but anyway this is some activity metric
+ words = user[2]
+
+ people[name] = if !people.include? name
+ words
+ else
+ people[name] + words
+ end
+ end
+ end
+ end
+
+ # But we sort the translators based on the total words / translations they have done
+ people.sort_by { |_k, v| v }.reverse.map { |i| i[0] }
+end
+
+def run
+ base_path = detect_thrive_folder
+
+ patrons_file = "#{base_path}#{PATRONS_FILE}"
+ check_file patrons_file, PATRONS_DOWNLOAD
+ patrons = JSON.parse(File.read(patrons_file))
+
+ translators_file = "#{base_path}#{TRANSLATORS_FILE}"
+ check_file translators_file, TRANSLATORS_DOWNLOAD, TRANSLATORS_EXTRA_INSTRUCTIONS
+ translators = process_translators(JSON.parse(File.read(translators_file)))
+
+ developers = fetch_wiki_developers
+
+ donations = fetch_wiki_donations
+ prune_old_donations(donations)
+
+ json_file = "#{base_path}simulation_parameters/common/credits.json"
+
+ File.write(
+ json_file, JSON.generate(
+ { comment: 'This file is automatically generated by ' \
+ 'retrieve_credits.rb! Part of the data is fetched from the Thrive ' \
+ 'developer wiki', developers: developers, donations: donations,
+ translators: translators, patrons: patrons }
+ )
+ )
+
+ unless jsonlint_on_file(json_file)
+ puts 'Failed to run jsonlint'
+ exit 2
+ end
+
+ puts "#{json_file} written"
+end
+
+run
diff --git a/scripts/update_translation_progress.rb b/scripts/update_translation_progress.rb
index caff42e973d..2c31ce581c8 100755
--- a/scripts/update_translation_progress.rb
+++ b/scripts/update_translation_progress.rb
@@ -7,8 +7,7 @@
require_relative 'po_helpers'
require_relative 'json_helpers'
-
-TOP_LEVEL_FILE_FOR_FOLDER_DETECT = 'Thrive.sln'
+require_relative 'folder_detector'
def calculate_stats_for(path)
in_header = true
@@ -85,14 +84,7 @@ def calculate_stats_for(path)
end
def run
- base_path = ''
- unless File.exist? TOP_LEVEL_FILE_FOR_FOLDER_DETECT
- base_path = '../'
- unless File.exist? "#{base_path}TOP_LEVEL_FILE_FOR_FOLDER_DETECT"
- puts 'Failed to find the top level Thrive folder'
- exit 2
- end
- end
+ base_path = detect_thrive_folder
progress = {}
stats = { TranslationProgress: progress }
diff --git a/simulation_parameters/GameCredits.cs b/simulation_parameters/GameCredits.cs
new file mode 100644
index 00000000000..0eee3d0c4b1
--- /dev/null
+++ b/simulation_parameters/GameCredits.cs
@@ -0,0 +1,107 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+
+public class GameCredits : IRegistryType
+{
+ public GameDevelopers Developers { get; set; }
+
+ ///
+ /// These are the donations from the wiki. The structure is "year<month, list of donations>"
+ ///
+ public Dictionary>> Donations { get; set; }
+
+ public List Translators { get; set; }
+
+ public PatronsList Patrons { get; set; }
+
+ ///
+ /// Unused
+ ///
+ public string InternalName { get; set; }
+
+ public void Check(string name)
+ {
+ if (Developers == null)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Developers is missing");
+ }
+
+ if (Developers.Current == null)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Current Developers are missing");
+ }
+
+ if (Developers.Past == null)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Past Developers are missing");
+ }
+
+ if (Developers.Outside == null)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Outside contributors are missing");
+ }
+
+ if (Donations == null)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Donations are missing");
+ }
+
+ if (Translators == null || Translators.Count < 1)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Translators are missing");
+ }
+
+ if (Patrons == null)
+ {
+ throw new InvalidRegistryDataException(nameof(GameCredits), GetType().Name,
+ "Patrons are missing");
+ }
+ }
+
+ public void ApplyTranslations()
+ {
+ }
+
+ public class GameDevelopers
+ {
+ // These are maps of the team and list of their members
+ public Dictionary> Current { get; set; }
+ public Dictionary> Past { get; set; }
+
+ ///
+ /// These are outside contributors (non-team members)
+ ///
+ public Dictionary> Outside { get; set; }
+ }
+
+ public class DeveloperPerson
+ {
+ [JsonProperty(PropertyName = "person")]
+ public string Name { get; set; }
+
+ public bool Lead { get; set; }
+
+ public override string ToString()
+ {
+ return Name;
+ }
+ }
+
+ public class PatronsList
+ {
+ [JsonProperty]
+ public List VIPPatrons { get; set; }
+
+ [JsonProperty]
+ public List DevBuildPatrons { get; set; }
+
+ [JsonProperty]
+ public List SupporterPatrons { get; set; }
+ }
+}
diff --git a/simulation_parameters/SimulationParameters.cs b/simulation_parameters/SimulationParameters.cs
index db981960ee7..716d58d622f 100644
--- a/simulation_parameters/SimulationParameters.cs
+++ b/simulation_parameters/SimulationParameters.cs
@@ -24,6 +24,7 @@ public class SimulationParameters : Node
private readonly List inputGroups;
private readonly Dictionary gallery;
private readonly TranslationsInfo translationsInfo;
+ private readonly GameCredits gameCredits;
// These are for mutations to be able to randomly pick items in a weighted manner
private List prokaryoticOrganelles;
@@ -76,6 +77,9 @@ private SimulationParameters()
translationsInfo =
LoadDirectObject("res://simulation_parameters/common/translations_info.json");
+ gameCredits =
+ LoadDirectObject("res://simulation_parameters/common/credits.json");
+
GD.Print("SimulationParameters loading ended");
CheckForInvalidValues();
@@ -200,6 +204,11 @@ public TranslationsInfo GetTranslationsInfo()
return translationsInfo;
}
+ public GameCredits GetCredits()
+ {
+ return gameCredits;
+ }
+
public OrganelleDefinition GetRandomProkaryoticOrganelle(Random random)
{
float valueLeft = random.Next(0.0f, prokaryoticOrganellesTotalChance);
@@ -354,6 +363,7 @@ private void CheckForInvalidValues()
NameGenerator.Check(string.Empty);
autoEvoConfiguration.Check(string.Empty);
translationsInfo.Check(string.Empty);
+ gameCredits.Check(string.Empty);
}
private void ResolveValueRelationships()
diff --git a/simulation_parameters/common/credits.json b/simulation_parameters/common/credits.json
new file mode 100644
index 00000000000..9ef74a91131
--- /dev/null
+++ b/simulation_parameters/common/credits.json
@@ -0,0 +1,921 @@
+{
+ "comment": "This file is automatically generated by retrieve_credits.rb! Part of the data is fetched from the Thrive developer wiki",
+ "developers": {
+ "current": {
+ "Programming Team": [
+ {
+ "person": "FuJa0815",
+ "lead": false
+ },
+ {
+ "person": "hhyyrylainen (Henri Hyyryläinen)",
+ "lead": true
+ },
+ {
+ "person": "Kasterisk",
+ "lead": false
+ },
+ {
+ "person": "Kemikal",
+ "lead": false
+ },
+ {
+ "person": "Maxonovien",
+ "lead": false
+ },
+ {
+ "person": "Nunz",
+ "lead": false
+ },
+ {
+ "person": "Thim",
+ "lead": false
+ }
+ ],
+ "Theory Team": [
+ {
+ "person": "Bird",
+ "lead": false
+ },
+ {
+ "person": "Zarki",
+ "lead": false
+ }
+ ],
+ "Graphics Team": [
+ {
+ "person": "DonGororo",
+ "lead": false
+ },
+ {
+ "person": "Narotiza",
+ "lead": true
+ },
+ {
+ "person": "Nunz",
+ "lead": false
+ }
+ ],
+ "Sound Team": [
+ {
+ "person": "IRUI",
+ "lead": false
+ },
+ {
+ "person": "MirrorMonkey2",
+ "lead": false
+ },
+ {
+ "person": "Oliveriver",
+ "lead": true
+ },
+ {
+ "person": "Twiggs",
+ "lead": false
+ },
+ {
+ "person": "TwitchyWhalez",
+ "lead": false
+ }
+ ],
+ "Outreach Team": [
+ {
+ "person": "Oliveriver",
+ "lead": false
+ },
+ {
+ "person": "DonGororo",
+ "lead": true
+ },
+ {
+ "person": "Naggorath",
+ "lead": false
+ }
+ ],
+ "Game Design Team": [
+ {
+ "person": "Buckly",
+ "lead": true
+ }
+ ],
+ "Testing Team": [
+ {
+ "person": "Sir Danforth",
+ "lead": false
+ }
+ ],
+ "Project Management Team": [
+ {
+ "person": "hhyyrylainen (Henri Hyyryläinen)",
+ "lead": true
+ }
+ ]
+ },
+ "past": {
+ "Programming Team": [
+ {
+ "person": "1n48yg",
+ "lead": false
+ },
+ {
+ "person": "Anth0rx",
+ "lead": false
+ },
+ {
+ "person": "Bashinerox",
+ "lead": true
+ },
+ {
+ "person": "billythakidd04",
+ "lead": false
+ },
+ {
+ "person": "Commander Keen",
+ "lead": false
+ },
+ {
+ "person": "crodnu",
+ "lead": false
+ },
+ {
+ "person": "Dak28",
+ "lead": false
+ },
+ {
+ "person": "Daniferrito",
+ "lead": true
+ },
+ {
+ "person": "femiaf13",
+ "lead": false
+ },
+ {
+ "person": "FunnyGames",
+ "lead": false
+ },
+ {
+ "person": "GatoCreador887",
+ "lead": false
+ },
+ {
+ "person": "hessnake",
+ "lead": false
+ },
+ {
+ "person": "Higami",
+ "lead": false
+ },
+ {
+ "person": "IceDjuro",
+ "lead": false
+ },
+ {
+ "person": "IncaUK",
+ "lead": false
+ },
+ {
+ "person": "jaws2blood",
+ "lead": false
+ },
+ {
+ "person": "jjonj",
+ "lead": true
+ },
+ {
+ "person": "klay2000",
+ "lead": false
+ },
+ {
+ "person": "Knightos",
+ "lead": false
+ },
+ {
+ "person": "lavathor",
+ "lead": false
+ },
+ {
+ "person": "lukaandjelkovic",
+ "lead": false
+ },
+ {
+ "person": "montyspud",
+ "lead": false
+ },
+ {
+ "person": "moopli",
+ "lead": true
+ },
+ {
+ "person": "Nimbal",
+ "lead": true
+ },
+ {
+ "person": "Nokk",
+ "lead": false
+ },
+ {
+ "person": "ParadoxJuice",
+ "lead": true
+ },
+ {
+ "person": "OBPSG",
+ "lead": false
+ },
+ {
+ "person": "patowen",
+ "lead": false
+ },
+ {
+ "person": "PGelinas",
+ "lead": false
+ },
+ {
+ "person": "roadkillguy",
+ "lead": true
+ },
+ {
+ "person": "RodGame",
+ "lead": false
+ },
+ {
+ "person": "Satharis",
+ "lead": false
+ },
+ {
+ "person": "Savalige",
+ "lead": false
+ },
+ {
+ "person": "Straywind",
+ "lead": false
+ },
+ {
+ "person": "T0N12",
+ "lead": false
+ },
+ {
+ "person": "TheCreator",
+ "lead": false
+ },
+ {
+ "person": "Treviisolion",
+ "lead": false
+ },
+ {
+ "person": "turoni",
+ "lead": false
+ },
+ {
+ "person": "tVoss",
+ "lead": false
+ },
+ {
+ "person": "untrustedlife",
+ "lead": false
+ },
+ {
+ "person": "westtunger",
+ "lead": false
+ },
+ {
+ "person": "Zuris",
+ "lead": false
+ },
+ {
+ "person": "zyad137",
+ "lead": false
+ }
+ ],
+ "Theory Team": [
+ {
+ "person": "Rastro",
+ "lead": false
+ },
+ {
+ "person": "Andross",
+ "lead": false
+ },
+ {
+ "person": "Seregon",
+ "lead": true
+ },
+ {
+ "person": "Commander Keen",
+ "lead": false
+ },
+ {
+ "person": "Darkov",
+ "lead": false
+ },
+ {
+ "person": "GamerXA",
+ "lead": false
+ },
+ {
+ "person": "GlassDev",
+ "lead": false
+ },
+ {
+ "person": "Hirnsausen",
+ "lead": true
+ },
+ {
+ "person": "IncaUK",
+ "lead": false
+ },
+ {
+ "person": "moopli",
+ "lead": false
+ },
+ {
+ "person": "Mysterious_Calligrapher",
+ "lead": false
+ },
+ {
+ "person": "Nimbal",
+ "lead": false
+ },
+ {
+ "person": "Noitulove",
+ "lead": false
+ },
+ {
+ "person": "Phrenotopian",
+ "lead": false
+ },
+ {
+ "person": "Poisson",
+ "lead": false
+ },
+ {
+ "person": "~sciocont",
+ "lead": true
+ },
+ {
+ "person": "Tarpy",
+ "lead": false
+ },
+ {
+ "person": "Tenebrarum",
+ "lead": false
+ },
+ {
+ "person": "tjwhale",
+ "lead": true
+ },
+ {
+ "person": "The Uteen",
+ "lead": false
+ },
+ {
+ "person": "TheCreator",
+ "lead": false
+ },
+ {
+ "person": "Tritium",
+ "lead": false
+ },
+ {
+ "person": "US_of_Alaska",
+ "lead": false
+ },
+ {
+ "person": "whodatxliv",
+ "lead": false
+ },
+ {
+ "person": "YourBreakfast",
+ "lead": false
+ }
+ ],
+ "Graphics Team": [
+ {
+ "person": "Atrox",
+ "lead": false
+ },
+ {
+ "person": "braguy.j",
+ "lead": false
+ },
+ {
+ "person": "Chizu Nordenstam",
+ "lead": true
+ },
+ {
+ "person": "Doc_Xenox",
+ "lead": false
+ },
+ {
+ "person": "Gotrol",
+ "lead": true
+ },
+ {
+ "person": "HardcoreSpaceTaco",
+ "lead": false
+ },
+ {
+ "person": "Minegamer",
+ "lead": false
+ },
+ {
+ "person": "meandmy10",
+ "lead": false
+ },
+ {
+ "person": "Nanu",
+ "lead": false
+ },
+ {
+ "person": "NathanB",
+ "lead": false
+ },
+ {
+ "person": "Oliveriver",
+ "lead": false
+ },
+ {
+ "person": "Pezzalis",
+ "lead": false
+ },
+ {
+ "person": "Poisonchocolate",
+ "lead": false
+ },
+ {
+ "person": "~sciocont",
+ "lead": false
+ },
+ {
+ "person": "Sporefox",
+ "lead": false
+ },
+ {
+ "person": "TheCreator",
+ "lead": true
+ },
+ {
+ "person": "TheRabiesGuineaPig",
+ "lead": false
+ },
+ {
+ "person": "Theusfilipe",
+ "lead": false
+ },
+ {
+ "person": "TheCloudian",
+ "lead": false
+ },
+ {
+ "person": "ThreeCubed",
+ "lead": false
+ },
+ {
+ "person": "tjblazer85",
+ "lead": false
+ },
+ {
+ "person": "Tré Wisemen",
+ "lead": false
+ },
+ {
+ "person": "Tritium",
+ "lead": false
+ },
+ {
+ "person": "Uniow",
+ "lead": true
+ },
+ {
+ "person": "Xazo-Tak",
+ "lead": false
+ }
+ ],
+ "Sound Team": [
+ {
+ "person": "aechtc",
+ "lead": false
+ },
+ {
+ "person": "cphilpot153",
+ "lead": false
+ },
+ {
+ "person": "Doggit",
+ "lead": true
+ },
+ {
+ "person": "hongchong7",
+ "lead": true
+ },
+ {
+ "person": "jorchestration",
+ "lead": false
+ },
+ {
+ "person": "LegoHoss",
+ "lead": false
+ },
+ {
+ "person": "LionGraphiK",
+ "lead": false
+ },
+ {
+ "person": "Madero",
+ "lead": false
+ },
+ {
+ "person": "Poisonchocolate",
+ "lead": false
+ },
+ {
+ "person": "RedStarSound",
+ "lead": false
+ },
+ {
+ "person": "RpTheHotrod",
+ "lead": false
+ },
+ {
+ "person": "Totemaster",
+ "lead": false
+ },
+ {
+ "person": "visiblesoundscape",
+ "lead": false
+ }
+ ],
+ "Outreach Team": [
+ {
+ "person": "Atrox",
+ "lead": false
+ },
+ {
+ "person": "dontpanic",
+ "lead": false
+ },
+ {
+ "person": "lavathor",
+ "lead": false
+ },
+ {
+ "person": "~sciocont",
+ "lead": false
+ },
+ {
+ "person": "StealthStyleL",
+ "lead": true
+ },
+ {
+ "person": "The_Wayward_Admiral",
+ "lead": false
+ },
+ {
+ "person": "WJacobC",
+ "lead": true
+ }
+ ],
+ "Game Design Team": [
+ {
+ "person": "GlassDev",
+ "lead": false
+ }
+ ],
+ "Testing Team": [
+ {
+ "person": "Dragonmemo",
+ "lead": false
+ }
+ ],
+ "Project Management Team": [
+ {
+ "person": "Commander Keen",
+ "lead": false
+ },
+ {
+ "person": "Hirnsausen",
+ "lead": true
+ },
+ {
+ "person": "jjonj",
+ "lead": false
+ },
+ {
+ "person": "moopli",
+ "lead": false
+ },
+ {
+ "person": "NickTheNick",
+ "lead": true
+ },
+ {
+ "person": "Oliveriver",
+ "lead": false
+ },
+ {
+ "person": "ParadoxJuice",
+ "lead": false
+ },
+ {
+ "person": "Poisson",
+ "lead": false
+ },
+ {
+ "person": "~sciocont",
+ "lead": true
+ },
+ {
+ "person": "Seregon",
+ "lead": false
+ },
+ {
+ "person": "tjwhale",
+ "lead": false
+ },
+ {
+ "person": "TheCreator",
+ "lead": false
+ },
+ {
+ "person": "US_of_Alaska",
+ "lead": false
+ },
+ {
+ "person": "WJacobC",
+ "lead": false
+ }
+ ]
+ },
+ "outside": {
+ "Pull Requests / Programming": [
+ {
+ "person": "RacerBG (Georgi Georgiev)",
+ "lead": false
+ },
+ {
+ "person": "skyace65",
+ "lead": false
+ }
+ ]
+ }
+ },
+ "donations": {
+ "2021": {
+ "July": [
+ "Johnny Nuñez"
+ ],
+ "August": [
+ "CourageTheCat",
+ "SchlechterName"
+ ],
+ "September": [
+ "Daniel Liddle",
+ "SirArag",
+ "Nathan Hock",
+ "Sinach",
+ "Nicholas Coomer",
+ "Evolution4Weak",
+ "OoferDoofer"
+ ]
+ }
+ },
+ "translators": [
+ "punctdan",
+ "Georgi Georgiev (Жоро)",
+ "Henri Hyyryläinen",
+ "doomlightning",
+ "icedjuro",
+ "Jan",
+ "Simone Nobili",
+ "fgdfgfthgr-fox",
+ "aleixcoma",
+ "Nozt",
+ "Capivaresco",
+ "Telegina Alexandra",
+ "TomDev03",
+ "Levi Monjeau",
+ "0nmyhead",
+ "LibreHacker",
+ "Maksymilian Adamski",
+ "ShadowMoon",
+ "Rune Vercauteren",
+ "Maximilian",
+ "monkey",
+ "MGS_Oficial",
+ "Pajoš",
+ "S1m0n5-him-self",
+ "Mauboussin Lucas",
+ "Bruno Agostinho",
+ "Jesper Welagen",
+ "Tibor Šťastný",
+ "Jiří NnN",
+ "mrcsilva",
+ "Lorenzo Fagnani",
+ "Joah van der Maaden",
+ "Moriaan Wiegandt",
+ "François Roduit",
+ "Kubagliko_PL",
+ "JG475",
+ "Felecarp",
+ "Federico Pelliccioni",
+ "Nate Magid",
+ "mattealex",
+ "Mikael Martikainen",
+ "Nemilato",
+ "FrisKisDr",
+ "Azuriem",
+ "Jędrzej Kawa",
+ "Span Staans",
+ "Jorge Maldonado Ventura",
+ "Ivan Kurta",
+ "84634E1A607A",
+ "Igmc4",
+ "Davi Augusto Pinto Araújo",
+ "Elrakrez",
+ "Осман Хакимов",
+ "eun4786",
+ "Rizky Pramudya",
+ "Radek",
+ "Aquos Goatington",
+ "Alex Ges",
+ "DarkMasterOne",
+ "Sofia Souza Dias Silva",
+ "tommy koning",
+ "EzraZebra",
+ "Thor Andreas Laan",
+ "Little Tony",
+ "Fredy Ivan Sucari Callohuanca",
+ "Damien",
+ "the80hz",
+ "John",
+ "magicTimon",
+ "Viktor",
+ "Albert Saltarin",
+ "GitHubUser-GER-ENG",
+ "George Dupond",
+ "Peter Kleber",
+ "Generatoror",
+ "George Fel",
+ "1n48yg",
+ "Regi",
+ "angelbisector",
+ "josem019",
+ "",
+ "Tanner Adkins",
+ "JeongJinwoo",
+ "Marco Cirelli",
+ "blackjacksike",
+ "Alex Larbière",
+ "Quincy Holzapfel",
+ "Matteo Pertegato",
+ "Shizome",
+ "Troler",
+ "jonasschmidt95",
+ "Tyra Grümpel",
+ "Juergen Dallmann Junior",
+ "Sergey Sokolov",
+ "Filip Szot",
+ "André Pousette",
+ "Elias Alvar Branting",
+ "VojtaHumpl",
+ "MrTunaPizza",
+ "Mieszko Polak",
+ "Patrick Bolde",
+ "rob-katt",
+ "Ivan",
+ "NiceFlowey",
+ "ender-titan138a53491ef214b90",
+ "tomato747",
+ "Alex Jaramillo",
+ "helabasa",
+ "Maxonovien",
+ "intothi",
+ "Steven Nörenberg",
+ "Martin Matulík",
+ "tabat-dectocoder",
+ "Nunez2196",
+ "Szymon Ignaczak"
+ ],
+ "patrons": {
+ "vipPatrons": [
+ "Aidan Collins",
+ "andrew james morris",
+ "blackjacksike",
+ "Daniel Beauchamp",
+ "Dylan Paxton",
+ "fraang",
+ "Grape",
+ "Gregory Shutt",
+ "GRKTheGreat ",
+ "Jesse Stickling",
+ "Johnny Nunez",
+ "Kevin Bair",
+ "luminousdesigns",
+ "minimumviablegame",
+ "Nick McKay",
+ "Pasi Hyyryläinen",
+ "redjiii07",
+ "Roel Smith",
+ "Samuel Dailey",
+ "Seamus Monteith",
+ "TheAGN",
+ "Timo Kuchheuser"
+ ],
+ "devBuildPatrons": [
+ "7Games",
+ "Aaron Arevalo",
+ "Adam Blaisdell",
+ "AldebaranCrows",
+ "Arrogant Worm",
+ "Atmos Quake",
+ "Axium ",
+ "Beint Bentsen",
+ "Bekay ",
+ "Ben Cundick",
+ "Blisto",
+ "Cameron Schryver",
+ "Charlie",
+ "CyrusPlayz",
+ "Daniel Sanche",
+ "Doomacz",
+ "EagleXD ",
+ "Emil Mannby",
+ "Ethan Schraven",
+ "Gal Mashiach",
+ "Inkplasm",
+ "Jacob Broida",
+ "james ellis",
+ "James R Hill",
+ "John Ivar Flatmo",
+ "Josef Strydom",
+ "Joseph ",
+ "Joshua Walker",
+ "Kaleb Todd",
+ "LeandroLuiz2210",
+ "Lex",
+ "Mac ",
+ "Mac_Mac_Mac",
+ "Mansfield Sharpe",
+ "Marcus Comino",
+ "Martin Hasselø",
+ "Mathijs Van Dijck",
+ "Matthew Johnson",
+ "Mouthwash",
+ "MR Duff",
+ "Nicholas Irish",
+ "No thanks",
+ "pain_in_the_bex",
+ "PlannedExponent",
+ "Poskmyst ?",
+ "redstars",
+ "Riley Ortiz",
+ "Robert Bassett",
+ "Russel J. Robinson",
+ "Seveer ",
+ "Spring Chicken",
+ "thatguyoverthere ",
+ "Timo Grümpel",
+ "Truman Nicholson-DeMott",
+ "Ultrax ",
+ "Vance7 ",
+ "W. Hutton",
+ "Wladimir",
+ "WorldChampion",
+ "Yannik Hesse"
+ ],
+ "supporterPatrons": [
+ "Adrian Dalen",
+ "Aleix ",
+ "Billy Rock Mitchell",
+ "Boldevin",
+ "Branting ",
+ "Caleb Hall Tigh",
+ "Chad Tester",
+ "Dan Cohen",
+ "enchantedpencil",
+ "Friedrich",
+ "GingerNinja",
+ "Guillermo Lozano",
+ "Jérôme Ramel",
+ "Kerman Guy",
+ "Lukas Kubicek .",
+ "Manuel Hubl",
+ "Michael Foley",
+ "Mo Ro",
+ "nathan tucker",
+ "OREO_SHI",
+ "Perasha",
+ "RubenS",
+ "Shiuzan",
+ "Snoogie",
+ "T3chKn1ght",
+ "Talas ",
+ "thephilososhycollective",
+ "TheRoeler",
+ "Theseventh ",
+ "turoni",
+ "Vilytch",
+ "William Cedervall",
+ "Александр Старочкин"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/general/MainMenu.cs b/src/general/MainMenu.cs
index 7c9bc8de789..b827a0a3705 100644
--- a/src/general/MainMenu.cs
+++ b/src/general/MainMenu.cs
@@ -28,6 +28,12 @@ public class MainMenu : NodeWithInput
[Export]
public NodePath FreebuildButtonPath;
+ [Export]
+ public NodePath CreditsContainerPath;
+
+ [Export]
+ public NodePath CreditsScrollPath;
+
[Export]
public NodePath GLES2PopupPath;
@@ -41,6 +47,9 @@ public class MainMenu : NodeWithInput
private AnimationPlayer guiAnimations;
private SaveManagerGUI saves;
+ private Control creditsContainer;
+ private CreditsScroll credits;
+
private Button newGameButton;
private Button freebuildButton;
@@ -134,6 +143,8 @@ private void RunMenuSetup()
thriveLogo = GetNode(ThriveLogoPath);
newGameButton = GetNode