From b1a3a4d89d793e6bd5b73423e16abdd15432dd3f Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sun, 1 Dec 2024 19:18:52 +0200 Subject: [PATCH] perf(memory): Don't create a resource counter if we know we don't need it --- core/src/com/unciv/models/ruleset/Building.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/Building.kt b/core/src/com/unciv/models/ruleset/Building.kt index f4b72d4570..3735473795 100644 --- a/core/src/com/unciv/models/ruleset/Building.kt +++ b/core/src/com/unciv/models/ruleset/Building.kt @@ -547,10 +547,13 @@ class Building : RulesetStatsObject(), INonPerpetualConstruction { fun isSellable() = !isAnyWonder() && !hasUnique(UniqueType.Unsellable) override fun getResourceRequirementsPerTurn(state: StateForConditionals?): Counter { + val uniques = getMatchingUniques(UniqueType.ConsumesResources, + state ?: StateForConditionals.EmptyState) + if (uniques.none() && requiredResource == null) return Counter.ZERO + val resourceRequirements = Counter() if (requiredResource != null) resourceRequirements[requiredResource!!] = 1 - for (unique in getMatchingUniques(UniqueType.ConsumesResources, - state ?: StateForConditionals.EmptyState)) + for (unique in uniques) resourceRequirements[unique.params[1]] += unique.params[0].toInt() return resourceRequirements }