Resolved #2853 - Sped up loading of all saved games

This commit is contained in:
Yair Morgenstern 2020-07-23 14:38:36 +03:00
parent 0f70726c10
commit c50c490a63
2 changed files with 9 additions and 9 deletions

View File

@ -31,10 +31,10 @@ object GameSaver {
return externalFile return externalFile
} }
fun getSaves(multiplayer: Boolean = false): List<String> { fun getSaves(multiplayer: Boolean = false): Sequence<String> {
val localSaves = Gdx.files.local(getSubfolder(multiplayer)).list().map { it.name() } val localSaves = Gdx.files.local(getSubfolder(multiplayer)).list().asSequence().map { it.name() }
if (externalFilesDirForAndroid == "" || !Gdx.files.isExternalStorageAvailable) return localSaves if (externalFilesDirForAndroid == "" || !Gdx.files.isExternalStorageAvailable) return localSaves
return localSaves + Gdx.files.absolute(externalFilesDirForAndroid + "/${getSubfolder(multiplayer)}").list().map { it.name() } return localSaves + Gdx.files.absolute(externalFilesDirForAndroid + "/${getSubfolder(multiplayer)}").list().asSequence().map { it.name() }
} }
fun saveGame(game: GameInfo, GameName: String, multiplayer: Boolean = false) { fun saveGame(game: GameInfo, GameName: String, multiplayer: Boolean = false) {
@ -110,8 +110,8 @@ object GameSaver {
val newAutosaveFilename = saveFilesFolder + File.separator + "Autosave-${gameInfo.currentPlayer}-${gameInfo.turns}" val newAutosaveFilename = saveFilesFolder + File.separator + "Autosave-${gameInfo.currentPlayer}-${gameInfo.turns}"
getSave("Autosave").copyTo(Gdx.files.local(newAutosaveFilename)) getSave("Autosave").copyTo(Gdx.files.local(newAutosaveFilename))
fun getAutosaves(): List<String> { return getSaves().filter { it.startsWith("Autosave") } } fun getAutosaves(): Sequence<String> { return getSaves().filter { it.startsWith("Autosave") } }
while(getAutosaves().size>10){ while(getAutosaves().count()>10){
val saveToDelete = getAutosaves().minBy { getSave(it).lastModified() }!! val saveToDelete = getAutosaves().minBy { getSave(it).lastModified() }!!
deleteSave(saveToDelete) deleteSave(saveToDelete)
} }

View File

@ -68,9 +68,9 @@ class MultiplayerScreen(previousScreen: CameraStageBaseScreen) : PickerScreen()
topTable.add(mainTable).row() topTable.add(mainTable).row()
scrollPane.setScrollingDisabled(false, true) scrollPane.setScrollingDisabled(false, true)
rightSideTable.defaults().uniformX(); rightSideTable.defaults().uniformX()
rightSideTable.defaults().fillX(); rightSideTable.defaults().fillX()
rightSideTable.defaults().pad(10.0f); rightSideTable.defaults().pad(10.0f)
// leftTable Setup // leftTable Setup
reloadGameListUI() reloadGameListUI()
@ -186,7 +186,7 @@ class MultiplayerScreen(previousScreen: CameraStageBaseScreen) : PickerScreen()
fun reloadGameListUI() { fun reloadGameListUI() {
val leftSubTable = Table() val leftSubTable = Table()
val gameSaver = GameSaver val gameSaver = GameSaver
val savedGames: List<String>? val savedGames: Sequence<String>
try { try {
savedGames = gameSaver.getSaves(true) savedGames = gameSaver.getSaves(true)