Hide 'hidden in world screen' resources from overview tab as well

This commit is contained in:
yairm210 2025-02-20 19:31:40 +02:00
parent 427abfa530
commit f872150da4
2 changed files with 6 additions and 7 deletions

View File

@ -25,7 +25,7 @@ class ResourceSupplyList(
/** Fetch a [ResourceSupply] entry or `null` if no match found */
fun get(resource: TileResource, origin: String) =
firstOrNull { it.resource.name == resource.name && it.origin == origin }
firstOrNull { it.resource == resource && it.origin == origin }
/** Get the total amount for a resource by [resourceName] */
fun sumBy(resourceName: String) =
@ -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 }