KStarbound/src/main/kotlin/ru/dbotthepony/kstarbound/defs/MovementParameters.kt

28 lines
990 B
Kotlin

package ru.dbotthepony.kstarbound.defs
import ru.dbotthepony.kstarbound.json.builder.JsonFactory
import ru.dbotthepony.kstarbound.json.builder.JsonFlat
import ru.dbotthepony.kstarbound.util.KOptional
import ru.dbotthepony.kstarbound.world.physics.Poly
@JsonFactory
data class MovementParameters(
@JsonFlat
val base: BaseMovementParameters.Impl = BaseMovementParameters.Impl(),
val discontinuityThreshold: Float? = null,
val collisionPoly: Poly? = null,
val ignorePlatformCollision: Boolean? = null,
val restDuration: Int? = null,
) : BaseMovementParameters by base {
fun merge(other: MovementParameters): MovementParameters {
return MovementParameters(
base = base.merge(other.base),
discontinuityThreshold = discontinuityThreshold ?: other.discontinuityThreshold,
collisionPoly = collisionPoly ?: other.collisionPoly,
ignorePlatformCollision = ignorePlatformCollision ?: other.ignorePlatformCollision,
restDuration = restDuration ?: other.restDuration,
)
}
}