28 lines
990 B
Kotlin
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,
|
|
)
|
|
}
|
|
}
|