mirror of
https://github.com/yairm210/Unciv.git
synced 2025-09-26 21:35:14 -04:00
Resolved #6447 - Solved out of memory errors for modded base rulesets
This commit is contained in:
parent
52f797c8e3
commit
0352df10e8
@ -572,7 +572,7 @@ class Ruleset {
|
|||||||
val vanillaRuleset = RulesetCache.getVanillaRuleset() // for UnitTypes fallback
|
val vanillaRuleset = RulesetCache.getVanillaRuleset() // for UnitTypes fallback
|
||||||
|
|
||||||
|
|
||||||
if (units.values.none { it.uniques.contains(UniqueType.FoundCity.text) })
|
if (units.values.none { it.hasUnique(UniqueType.FoundCity) })
|
||||||
lines += "No city-founding units in ruleset!"
|
lines += "No city-founding units in ruleset!"
|
||||||
|
|
||||||
for (unit in units.values) {
|
for (unit in units.values) {
|
||||||
@ -879,7 +879,7 @@ object RulesetCache : HashMap<String,Ruleset>() {
|
|||||||
else getVanillaRuleset()
|
else getVanillaRuleset()
|
||||||
|
|
||||||
|
|
||||||
val loadedMods = mods
|
val loadedMods = mods.asSequence()
|
||||||
.filter { containsKey(it) }
|
.filter { containsKey(it) }
|
||||||
.map { this[it]!! }
|
.map { this[it]!! }
|
||||||
.filter { !it.modOptions.isBaseRuleset } +
|
.filter { !it.modOptions.isBaseRuleset } +
|
||||||
@ -887,7 +887,9 @@ object RulesetCache : HashMap<String,Ruleset>() {
|
|||||||
|
|
||||||
for (mod in loadedMods.sortedByDescending { it.modOptions.isBaseRuleset }) {
|
for (mod in loadedMods.sortedByDescending { it.modOptions.isBaseRuleset }) {
|
||||||
if (mod.modOptions.isBaseRuleset) {
|
if (mod.modOptions.isBaseRuleset) {
|
||||||
newRuleset.modOptions = mod.modOptions
|
// This is so we don't keep using the base ruleset's unqiues *by reference* and add to in ad infinitum
|
||||||
|
newRuleset.modOptions.uniques = ArrayList()
|
||||||
|
newRuleset.modOptions.isBaseRuleset = true
|
||||||
}
|
}
|
||||||
newRuleset.add(mod)
|
newRuleset.add(mod)
|
||||||
newRuleset.mods += mod.name
|
newRuleset.mods += mod.name
|
||||||
|
Loading…
x
Reference in New Issue
Block a user