mirror of
https://github.com/yairm210/Unciv.git
synced 2025-07-16 18:59:15 +07:00
Mod CI - Load vanilla ruleset into cache before validation
This commit is contained in:
@ -26,7 +26,7 @@ object RulesetCache : HashMap<String, Ruleset>() {
|
|||||||
fun loadRulesets(consoleMode: Boolean = false, noMods: Boolean = false): List<String> {
|
fun loadRulesets(consoleMode: Boolean = false, noMods: Boolean = false): List<String> {
|
||||||
val newRulesets = HashMap<String, Ruleset>()
|
val newRulesets = HashMap<String, Ruleset>()
|
||||||
|
|
||||||
for (ruleset in BaseRuleset.values()) {
|
for (ruleset in BaseRuleset.entries) {
|
||||||
val fileName = "jsons/${ruleset.fullName}"
|
val fileName = "jsons/${ruleset.fullName}"
|
||||||
val fileHandle =
|
val fileHandle =
|
||||||
if (consoleMode) FileHandle(fileName)
|
if (consoleMode) FileHandle(fileName)
|
||||||
@ -99,9 +99,9 @@ object RulesetCache : HashMap<String, Ruleset>() {
|
|||||||
return baseRulesets.sortedWith(
|
return baseRulesets.sortedWith(
|
||||||
compareBy(
|
compareBy(
|
||||||
{ ruleset ->
|
{ ruleset ->
|
||||||
BaseRuleset.values()
|
BaseRuleset.entries
|
||||||
.firstOrNull { br -> br.fullName == ruleset }?.ordinal
|
.firstOrNull { br -> br.fullName == ruleset }?.ordinal
|
||||||
?: BaseRuleset.values().size
|
?: BaseRuleset.entries.size
|
||||||
},
|
},
|
||||||
{ it }
|
{ it }
|
||||||
)
|
)
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.unciv.app.desktop
|
package com.unciv.app.desktop
|
||||||
|
|
||||||
import com.badlogic.gdx.Gdx
|
|
||||||
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
|
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
|
||||||
import com.badlogic.gdx.files.FileHandle
|
import com.badlogic.gdx.files.FileHandle
|
||||||
import com.badlogic.gdx.graphics.glutils.HdpiMode
|
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.ScreenSize
|
||||||
import com.unciv.models.metadata.GameSettings.WindowState
|
import com.unciv.models.metadata.GameSettings.WindowState
|
||||||
import com.unciv.models.ruleset.Ruleset
|
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.RulesetErrorSeverity
|
||||||
import com.unciv.models.ruleset.validation.RulesetValidator
|
import com.unciv.models.ruleset.validation.RulesetValidator
|
||||||
import com.unciv.ui.components.fonts.Fonts
|
import com.unciv.ui.components.fonts.Fonts
|
||||||
@ -31,9 +31,11 @@ internal object DesktopLauncher {
|
|||||||
ruleset.folderLocation = FileHandle(".")
|
ruleset.folderLocation = FileHandle(".")
|
||||||
val jsonsFolder = FileHandle("jsons")
|
val jsonsFolder = FileHandle("jsons")
|
||||||
if (jsonsFolder.exists()) {
|
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(jsonsFolder)
|
||||||
}
|
}
|
||||||
ruleset.load(FileHandle("jsons"))
|
|
||||||
val errors = RulesetValidator(ruleset).getErrorList(true)
|
val errors = RulesetValidator(ruleset).getErrorList(true)
|
||||||
println(errors.getErrorText(true))
|
println(errors.getErrorText(true))
|
||||||
exitProcess(if (errors.any { it.errorSeverityToReport == RulesetErrorSeverity.Error }) 1 else 0)
|
exitProcess(if (errors.any { it.errorSeverityToReport == RulesetErrorSeverity.Error }) 1 else 0)
|
||||||
|
Reference in New Issue
Block a user