Skip to content

Commit

Permalink
Resolved yairm210#10478 - *internal* tilesets to load are now determi…
Browse files Browse the repository at this point in the history
…ned pre-loading, to minimize concurrent modification exceptions
  • Loading branch information
yairm210 committed Nov 14, 2023
1 parent dfcedb6 commit e8b9864
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
9 changes: 5 additions & 4 deletions core/src/com/unciv/models/tilesets/TileSetCache.kt
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,14 @@ object TileSetCache : HashMap<String, TileSet>() {
clear()

// Load internal TileSets
val internalFiles: Sequence<FileHandle> =
val internalFiles: List<FileHandle> =
if (consoleMode)
FileHandle("jsons/TileSets").list().asSequence()
FileHandle("jsons/TileSets").list().toList()
else
ImageGetter.getAvailableTilesets()
.map { Gdx.files.internal("jsons/TileSets/$it.json") }
.filter { it.exists() }
.toList()

loadConfigFiles(internalFiles, TileSet.DEFAULT)

Expand All @@ -68,7 +69,7 @@ object TileSetCache : HashMap<String, TileSet>() {
val modName = modFolder.name()
if (!modFolder.isDirectory || modName.startsWith('.'))
continue
val modFiles = modFolder.child("jsons/TileSets").list().asSequence()
val modFiles = modFolder.child("jsons/TileSets").list().toList()
loadConfigFiles(modFiles, modName)
}

Expand All @@ -77,7 +78,7 @@ object TileSetCache : HashMap<String, TileSet>() {
assembleTileSetConfigs(hashSetOf()) // no game is loaded, this is just the initial game setup
}

private fun loadConfigFiles(files: Sequence<FileHandle>, configId: String) {
private fun loadConfigFiles(files: List<FileHandle>, configId: String) {
for (configFile in files) {
// jsons/TileSets shouldn't have subfolders, but if a mad modder has one, don't crash (file.readString would throw):
if (configFile.isDirectory) continue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ import com.unciv.logic.trade.TradeType.WarDeclaration
import com.unciv.logic.trade.TradeType.values
import com.unciv.models.ruleset.tile.ResourceSupplyList
import com.unciv.models.translations.tr
import com.unciv.ui.components.widgets.ExpanderTab
import com.unciv.ui.components.extensions.disable
import com.unciv.ui.components.input.onClick
import com.unciv.ui.components.widgets.ExpanderTab
import com.unciv.ui.images.IconTextButton
import com.unciv.ui.images.ImageGetter
import com.unciv.ui.screens.basescreen.BaseScreen
Expand All @@ -45,6 +45,11 @@ class OffersListScroll(

private val expanderTabs = HashMap<TradeType, ExpanderTab>()

init {
fadeScrollBars=false
setScrollbarsVisible(true)
}

/**
* @param offersToDisplay The offers which should be displayed as buttons
* @param otherOffers The list of other side's offers to compare with whether these offers are unique
Expand Down

0 comments on commit e8b9864

Please sign in to comment.