Помогите Проверка на видимость игрока

lomaloglav

Активный участник
Баллы
61
Имя в Minecraft
Lomaloglav
Нужна проверка на видимость игрока(типо raytrace)!

Уже есть что-то типо такого
Код:
private Player getTargetEntity(Player player) {
        List nearby = player.getNearbyEntities(30.0D, 30.0D, 30.0D);
        Player target = null;
        BlockIterator bit = new BlockIterator(player, 30);

        while (bit.hasNext()) {
            Block b = bit.next();
            Iterator var7 = nearby.iterator();
            while (var7.hasNext()) {
                Entity e = (Entity) var7.next();
                if (e instanceof Player && this.nearBlock(b, (Player) e)) {
                    target = (Player) e;
                }
            }
        }

        return target;
    }

    private boolean nearBlock(Block b, Player e) {
        Location bLoc = b.getLocation();
        Location eLoc = e.getLocation();
        double bx = bLoc.getX();
        double by = bLoc.getY();
        double bz = bLoc.getZ();
        double ex = eLoc.getX();
        double ey = eLoc.getY();
        double ez = eLoc.getZ();
        return Math.abs(bx - ex) < 0.525D && by - ey < e.getEyeHeight() && by - ey > -0.525D
                && Math.abs(bz - ez) < 0.525D;
    }

Уже нашел более нормальный вариант!
Вот кому надо:
Код:
player.hasLineOfSight(target);
Тему закрывать не буду, может дадут вариант лучше этого.
 
Последнее редактирование:
Назад
Верх