Помогите Получить блоки на территории

  • Автор темы Автор темы Ant1m0
  • Дата начала Дата начала

Ant1m0

Активный участник
Пользователь
Баллы
66
Короче, такая история - нужен метод, возвращающий лист с блоками, находящимися на локации
Допустим
x1: 0 y1: 0 z1: 0 , x2: 1 y2: 0 z2: 1 = вернет 4 блока - 0 0 0 , 0 0 1 , 1 0 0, 1 0 1
 
Последнее редактирование:
Циклом в цикле, от координат первого блока к координатам второго или наоборот
 
Геометрию нужно учить
 
Тройным циклам по высоте ширине и глубине. Получаешь их от разницы мин и макс (pos1 pos2).
 
Короче, такая история
:mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad::mad:

Используй lowercase когда называешь пакеты, спасибо.
upload_2020-6-29_18-11-50.pngupload_2020-6-29_18-12-40.pngupload_2020-6-29_18-14-0.png
 
Используй lowercase когда называешь пакеты, спасибо.

Я знаю что правильнее делать lowercase, но не могу избавиться от этой привычки.



Знаю говно)))


Писал же выше как. Перечитай

Сам доделает...
Тройным циклам по высоте ширине и глубине. Получаешь их от разницы мин и макс (pos1 pos2).
 
Последнее редактирование:
Реализаций подобного в интернете полно, просто нужно приложить немного усилий для поиска.
Например вот. А лучше всего вместо копипаста начать подтягивать геометрию и учиться проецировать знания в код.
 
*****сь, он от центра показвает, у меня нету координаты центра
Это элементарная математика, тебе для куба нужно цикл от pos1(x) до pos2(x), в этом цикле от pos1(y) до pos2(y), а в нем от pos1(z) до pos2(z), в итоге ты пройдешься по трехмерному массиву из блоков, каждый из которых ты добавишь в лист.
 
Это элементарная математика, тебе для куба нужно цикл от pos1(x) до pos2(x), в этом цикле от pos1(y) до pos2(y), а в нем от pos1(z) до pos2(z), в итоге ты пройдешься по трехмерному массиву из блоков, каждый из которых ты добавишь в лист.
Я на математика похож?
 
Код:
public static Collection<Block> getBlocksInCuboid(World world, int x1, int y1, int z1, int x2, int y2, int z2) {
    List<Block> blocks = new ArrayList<>();
    for(int x = Math.min(x1, x2); x <= Math.max(x1, x2); x++) {
        for(int y = Math.min(y1, y2); y <= Math.max(y1, y2); y++) {
            for(int z = Math.min(z1, z2); z <= Math.max(z1, z2); z++) {
                blocks.add(world.getBlockAt(x, y, z));
            }
        }
    }
    return blocks;
}
А теперь кыш, и тему на замок.
 
Назад
Верх