modding: "Becomes [terrainName] when adjacent to [terrainFilter]" accepts conditionals

This commit is contained in:
yairm210 2024-11-02 18:51:36 +02:00
parent 28c65f2684
commit 66ed5ee5ef

View File

@ -19,6 +19,7 @@ import com.unciv.models.ruleset.unique.Unique
import com.unciv.models.ruleset.unique.UniqueType
import com.unciv.ui.screens.mapeditorscreen.MapGeneratorSteps
import com.unciv.logic.map.tile.TileNormalizer
import com.unciv.models.ruleset.unique.StateForConditionals
import com.unciv.utils.debug
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.isActive
@ -225,7 +226,7 @@ class MapGenerator(val ruleset: Ruleset, private val coroutineScope: CoroutineSc
fun convertTerrains(ruleset: Ruleset, tiles: Iterable<Tile>) {
for (tile in tiles) {
val conversionUnique =
tile.getBaseTerrain().getMatchingUniques(UniqueType.ChangesTerrain)
tile.getBaseTerrain().getMatchingUniques(UniqueType.ChangesTerrain, StateForConditionals(tile = tile))
.firstOrNull { tile.isAdjacentTo(it.params[1]) }
?: continue
val terrain = ruleset.terrains[conversionUnique.params[0]] ?: continue