Performance improvements

- forCivGetMatchingUniques doesn't toString stateForConditionals if the result would anyway not be cached
This commit is contained in:
Yair Morgenstern
2023-06-17 23:59:42 +03:00
parent 259eeeb56c
commit 51583ab588

View File

@ -316,7 +316,7 @@ class LocalUniqueCache(val cache:Boolean = true) {
val stateForConditionals = if (ignoreConditionals) StateForConditionals.IgnoreConditionals
else StateForConditionals(city.civ, city)
return get(
"city-${city.id}-${uniqueType.name}-${stateForConditionals}",
"city-${city.id}-${uniqueType.name}-${ignoreConditionals}",
city.getMatchingUniques(uniqueType, stateForConditionals)
)
}
@ -328,9 +328,11 @@ class LocalUniqueCache(val cache:Boolean = true) {
civ
)
): Sequence<Unique> {
val sequence = civ.getMatchingUniques(uniqueType, stateForConditionals)
if (!cache) return sequence // So we don't need to toString the stateForConditionals
return get(
"civ-${civ.civName}-${uniqueType.name}-${stateForConditionals}",
civ.getMatchingUniques(uniqueType, stateForConditionals)
sequence
)
}