Files
blitz-kt/src/main/kotlin/blitz/math/Direction.kt
2025-09-22 13:02:35 +02:00

29 lines
657 B
Kotlin

package blitz.math
import blitz.unreachable
/** only 6 directions -> only needs 3 bits */
@JvmInline
value class Direction(
val idx: U3
) {
companion object {
val UP = Direction(U3(0u))
val DOWN = Direction(U3(1u))
val NORTH = Direction(U3(2u))
val EAST = Direction(U3(3u))
val SOUTH = Direction(U3(4u))
val WEST = Direction(U3(5u))
}
override fun toString() =
when (this) {
UP -> "Up"
DOWN -> "Down"
NORTH -> "North"
EAST -> "East"
SOUTH -> "South"
WEST -> "West"
else -> unreachable()
}
}