Помогите Ломка рядом стоящих блоков в определённом радиусе.

  • Автор темы Автор темы SecDet
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

SecDet

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
d3ever
Здравствуйте, форумчане!
Собственно в чём проблема:
Моё скромное желание - определить рядом стоящие блоки по типу блока который сломал игрок.
Пример:

- Игрок ломает кусок земли, а рядом с землёй стоят блоки такого-же типа.
- При ломке земли, рядом стоящие блоки такого-же типа ломаются.

Извиняюсь за очень интеллектуальное пояснение. =)
 
Ну, у тебя есть координаты блока. Прибавляй/отнимай по 1 в каждую сторону(x,y,z) и сверяй полученный блок с тем, который сломал.
 
Вот код + пример использования.
Код:
    @EventHandler
    public void breakBlocks(BlockBreakEvent e) {
        breakNearbyBlocks(e.getBlock().getLocation(), e.getBlock().getType(), 5);
    }
   
    public static void breakNearbyBlocks(Location loc, Material mat, int dist) {
        if(dist < 0 || loc == null || mat == null || !mat.isBlock()) throw new IllegalArgumentException();
        dist /= 2;
        for(int x = -dist; x <= dist; x++) {
            for(int y = -dist; y <= dist; y++) {
                for(int z = -dist; z <= dist; z++) {
                    Block block = loc.clone().add(x, y, z).getBlock();
                    if(block.getType() == mat) block.breakNaturally();
                }
            }
        }
    }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх