pixlyzer-mbf: fix some velocity bugs

This commit is contained in:
Bixilon 2021-07-08 21:50:17 +02:00
parent ffa486ef69
commit d89685fe15
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 20 additions and 3 deletions

View File

@ -32,6 +32,7 @@ import de.bixilon.minosoft.gui.rendering.input.camera.hit.RaycastHit
import de.bixilon.minosoft.protocol.network.connection.PlayConnection import de.bixilon.minosoft.protocol.network.connection.PlayConnection
import de.bixilon.minosoft.util.KUtil.mapCast import de.bixilon.minosoft.util.KUtil.mapCast
import de.bixilon.minosoft.util.KUtil.nullCast import de.bixilon.minosoft.util.KUtil.nullCast
import de.bixilon.minosoft.util.KUtil.toDouble
import de.bixilon.minosoft.util.KUtil.toInt import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.unsafeCast import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
@ -57,9 +58,9 @@ open class Block(
protected set protected set
val item: Item? = null val item: Item? = null
open lateinit var properties: Map<BlockProperties, List<Any>> open lateinit var properties: Map<BlockProperties, List<Any>>
open val friction = data["friction"]?.nullCast<Double>() ?: 0.6 open val friction = data["friction"]?.toDouble() ?: 0.6
open val velocityMultiplier = data["velocity_multiplier"]?.nullCast<Double>() ?: 1.0 // ToDo: They exist since ~1.15 open val velocityMultiplier = data["velocity_multiplier"]?.toDouble() ?: 1.0 // ToDo: They exist since ~1.15
open val jumpVelocityMultiplier = data["jump_velocity_multiplier"]?.nullCast<Double>() ?: 1.0 open val jumpVelocityMultiplier = data["jump_velocity_multiplier"]?.toDouble() ?: 1.0
init { init {
this::item.inject(data["item"]) this::item.inject(data["item"])

View File

@ -277,4 +277,20 @@ object KUtil {
else -> TODO() else -> TODO()
} }
} }
fun Any.toDouble(): Double {
return when (this) {
is Double -> this
is Number -> this.toDouble()
else -> TODO()
}
}
fun Any.toFloat(): Float {
return when (this) {
is Float -> this
is Number -> this.toFloat()
else -> TODO()
}
}
} }