Faster filtering to avoid some ANRs

This commit is contained in:
Yair Morgenstern 2021-07-19 23:00:05 +03:00
parent bdf46ea66c
commit f85bedeb2f

View File

@ -27,9 +27,9 @@ import com.unciv.ui.victoryscreen.RankingType
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
import kotlin.collections.HashMap import kotlin.collections.HashMap
import kotlin.math.roundToInt
import kotlin.math.min import kotlin.math.min
import kotlin.math.pow import kotlin.math.pow
import kotlin.math.roundToInt
class CivilizationInfo { class CivilizationInfo {
@ -251,7 +251,7 @@ class CivilizationInfo {
// Does not return local uniques, only global ones. // Does not return local uniques, only global ones.
fun getMatchingUniques(uniqueTemplate: String, cityToIgnore: CityInfo? = null): Sequence<Unique> { fun getMatchingUniques(uniqueTemplate: String, cityToIgnore: CityInfo? = null): Sequence<Unique> {
return nation.uniqueObjects.asSequence().filter { it.placeholderText == uniqueTemplate } + return nation.uniqueObjects.asSequence().filter { it.placeholderText == uniqueTemplate } +
cities.filter { it != cityToIgnore}.flatMap { cities.asSequence().filter { it != cityToIgnore}.flatMap {
city -> city.getMatchingUniquesWithNonLocalEffects(uniqueTemplate) city -> city.getMatchingUniquesWithNonLocalEffects(uniqueTemplate)
} + } +
policies.policyUniques.getUniques(uniqueTemplate) + policies.policyUniques.getUniques(uniqueTemplate) +