Summarized civ resources, which were getting accessed all the time, are now cached and updated together with the detailed civ resources. (#6093)

This commit is contained in:
Yair Morgenstern 2022-02-01 12:14:37 +02:00 committed by GitHub
parent cf6dacdcbe
commit 0a336b3d99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 9 deletions

View File

@ -164,7 +164,7 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo) {
civInfo.citiesConnectedToCapitalToMediums = citiesReachedToMediums
}
fun updateDetailedCivResources() {
fun updateCivResources() {
val newDetailedCivResources = ResourceSupplyList()
for (city in civInfo.cities) newDetailedCivResources.add(city.getCityResources())
@ -192,6 +192,13 @@ class CivInfoTransientUpdater(val civInfo: CivilizationInfo) {
for ((resource, amount) in unit.baseUnit.getResourceRequirements())
newDetailedCivResources.add(civInfo.gameInfo.ruleSet.tileResources[resource]!!, -amount, "Units")
civInfo.detailedCivResources = newDetailedCivResources
val newSummarizedCivResources = ResourceSupplyList()
for (resourceSupply in newDetailedCivResources) {
newSummarizedCivResources.add(resourceSupply.resource, resourceSupply.amount, "All")
}
civInfo.summarizedCivResources = newSummarizedCivResources
civInfo.updateStatsForNextTurn() // More or less resources = more or less happiness, with potential domino effects
}
}

View File

@ -97,6 +97,9 @@ class CivilizationInfo {
@Transient
var detailedCivResources = ResourceSupplyList()
@Transient
var summarizedCivResources = ResourceSupplyList()
@Transient
val cityStateFunctions = CityStateFunctions(this)
@ -324,13 +327,7 @@ class CivilizationInfo {
fun getHappiness() = happinessForNextTurn
fun getCivResources(): ResourceSupplyList {
val newResourceSupplyList = ResourceSupplyList()
for (resourceSupply in detailedCivResources) {
newResourceSupplyList.add(resourceSupply.resource, resourceSupply.amount, "All")
}
return newResourceSupplyList
}
fun getCivResources(): ResourceSupplyList = summarizedCivResources
// Preserves some origins for resources so we can separate them for trades
fun getCivResourcesWithOriginsForTrade(): ResourceSupplyList {
@ -799,7 +796,7 @@ class CivilizationInfo {
fun initialSetCitiesConnectedToCapitalTransients() = transients().updateCitiesConnectedToCapital(true)
fun updateHasActiveGreatWall() = transients().updateHasActiveGreatWall()
fun updateViewableTiles() = transients().updateViewableTiles()
fun updateDetailedCivResources() = transients().updateDetailedCivResources()
fun updateDetailedCivResources() = transients().updateCivResources()
fun startTurn() {
civConstructions.startTurn()