Перейти к содержимому

Собственный мир превращается в океан

✅ Reproduced failure WorldBox 0.51.2

Собственный пресет New World успешно запускает генерацию, но получившаяся карта почти полностью состоит из океана.

UI работает. Клик по пресету определяется. Явного краша нет.

TerraForge 0.0.16 ожидал запуск собственного terrain-pass во время первого Height / Perlin этапа WorldBox.

На тестируемом маршруте генерации этот callback вообще не был вызван.

Лог показывал:

  • клик по пресету TerraForge найден;
  • генерация началась;
  • реальные размеры карты доступны;
  • WorldBox переходит к генерации тайлов;
  • ожидаемых Height / Perlin проходов — ноль;
  • TerraForge отдаёт управление дальше, так и не записав собственную карту высот.

Результат — океан.

Почти всё вокруг работало:

  • вставка собственного UI;
  • активация пресета;
  • создание карты;
  • определение runtime-размеров;
  • дальнейший ванильный pipeline биомов и ресурсов.

Сломалось только одно предположение:

callback, на который мы рассчитывали, не обязан запускаться на этом маршруте генерации.

Был добавлен прямой pre-tile fallback:

  1. использовать обычный Height / Perlin маршрут, если он существует;
  2. если WorldBox доходит до преобразования тайлов с нулём собственных height-pass;
  3. найти активный runtime WorldTile[,];
  4. напрямую записать карту высот TerraForge в WorldTile.Height;
  5. позволить ванильной системе продолжить преобразование тайлов, биомы, растительность и ресурсы.

Следующий тест уже создал настоящую пользовательскую сушу вместо сплошного океана.

Если пользовательский генератор создаёт только океан, отдельно проверьте:

  1. пресет действительно активировался?
  2. ваш generation handler вообще выполнился?
  3. он получил реальные runtime-размеры?
  4. данные были записаны в настоящее хранилище высоты?
  5. ожидаемый ванильный callback действительно запускался?
  6. преобразование тайлов произошло после вашей записи?

Отсутствие исключения ещё не доказывает, что ваш terrain-pass запускался.