Помогите Как получить тип entity по взгляду [Решено]

Статус
Закрыто для дальнейших ответов.

Exception_Prototype

Активный участник
Пользователь
Баллы
96
Требуется получить тип сущности (смотря на неё) при вводе определённой команды.
Пока были попытки получать
Код:
getTargetBlock(null, 15);
, но при (Entity) block = ClassCastException. Так всё же, как правильно получить entity по взгляду и её взять с неё тип и т.д.
 
Нету такого в команде плагина только через forge, там есть.
 
Требуется получить тип сущности (смотря на неё) при вводе определённой команды.
Пока были попытки получать
Код:
getTargetBlock(null, 15);
, но при (Entity) block = ClassCastException. Так всё же, как правильно получить entity по взгляду и её взять с неё тип и т.д.
придется просчитывать куда смотрит игрок и потом от той локации куда сморит getNearblyEntity (метод чуть по другому называется, лень лезть в иде)
 
придется просчитывать куда смотрит игрок и потом от той локации куда сморит getNearblyEntity (метод чуть по другому называется, лень лезть в иде)
А еще проверять препятствие на пути. Чувак влип короче :D.
 
hasLineOfSight и getLineOfSight попробуй
или
Java:
    public static <T extends Entity> T getTarget(Entity entity,
           Iterable<T> entities) {
        if (entity == null)
            return null;
        T target = null;
        double threshold = 1;
        for (T other : entities) {
            Vector n = other.getLocation().toVector()
                    .subtract(entity.getLocation().toVector());
            if (entity.getLocation().getDirection().normalize().crossProduct(n)
                    .lengthSquared() < threshold
                    && n.normalize().dot(
                            entity.getLocation().getDirection().normalize()) >= 0) {
                if (target == null
                        || target.getLocation().distanceSquared(
                                entity.getLocation()) > other.getLocation()
                                .distanceSquared(entity.getLocation()))
                    target = other;
            }
        }
        return target;
    }
Iterable<T> entities = getNearByEntities
 
Последнее редактирование:
Спасибо всем за ответы, но решил поставленную задачу по другому.
Java:
List<Entity> en = senderplayer.getNearbyEntities(x, x, x); //double
for (Entity e : en) {
//to do
}
В цикле уже можно делать всё что мне требуется. Получить тип, id и конечно уникальный id, а также удалить.
P.S. Понял, что суть вопроса не соответствует решению, но решение оказалось проще.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх