Вопрос Получение рамки по координатам (x, y ,z)

xflyiwnl

Пользователь
Сообщения
90
Решения
4
Веб-сайт
xflyiwnl.github.io
У меня есть стена с рамками 4 блока по высоте и 7 блоков по ширине. При клике по начальной рамке (слева сверху), запускается for, в котором начиная с этой рамки получаю все локации других рамок. Но я получаю лишь локацию, как мне получить саму рамку, который находится в этой локации?

Красная сторона куба - это рамка

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Дошло в голову, что можно получить все Entity рядом в Location#getNearbyEntitiesByType(). Если есть другие варианты, то тоже пишите.

Java:
        int z = entity.getLocation().getBlockZ();
        for (int x = entity.getLocation().getBlockX(); x <= entity.getLocation().getBlockX() + (nft.getW() / 128); x++) {
            for (int y = entity.getLocation().getBlockY(); y <= entity.getLocation().getBlockY() + (nft.getH() / 128); y++) {

                Location location = new Location(entity.getWorld(), x, y, z);
                List<ItemFrame> frames = location.getNearbyEntitiesByType(ItemFrame.class, 0.5).stream().collect(Collectors.toList());

                if (frames.isEmpty()) {
                    continue;
                }
                
                ItemFrame frame = frames.get(0);
                frame.setItem(new ItemStack(Material.RED_WOOL));

            }
        }
 
Последнее редактирование:
Назад
Сверху Снизу