* Implement custom save locations for Android and Desktop
* Request write permission to save to external storage
* Fix race condition for custom saves/loads caused by autosaves
* Remove unnecessary WRITE_EXTERNAL_STORAGE permission for saving files
* Fix padding for custom save/load location buttons
* Use nullability checks as defined in coding style guide
* Use nullability checks as defined in coding style guide
* Use early return for readability
* Rename save/load completion callbacks for custom locations and implement error handling
* Remove ruleset from GameSetupInfo class
* Remove dependency from Gdx for file IO:
- load Ruleset
- save/init in GameSettings
- get settings in GameSaver
* Remove simulation logging from GameInfo class
* MapGenerator: add switch for RNG seed verbose
* PlayerPickerTable small refactor
* Basic console mode
* Add multithreading to console mode and refactoring.
* Merge branch 'master' into console
* Small refactor
* Bring Incas into the main game
(also changes slinger withdraw ability to inheritable)
* Update Nations.json
* Discord thread is now a timer and gets notified to shut down
Solved truncated Autosaves: Made it singlethreaded within shutdown.
Co-authored-by: Yair Morgenstern <yairm210@hotmail.com>
* For #2200: Avoid MacOS tripping us
* Second hidden test in packImages
* Clearer message for a specific mod error, UI message for savegames missing mods
* Fixed obsolete imports from rejected experiments
* Tiny lint issue
* Irrelevant change to test push after rebase
* Rename "translationsByLanguage" folder
* Minor refactoring
* Generate Nations strings
* Use the nations strings while creating the translation files
* Clean up of Nations files
* Transfer existing translations
* Get rid of the nation's translated name
* Transfer just few nations' translations for languages without Nations_Language.json
* Clean up of not used greetings
* Correct marking of not translated strings
* Callback to exit the game by 'Back' button
* Prompt dialog for the game exit
* Additional strings for translations are generated
* Do not show exit prompt dialog twice
Rulesets are heavy to load so we now have a RulesetCache, which can construct "custom" rulesets with a list of mods!
We now pack mod images on Desktop run, and load the atlases for the loaded mods on load game!
Since loading all the translation files was taking around 2.5 seconds on my phone, and I assume much longer on older phones, we now only load the translations of the currently selected file, and if we need to find the translation percentage of all the files we deal with that separately. Down to around 200-300 ms on my phone =)
Also Translations is no longer part of the Ruleset, instead meing located in UncivGame