Помогите Как получить все чанки с кубоида

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

OJIEKCAHDP

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
OJIEKCAHDP
У меня есть первая точка и вторая, конечная цель - получение всех сундуков, самое разумное решение на мой взгляд, это пользоваться чанками. Но в итоге, почему-то не все сундуки удаётся получить, скорее всего, я неправильно считаю чанки

Код:
        Chunk chunk = new Location(world, x1, 0, z1).getChunk();

        for (int x = chunk.getX(); x <= x2; x+=15) {
            for (int z = chunk.getZ(); z <= z2; z+=15) {
                result.add(new Location(world, x, 0, z).getChunk());
                x++;
                z++;
            }
        }
 
У меня есть первая точка и вторая, конечная цель - получение всех сундуков, самое разумное решение на мой взгляд, это пользоваться чанками. Но в итоге, почему-то не все сундуки удаётся получить, скорее всего, я неправильно считаю чанки

Код:
        Chunk chunk = new Location(world, x1, 0, z1).getChunk();

        for (int x = chunk.getX(); x <= x2; x+=15) {
            for (int z = chunk.getZ(); z <= z2; z+=15) {
                result.add(new Location(world, x, 0, z).getChunk());
                x++;
                z++;
            }
        }
Если ты имел ввиду найти все координаты чанков по координатам обычных блоков то вот одно из решений:
Код:
        Location firstLocation = new Location(world, -100, 64, -100);
        Location secondLocation = new Location(world, 100, 64, 100);
        for (int x = (firstLocation.getBlockX() >> 4); x <= (secondLocation.getBlockX() >> 4); x++) {
            for (int z = (firstLocation.getBlockZ() >> 4); z <= (secondLocation.getBlockZ() >> 4); z++) {
                Chunk chunk = world.getChunkAt(x, z);
            }
        }
Если не сработает, убедить что secondLocation.getBlockX() вернет число больше чем firstLocation.getBlockX(), для продолжения итерации. (тоже самое и про getBlockZ())
 
Если ты имел ввиду найти все координаты чанков по координатам обычных блоков то вот одно из решений:
Код:
        Location firstLocation = new Location(world, -100, 64, -100);
        Location secondLocation = new Location(world, 100, 64, 100);
        for (int x = (firstLocation.getBlockX() >> 4); x <= (secondLocation.getBlockX() >> 4); x++) {
            for (int z = (firstLocation.getBlockZ() >> 4); z <= (secondLocation.getBlockZ() >> 4); z++) {
                Chunk chunk = world.getChunkAt(x, z);
            }
        }
Если не сработает, убедить что secondLocation.getBlockX() вернет число больше чем firstLocation.getBlockX(), для продолжения итерации. (тоже самое и про getBlockZ())
Большое спасибо.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх