From 4a98eff4d1ec88025d59720db2ac260edd2ca004 Mon Sep 17 00:00:00 2001 From: yairm210 Date: Sun, 14 Jul 2024 12:48:15 +0300 Subject: [PATCH] Mod CI - Load vanilla ruleset into cache before validation --- core/src/com/unciv/models/ruleset/RulesetCache.kt | 6 +++--- desktop/src/com/unciv/app/desktop/DesktopLauncher.kt | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/com/unciv/models/ruleset/RulesetCache.kt b/core/src/com/unciv/models/ruleset/RulesetCache.kt index e115d3ab59..264c20cb70 100644 --- a/core/src/com/unciv/models/ruleset/RulesetCache.kt +++ b/core/src/com/unciv/models/ruleset/RulesetCache.kt @@ -26,7 +26,7 @@ object RulesetCache : HashMap() { fun loadRulesets(consoleMode: Boolean = false, noMods: Boolean = false): List { val newRulesets = HashMap() - for (ruleset in BaseRuleset.values()) { + for (ruleset in BaseRuleset.entries) { val fileName = "jsons/${ruleset.fullName}" val fileHandle = if (consoleMode) FileHandle(fileName) @@ -99,9 +99,9 @@ object RulesetCache : HashMap() { return baseRulesets.sortedWith( compareBy( { ruleset -> - BaseRuleset.values() + BaseRuleset.entries .firstOrNull { br -> br.fullName == ruleset }?.ordinal - ?: BaseRuleset.values().size + ?: BaseRuleset.entries.size }, { it } ) diff --git a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt index 8373e492a3..25ffbc6cc3 100644 --- a/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt +++ b/desktop/src/com/unciv/app/desktop/DesktopLauncher.kt @@ -1,6 +1,5 @@ package com.unciv.app.desktop -import com.badlogic.gdx.Gdx import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration import com.badlogic.gdx.files.FileHandle import com.badlogic.gdx.graphics.glutils.HdpiMode @@ -11,6 +10,7 @@ import com.unciv.logic.files.UncivFiles import com.unciv.models.metadata.GameSettings.ScreenSize import com.unciv.models.metadata.GameSettings.WindowState import com.unciv.models.ruleset.Ruleset +import com.unciv.models.ruleset.RulesetCache import com.unciv.models.ruleset.validation.RulesetErrorSeverity import com.unciv.models.ruleset.validation.RulesetValidator import com.unciv.ui.components.fonts.Fonts @@ -31,9 +31,11 @@ internal object DesktopLauncher { ruleset.folderLocation = FileHandle(".") val jsonsFolder = FileHandle("jsons") if (jsonsFolder.exists()) { + // Load vanilla ruleset from the JAR, in case the mod requires parts of it + RulesetCache.loadRulesets(consoleMode = true, noMods = true) + // Load the actual ruleset here ruleset.load(jsonsFolder) } - ruleset.load(FileHandle("jsons")) val errors = RulesetValidator(ruleset).getErrorList(true) println(errors.getErrorText(true)) exitProcess(if (errors.any { it.errorSeverityToReport == RulesetErrorSeverity.Error }) 1 else 0)