therealbluepandabear
03/18/2021, 3:41 AMprivate var worldSize: Int = 0
private var biomes: MutableMap<Biome, IntRange> = mutableMapOf()
data class PointData(val currentPoint: Int?, val currentBiome: Biome)
fun getPointData(point: Int): PointData {
biomes.values.forEach {
if (it.contains(point)) {
return PointData(point, biomes.keys.elementAt(biomes.keys.indexOf(it)))
}
}
return PointData(null, Savannah())
}
Exception in thread "main" java.lang.IndexOutOfBoundsException: Collection doesn't contain element at index -1.therealbluepandabear
03/18/2021, 3:45 AMephemient
03/18/2021, 4:18 AMindexOf
therealbluepandabear
03/18/2021, 4:18 AMephemient
03/18/2021, 4:18 AMit
is a IntRange
, of course biomes.keys: Set<Biome>
is not going to contain itephemient
03/18/2021, 4:19 AMtherealbluepandabear
03/18/2021, 4:19 AMtherealbluepandabear
03/18/2021, 4:19 AMephemient
03/18/2021, 4:20 AMfor ((biome, range) in biomes) {
if (point in range) {
return PointData(point, biome)
}
}
therealbluepandabear
03/18/2021, 4:20 AMnkiesel
03/18/2021, 8:29 AMreturn biomes.entries.find { point in it.value } ?.let { PointData(point, it.key) } ?: PointData(null, Savannah())