Задержка при генерации структуры.

Версия Minecraft
1.7.10
586
1
2
Всем привет,хотел по интересоваться решением следующей проблемы. У меня при генерации большой структуры(например замка) начинает виснуть майн и через некоторое время отвисает(мин 3-10). Генерирую я структуру при помощи огромного количества классов с функцией setBlock().
Есть идеи как сделать какую то задержку или ещё что-то?
 
3,005
192
592
Такие структуры надо через схематику или НБТ генерировать.
Я конечно извиняюсь, но через чего они тогда ставят блоки? Не через setBlock? А тогда как? Хммм...
~~~
А по теме:
Может хост такой плохой, что не хватает памяти?
Или код кривой, что работает через одно место?
 
586
1
2
Я конечно извиняюсь, но через чего они тогда ставят блоки? Не через setBlock? А тогда как? Хммм...
~~~
А по теме:
Может хост такой плохой, что не хватает памяти?
Или код кривой, что работает через одно место?
Хост?Оо
Я имею ввиду что любой обычный пользователь у себя на машине.
Вот код,но ничего интересного из него вы не узнаете(сам класс наследует WorldGenerator) :
Java:
public boolean generate_r1(World world, Random rand, int x, int y, int z,boolean test)
{
        if(test == true)   
        if(!LocationIsValidSpawn(world, x, y, z) || !LocationIsValidSpawn(world, x + 28, y, z) || !LocationIsValidSpawn(world, x + 28, y, z + 116) || !LocationIsValidSpawn(world, x, y, z + 58))
        {

            return false;

        }   

        world.setBlock(x + 0, y + 0, z + 58, Blocks.air, 0, 3);

        world.setBlock(x + 0, y + 0, z + 57, Blocks.air, 0, 3);

        world.setBlock(x + 0, y + 0, z + 56, Blocks.air, 0, 3);

        world.setBlock(x + 0, y + 0, z + 55, Blocks.air, 0, 3);

        ...
        
        new generateStruct001().generate_r10(world, rand, x, y, z); // И так далее
}
 
3,005
192
592
new generateStruct001().generate_r10(world, rand, x, y, z); // И так далее
Эм.. А что это?
Нельзя генерировать все сразу в 1 методе?
Как вариант - сделать схематик.
И потом через код его распаковывать и генерировать.
 
3,005
192
592
Сделай класс, который сам распакует в массив (как вариант) и будет его нормально генерировать, нежели просто сетать.
 
3,005
192
592
Как вариант - в место добавления массив - сразу ставь блок.
 
1,976
68
220
Запускай генерацию в новом треде, лагать не будет, но возможно структура будет появлятся по кускам. В большинстве случаев это ничему не мешает. Но вариант не стопроцентный.
Другой способ - редачить сырой чанк, как уже говорилось выше. Там у тебя будет массив блоков в чанке [16x16x256]. Просто заменяй на нужные. Но тут основная проблема в том, что конвертеров на это дело нет, так что все блоки тебе придётся туда вписывать ручками, ну или используя "Найти+Заменить" или мультистрочным выделением (в Notepad++ такая фича есть, в эклипсе и идее не знаю).
 
586
1
2
Запускай генерацию в новом треде, лагать не будет, но возможно структура будет появлятся по кускам. В большинстве случаев это ничему не мешает. Но вариант не стопроцентный.
Другой способ - редачить сырой чанк, как уже говорилось выше. Там у тебя будет массив блоков в чанке [16x16x256]. Просто заменяй на нужные. Но тут основная проблема в том, что конвертеров на это дело нет, так что все блоки тебе придётся туда вписывать ручками, ну или используя "Найти+Заменить" или мультистрочным выделением (в Notepad++ такая фича есть, в эклипсе и идее не знаю).
Можно про первый вариант по подробнее,второй не подходит.
Не знаю, поможет ли, но в BetterDangeons есть задержка, при ручной генерации больших структур. Там, кажется, шкала прогресса появляется, или как-то так.
Точно?А то я помню когда с ним играл такого не было.
 
917
22
332
Ну я не могу сказать какая версия, ибо не помню. Помню что при правом клике(предмет) писало "генерация структуры", и играть можно было без задержек. Потом структура резко появлялась. Думал, тихонько генерирует себе на сервере, а потом посылает клиентам пакет. Как на самом деле - не знаю.
 
5,018
47
783
дело в том, что не создаются каждый раз новые обьекты блока, а подгружаются готовые из нбт. Вследствие чего производительность растет очень сильно

Автору - построй свой замок ручками в игре, потом прогугли про structure_block(не знаю точно, есть ли он в 1.7)
 
Сверху