26ed99fda6
Build and deploy / Build (push) Has been cancelled
Build and deploy / Update Contributors (push) Has been cancelled
Build and deploy / Deploy (push) Has been cancelled
23 lines
578 B
Go
23 lines
578 B
Go
package entity
|
|
|
|
import (
|
|
"github.com/df-mc/dragonfly/server/world"
|
|
"github.com/go-gl/mathgl/mgl64"
|
|
)
|
|
|
|
// Eyed represents an entity that has eyes.
|
|
type Eyed interface {
|
|
// EyeHeight returns the offset from their base position that the eyes of an entity are found at.
|
|
EyeHeight() float64
|
|
}
|
|
|
|
// EyePosition returns the position of the eyes of the entity if the entity implements entity.Eyed, or the
|
|
// actual position if it doesn't.
|
|
func EyePosition(e world.Entity) mgl64.Vec3 {
|
|
pos := e.Position()
|
|
if eyed, ok := e.(Eyed); ok {
|
|
pos[1] += eyed.EyeHeight()
|
|
}
|
|
return pos
|
|
}
|