Получение энтити

Версия Minecraft
1.12.2
1,470
19
189
Как получить энтити на которое направлено перекрестие игрока?
 
7,099
324
1,510
5,018
47
783
Тебе уже все сказали? Что ты еще хочешь? Чтобы за тебя код написали и принесли с тортиком?
Хотя его уже и написали... без тортика разве что.
 
7,099
324
1,510
1,470
19
189
Kotlin:
fun getMouseOver(partialTicks: Float, distance: Double, canBeCollidedWith: Boolean): Entity? {
        val mc = Minecraft.getMinecraft()
        var pointedEntity: Entity? = null
        var rayTrace: RayTraceResult?

        if(mc.renderViewEntity != null) {
            if(mc.world != null) {
                rayTrace = mc.renderViewEntity!!.rayTrace(distance, partialTicks)
                val positionVec = mc.renderViewEntity!!.positionVector
                var distanceToVec3 = distance

                if(rayTrace != null) {
                    distanceToVec3 = rayTrace.hitVec.distanceTo(positionVec)
                }

                val lookVec = mc.renderViewEntity!!.getLook(partialTicks)
                val posDistVec = positionVec.addVector(lookVec.x * distance, lookVec.y * distance, lookVec.z * distance)
                var tempVec: Vec3d? = null
                val boxExpand = 1.0
                val entities = mc.world.getEntitiesWithinAABBExcludingEntity(mc.renderViewEntity, mc.renderViewEntity!!.renderBoundingBox.expand(lookVec.x * distance, lookVec.y * distance, lookVec.z * distance).expand(boxExpand, boxExpand, boxExpand))
                var vecInsideDist = distanceToVec3

                for(i in entities.indices) {
                    val entity = entities[i]

                    if(!canBeCollidedWith || entity.canBeCollidedWith()) {
                        val borderSize = entity.collisionBorderSize.toDouble()
                        val expEntityBox = entity.renderBoundingBox.expand(borderSize, borderSize, borderSize)
                        val calculateInterceptPos = expEntityBox.calculateIntercept(positionVec, posDistVec)

                        if(expEntityBox.contains(positionVec)) {
                            if(0.0 < vecInsideDist || vecInsideDist == 0.0) {
                                pointedEntity = entity
                                tempVec = if(calculateInterceptPos == null) positionVec else calculateInterceptPos.hitVec
                                vecInsideDist = 0.0
                            }
                        } else if(calculateInterceptPos != null) {
                            val calcInterceptPosDist = positionVec.distanceTo(calculateInterceptPos.hitVec)

                            if(calcInterceptPosDist < vecInsideDist || vecInsideDist == 0.0) {
                                if(entity === mc.renderViewEntity!!.ridingEntity && !entity.canRiderInteract()) {
                                    if(vecInsideDist == 0.0) {
                                        pointedEntity = entity
                                        tempVec = calculateInterceptPos.hitVec
                                    }
                                } else {
                                    pointedEntity = entity
                                    tempVec = calculateInterceptPos.hitVec
                                    vecInsideDist = calcInterceptPosDist
                                }
                            }
                        }
                    }
                }

                if(pointedEntity != null && (vecInsideDist < distanceToVec3 || rayTrace == null)) {
                    return pointedEntity
                }
            }
        }
        return null
    }
Выдает всегда нул
 
Сверху