From f872150da4e17729658d99e2b9e9aa4a8fa64113 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Thu, 20 Feb 2025 19:31:40 +0200 Subject: [PATCH] Hide 'hidden in world screen' resources from overview tab as well --- .../com/unciv/models/ruleset/tile/ResourceSupplyList.kt | 6 ++---- .../ui/screens/overviewscreen/ResourcesOverviewTab.kt | 7 ++++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/tile/ResourceSupplyList.kt b/core/src/com/unciv/models/ruleset/tile/ResourceSupplyList.kt index d33cd35f0f..025cc2053a 100644 --- a/core/src/com/unciv/models/ruleset/tile/ResourceSupplyList.kt +++ b/core/src/com/unciv/models/ruleset/tile/ResourceSupplyList.kt @@ -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 } diff --git a/core/src/com/unciv/ui/screens/overviewscreen/ResourcesOverviewTab.kt b/core/src/com/unciv/ui/screens/overviewscreen/ResourcesOverviewTab.kt index 4f82851e69..0f27c49456 100644 --- a/core/src/com/unciv/ui/screens/overviewscreen/ResourcesOverviewTab.kt +++ b/core/src/com/unciv/ui/screens/overviewscreen/ResourcesOverviewTab.kt @@ -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 = drilldownSequence + private val resources: List = allResources.asSequence() .map { it.resource } - .filter { it.resourceType != ResourceType.Bonus } + .filter { it.resourceType != ResourceType.Bonus && !it.hasUnique(UniqueType.NotShownOnWorldScreen) } .distinct() .sortedWith( compareBy { it.resourceType }