mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-25 12:54:06 -04:00
perf: Don't rebuild images (=reload and rebuild atlases) when loading game, if the set of mods has not changed
This commit is contained in:
parent
d0dea2d9d7
commit
46fe257fc0
@ -242,7 +242,7 @@ open class UncivGame(val isConsoleMode: Boolean = false) : Game(), PlatformSpeci
|
|||||||
/** The new game info may have different mods or rulesets, which may use different resources that need to be loaded. */
|
/** The new game info may have different mods or rulesets, which may use different resources that need to be loaded. */
|
||||||
private suspend fun initializeResources(newGameInfo: GameInfo) {
|
private suspend fun initializeResources(newGameInfo: GameInfo) {
|
||||||
withGLContext {
|
withGLContext {
|
||||||
ImageGetter.setNewRuleset(newGameInfo.ruleset)
|
ImageGetter.setNewRuleset(newGameInfo.ruleset, true)
|
||||||
}
|
}
|
||||||
val fullModList = newGameInfo.gameParameters.getModsAndBaseRuleset()
|
val fullModList = newGameInfo.gameParameters.getModsAndBaseRuleset()
|
||||||
musicController.setModList(fullModList)
|
musicController.setModList(fullModList)
|
||||||
@ -337,7 +337,7 @@ open class UncivGame(val isConsoleMode: Boolean = false) : Game(), PlatformSpeci
|
|||||||
// Re-initialize translations, images etc. that may have been 'lost' when we were playing around in NewGameScreen
|
// Re-initialize translations, images etc. that may have been 'lost' when we were playing around in NewGameScreen
|
||||||
val ruleset = worldScreen.gameInfo.ruleset
|
val ruleset = worldScreen.gameInfo.ruleset
|
||||||
translations.translationActiveMods = ruleset.mods
|
translations.translationActiveMods = ruleset.mods
|
||||||
ImageGetter.setNewRuleset(ruleset)
|
ImageGetter.setNewRuleset(ruleset, true)
|
||||||
|
|
||||||
setScreen(worldScreen)
|
setScreen(worldScreen)
|
||||||
return worldScreen
|
return worldScreen
|
||||||
|
@ -80,7 +80,10 @@ object ImageGetter {
|
|||||||
fun reloadImages() = setNewRuleset(ruleset)
|
fun reloadImages() = setNewRuleset(ruleset)
|
||||||
|
|
||||||
/** Required every time the ruleset changes, in order to load mod-specific images */
|
/** Required every time the ruleset changes, in order to load mod-specific images */
|
||||||
fun setNewRuleset(ruleset: Ruleset) {
|
fun setNewRuleset(ruleset: Ruleset, ignoreIfModsAreEqual: Boolean = false) {
|
||||||
|
if (ignoreIfModsAreEqual && ruleset.mods == ImageGetter.ruleset.mods)
|
||||||
|
return
|
||||||
|
|
||||||
ImageGetter.ruleset = ruleset
|
ImageGetter.ruleset = ruleset
|
||||||
textureRegionDrawables.clear()
|
textureRegionDrawables.clear()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user