Compare commits

...

2 Commits

Author SHA1 Message Date
yairm210
f872150da4 Hide 'hidden in world screen' resources from overview tab as well 2025-02-20 19:31:40 +02:00
yairm210
427abfa530 Hopefully solve ghost 'duplicate resource' bug 2025-02-20 19:17:57 +02:00
2 changed files with 5 additions and 6 deletions

View File

@ -96,9 +96,7 @@ class ResourceSupplyList(
*/
fun removeAll(origin: String): ResourceSupplyList {
// The filter creates a separate list so the iteration does not modify concurrently
filter { it.origin == origin }.forEach {
remove(it)
}
filter { it.origin == origin }.forEach { remove(it) }
return this
}

View File

@ -12,6 +12,7 @@ import com.unciv.logic.trade.TradeOfferType
import com.unciv.models.ruleset.tile.ResourceSupplyList
import com.unciv.models.ruleset.tile.ResourceType
import com.unciv.models.ruleset.tile.TileResource
import com.unciv.models.ruleset.unique.UniqueType
import com.unciv.models.translations.tr
import com.unciv.ui.components.UncivTooltip.Companion.addTooltip
import com.unciv.ui.components.extensions.addSeparator
@ -56,13 +57,13 @@ class ResourcesOverviewTab(
private val resourceDrilldown: ResourceSupplyList = viewingPlayer.detailedCivResources
private val extraDrilldown: ResourceSupplyList = getExtraDrilldown()
private val drilldownSequence = resourceDrilldown.asSequence() + extraDrilldown.asSequence()
private val allResources = ResourceSupplyList().apply { addAll(resourceDrilldown.asSequence() + extraDrilldown.asSequence()) }
// Order of source ResourceSupplyList: by tiles, enumerating the map in that spiral pattern
// UI should not surprise player, thus we need a deterministic and guessable order
private val resources: List<TileResource> = drilldownSequence
private val resources: List<TileResource> = allResources.asSequence()
.map { it.resource }
.filter { it.resourceType != ResourceType.Bonus }
.filter { it.resourceType != ResourceType.Bonus && !it.hasUnique(UniqueType.NotShownOnWorldScreen) }
.distinct()
.sortedWith(
compareBy<TileResource> { it.resourceType }