1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Проверка на ровность локации

Тема в разделе "Помощь", создана пользователем GenerateIdeal, 31 окт 2024.

  1. Автор темы
    GenerateIdeal

    GenerateIdeal Ньюби

    Баллы:
    1
    Я создаю ивент с большой схематикой (10x10) и бывает так что ивент спавнится в горе или вообще в речке, кто знает какие можно добавить дополнительные проверки чтобы ивент спавнился только на ровных локациях
     
  2. gnius132232

    gnius132232 Активный участник Пользователь

    Баллы:
    66
    При выборе локации, в зоне 10 на 10 от центра проверять что на y или y-n(Где n варьируется от 0 до 10, чтобы проверять) находяться блоки не являющаяся воздухом, лавой, водой, а если нет - то выбирать другую локацию?
     
  3. Автор темы
    GenerateIdeal

    GenerateIdeal Ньюби

    Баллы:
    1
    попробовал только что такое сделать, не, слишком долго. Есть ещё какие-то варианты сделать это с минимальной нагрузкой и высокой скоростью?
     
  4. Loker541

    Loker541 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Moveton
    Ограничь спавн ивента только для биомов с ровной поверхностью ( равнины, к примеру )
     
  5. gnius132232

    gnius132232 Активный участник Пользователь

    Баллы:
    66
    Так ведь равнины не всегда идеально плоские, если согласиться с небольшими выступами - то ок)

    Или можно совместить первый способ, с проверкой биомов, для наилучшей точности)
     
    Последнее редактирование: 31 окт 2024
  6. Автор темы
    GenerateIdeal

    GenerateIdeal Ньюби

    Баллы:
    1
    тоже так думал, но все равно скорость будет хромать + на моем сервере кастомная генерация мира и даже на то что я там сделал 50% ровнин все равно жоска виснет
     
  7. FeniksDEV

    FeniksDEV Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Feniksovich
  8. koten0k

    koten0k Активный участник Пользователь

    Баллы:
    46
    парящий эвент в небесах, особенно когда кто-то построит ужасный высокий гигантский столб


    а чанки прогружены? А то может виснет от прогрузки чанков, в которые падает аирхрень (ой аирдроп)
     
  9. FeniksDEV

    FeniksDEV Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Feniksovich
    Всего лишь дал более эффективные и каноничные методы, решать задачу плотностью и не собирался.
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну естественно, если проверка ограничилась одним лишь блоком, а не средним числом блоков под схематикой, удалив все неровности.
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Так веди расчеты в отдельном потоке, в идеале в копии мира, что бы загрузка чанков не тормозила основной поток, а потом уже вставляй схематик.
     
  12. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Пример того, как делал я:

    Вместо проверки высоты каждого блока достаточно проверять лишь каждый 3-й или 4-й по сетке.
    При проверке нужно в отдельных переменных хранить минимальную и максимальную найденную высоту. Если разница между этими двумя значениями начинает превышать 5 блоков - тогда сразу отменять перебор и начинать поиск другой локации.

    Помимо этого для вставки можно использовать лишь определённые биомы - равнины, пустыни, океаны. Это увеличит вероятность обнаружения подходящей ровной поверхности.

    Также чтобы ускорить поиск при вставке необходимо запускать его сразу после запуска плагина и находить штук 5 разных подходящих локаций. При необходимости вставки лишь повторно проверять первую найденную локацию на валидность, если не подходит - переходить ко второй и так далее.
    И, соответственно, после успешной вставки запускать поиск новой локации, чтобы буфер подходящих локаций всегда содержал +- 5 элементов.

    После вставки можно равнять территорию близь шематика, чтобы смотрелось ещё более натурально.

    Для каждой структуры можно иметь свои параметры вставки и буфер подходящих локаций. Просто методом тыка подобрать:
    - Список подходящих биомов
    - Расстояние между точками при анализе местности
    - Максимальный разброс по высоте
    - Размер буфера подходящих локаций
    - Расстояние, на котором после вставки будет сглаживаться территория
     

Поделиться этой страницей