mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 17:07:55 -04:00
wip sleeping and sneaking
This commit is contained in:
parent
9455ef7d28
commit
3c321373b3
@ -13,8 +13,20 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.entities.renderer.living
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.minosoft.data.entities.Poses
|
||||
import de.bixilon.minosoft.data.entities.entities.LivingEntity
|
||||
import de.bixilon.minosoft.gui.rendering.entities.EntitiesRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.entities.renderer.EntityRenderer
|
||||
import de.bixilon.minosoft.gui.rendering.util.mat.mat4.Mat4Util.rotateDegreesAssign
|
||||
|
||||
abstract class LivingEntityRenderer<E : LivingEntity>(renderer: EntitiesRenderer, entity: E) : EntityRenderer<E>(renderer, entity)
|
||||
abstract class LivingEntityRenderer<E : LivingEntity>(renderer: EntitiesRenderer, entity: E) : EntityRenderer<E>(renderer, entity) {
|
||||
|
||||
override fun updateMatrix(delta: Float) {
|
||||
super.updateMatrix(delta)
|
||||
when (entity.pose) {
|
||||
Poses.SLEEPING -> matrix.rotateDegreesAssign(Vec3(90, 0, 0)) // TODO
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,9 @@
|
||||
|
||||
package de.bixilon.minosoft.gui.rendering.entities.renderer.living.player
|
||||
|
||||
import de.bixilon.kotlinglm.vec3.Vec3
|
||||
import de.bixilon.kutil.observer.DataObserver.Companion.observe
|
||||
import de.bixilon.minosoft.data.entities.Poses
|
||||
import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity
|
||||
import de.bixilon.minosoft.data.entities.entities.player.properties.textures.metadata.SkinModel
|
||||
import de.bixilon.minosoft.data.registries.identified.Identified
|
||||
@ -96,6 +98,14 @@ open class PlayerRenderer<E : PlayerEntity>(renderer: EntitiesRenderer, entity:
|
||||
return true
|
||||
}
|
||||
|
||||
override fun updateMatrix(delta: Float) {
|
||||
super.updateMatrix(delta)
|
||||
when (entity.pose) {
|
||||
Poses.SNEAKING -> matrix.translateAssign(SNEAKING_OFFSET) // TODO: interpolate
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
companion object : RegisteredEntityModelFactory<PlayerEntity>, Identified, SkeletalMeshBuilder {
|
||||
override val identifier get() = PlayerEntity.identifier
|
||||
@ -104,6 +114,8 @@ open class PlayerRenderer<E : PlayerEntity>(renderer: EntitiesRenderer, entity:
|
||||
|
||||
private val SKIN = minecraft("skin")
|
||||
|
||||
private val SNEAKING_OFFSET = Vec3(0.0f, -0.125f, 0.0f)
|
||||
|
||||
override fun create(renderer: EntitiesRenderer, entity: PlayerEntity) = PlayerRenderer(renderer, entity)
|
||||
override fun buildMesh(context: RenderContext) = PlayerModelMesh(context)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user