Add new kit & register

This commit is contained in:
TDSTOS
2025-12-09 19:57:55 +01:00
parent 7e54c8e9f1
commit 1d7ff8bd2f
6 changed files with 302 additions and 0 deletions

View File

@@ -47,4 +47,32 @@ object DirectionUtil {
return adjustedYaw
}
fun getTargetPlayerInLineOfSight(
player: Player,
maxDistance: Double,
width: Double
): Player?
{
val direction = player.eyeLocation.direction.normalize()
val origin = player.eyeLocation.toVector()
val world = player.world
val nearbyPlayers = world.getNearbyEntitiesByType( Player::class.java, player.location, maxDistance, maxDistance, maxDistance )
return nearbyPlayers
.filter { it.uniqueId != player.uniqueId }
.filter { nearby ->
val nearbyLocation = nearby.location.add( 0.0, 0.5, 0.0 ).toVector()
val toEntitiy = nearbyLocation.subtract( origin )
val distanceAlongLine = toEntitiy.dot( direction )
if ( distanceAlongLine !in 0.0..maxDistance ) return@filter false
val perpendicularDistance = toEntitiy.subtract(direction.multiply( distanceAlongLine )).length()
perpendicularDistance <= width
}
.minByOrNull { it.location.distanceSquared( player.location ) }
}
}