Files
mc/server/entity/direction.go
T

23 lines
578 B
Go
Raw Normal View History

2026-07-09 08:33:57 +08:00
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
}