func EntityIntercept(e world.Entity, start, end mgl64.Vec3) (result EntityResult, ok bool) {
	bb := e.AABB().Translate(e.Position()).Grow(0.3)
	r, ok := AABBIntercept(bb, start, end)
	if !ok {
		return
	}
	return EntityResult{bb: bb, pos: r.Position(), face: r.Face(), entity: e}, true
}
EntityIntercept performs a ray trace and calculates the point on the entities bounding box's edge nearest to the start position
that the ray collided with.
EntityIntercept returns an EntityResult with the entity collided with and with the colliding vector closest to the start position,
if no colliding point was found, a zero BlockResult is returned ok is false.
package trace
import (
	"github.com/df-mc/dragonfly/server/block/cube"
	"github.com/df-mc/dragonfly/server/entity/physics"
	"github.com/df-mc/dragonfly/server/world"
	"github.com/go-gl/mathgl/mgl64"
)
type EntityResult struct {
	bb   physics.AABB
	pos  mgl64.Vec3
	face cube.Face
	entity world.Entity
}
func (r EntityResult) AABB() physics.AABB {
	return r.bb
}
func (r EntityResult) Position() mgl64.Vec3 {
	return r.pos
}
func (r EntityResult) Face() cube.Face {
	return r.face
}
func (r EntityResult) Entity() world.Entity {
	return r.entity
}