Что такое модульные подземелья?
Модульные подземелья — это система подземелий, введённая в BetterStructures 2.0.0 и позднее. Вместо размещения одного фиксированного схематика модульные подземелья динамически собираются из небольших, вручную созданных модулей. Этот подход позволяет создавать большие, многоэтажные подземелья, которые ощущаются уникальными в каждом мире, при этом органично вписываясь в ванильный Minecraft.
Как генерируются модульные подземелья
-
Модули Каждый модуль обычно строится в настраиваемом размере (по умолчанию 16x16x16 блоков, хотя некоторые пакеты контента используют 32x16x32 или другие размеры). Модули спроектированы со стандартизированными точками соединения, использующими систему граничных тегов, чтобы они могли стыковаться с другими модулями без зазоров или наложений. Размеры подземелья задаются параметрами
moduleSizeXZиmoduleSizeYв конфигурации генератора модулей. Модули могут содержать коридоры, комнаты, лестницы или специальные помещения для встреч. -
Процесс генерации Когда модульное подземелье генерируется в новом чанке, BetterStructures использует алгоритм Wave Function Collapse (WFC) для процедурной сборки модулей из доступного пула. Система случайно выбирает совместимые модули на основе сопоставления граничных тегов и «сшивает» их вместе в целое подземелье. Время генерации зависит от производительности сервера, размера подземелья (радиуса), вертикального диапазона, количества модулей и сложности ограничений. Система использует распределение нагрузки для предотвращения лагов сервера во время генерации.
-
Размер подземелья Подземелья могут быть настроены на различные размеры с помощью параметра радиуса. Большие значения радиуса создают значительно более крупные подземелья, которые могут растягиваться на сотни блоков. Большинство подземелий включают несколько этажей, связанных через лестничные модули или вертикальные шахты. Вертикальные соединения между этажами достигаются через модули с
upIsPassableиdownIsPassable, установленными в true.
Разнообразие и интеграция пакетов
-
Free Pack Dungeoneering Modules Free Pack включает 15 модулей. Он функционирует как полноценное играбельное подземелье сам по себе.
-
Premium Pack Dungeoneering Modules Premium Pack добавляет 38 дополнительных модулей. В сочетании с Free Pack оба набора переплетаются в единую систему подземелий с гораздо большим пулом модулей. Это уменьшает повторения и увеличивает разнообразие сгенерированных планировок.
-
Интеграция пропсов Если вы также установите BetterStructures Prop Pack (через FreeMinecraftModels), модульные подземелья будут отображать пользовательские пропсы-модели по всей постройке, как показано на наших скриншотах. Без пакета пропсов подземелья будут работать нормально, но без декоративных моделей.
Интеграция EliteMobs
Хотя большая часть подземелья использует только BetterStructures и ванильных мобов Minecraft, некоторые подземелья содержат встречи с боссами:
- Если установлены EliteMobs и FreeMinecraftModels → полный бой с боссом с моделью.
- Если установлен только FreeMinecraftModels → модель босса появляется как декоративный пропс.
- Если ничего не установлено → комната босса будет просто пустой.
Система использует знаковую систему спавна со специальными тегами для размещения сущностей и контейнеров в назначенных областях. Уровни боссов масштабируются на основе расстояния от центра подземелья, обеспечивая соответствующий вызов по всей структуре.
Типы знаков модулей
| Тег знака | Строка 1 | Дополнительные строки | Описание |
|---|---|---|---|
[spawn] | [spawn] | Тип сущности на строке 2 | Создаёт ванильную сущность на месте знака |
[pool: poolname] | [pool: poolname] | — | Создаёт случайного босса из именованного пула спавна |
[chest] | [chest] | — | Размещает сундук на месте знака |
[trapped_chest] | [trapped_chest] | — | Размещает сундук-ловушку на месте знака |
[barrel] | [barrel] | — | Размещает бочку на месте знака |
[exit] | [exit] | Имена файлов схематиков лифта на строках 2-3 | Отмечает точку выхода со схематиками лифта вверх/вниз |
Если EliteMobs не установлен, но пакет контента его требует, администраторы получат предупреждающее сообщение.
Такой дизайн сохраняет совместимость модульных подземелий с ванильными конфигурациями, предлагая при этом более глубокую интеграцию для пользователей с дополнительными плагинами.
Интеграция MythicMobs
BetterStructures также поддерживает интеграцию с MythicMobs для пользовательских встреч с мобами в модульных подземельях.
Когда MythicMobs установлен, пакеты структур могут создавать пользовательских мобов MythicMobs как часть генерации подземелья. Это позволяет создавать более сложные встречи с мобами и бои с боссами помимо того, что предоставляют ванильный Minecraft или EliteMobs.
Если MythicMobs не установлен, плагин уведомит администраторов с соответствующими разрешениями и предоставит ссылку для скачивания.
Интеграция FMM
Модульные подземелья также могут использовать пропсы FreeMinecraftModels (FMM) при создании.
- Если FMM установлен, любые пропсы, размещённые создателем модуля, будут отображаться в сгенерированном подземелье.
- Пропсы чисто декоративные и не влияют на геймплей, но они улучшают визуальную точность и погружение.
- Если FMM не установлен, подземелье будет генерироваться нормально, но пользовательские пропсы не будут отображаться.
Это гарантирует, что создатели могут проектировать подземелья с дополнительными деталями, сохраняя совместимость для игроков без FMM.
Размеры модулей
Важно: Размер модуля настраиваемый, не фиксированный.
Каждый генератор модулей определяет стандартный размер модуля через:
moduleSizeXZ: Ширина и глубина в блоках (по умолчанию: 16)moduleSizeY: Высота в блоках (по умолчанию: 16)
Размер по умолчанию: 16×16×16 блоков Распространённая альтернатива: 32×16×32 блоков (используется в некоторых пакетах контента)
Для создателей модулей:
- Проверьте значения
moduleSizeXZиmoduleSizeYв конфигурации генератора - Стройте ВСЕ модули для этого генератора в точном соответствии с этими размерами
- Несовпадающие размеры приведут к ошибкам соединения
Установка пользовательских размеров: В файле конфигурации генератора модулей:
moduleSizeXZ: 32 # Width and depth
moduleSizeY: 16 # Height
Примечание: Все модули в генераторе должны использовать одинаковые размеры. Вы не можете смешивать модули 16×16×16 и 32×16×32 в одной системе подземелий.
Поля конфигурации генератора модулей
Помимо moduleSizeXZ и moduleSizeY, конфигурация генератора модулей поддерживает следующие поля:
| Поле | По умолчанию | Описание |
|---|---|---|
radius | 1 | Радиус подземелья в чанках |
edges | false | Генерируются ли крайние модули |
startModule | — | Список начальных модулей для генерации |
minChunkY | 0 | Минимальная вертикальная граница чанка |
maxChunkY | 0 | Максимальная вертикальная граница чанка |
moduleSizeXZ | 16 | Ширина и глубина модулей в блоках |
moduleSizeY | 16 | Высота модулей в блоках |
debug | false | Включает режим отладки для устранения проблем генерации |
useGradientLevels | false | Включает градиентное масштабирование уровней для созданных сущностей |
spawnPoolSuffix | — | Суффикс, добавляемый к именам пулов спавна для этого генератора |
isWorldGeneration | false | Используется ли этот генератор для генерации мира |
treasureFile | — | Файл конфигурации сокровищ |
validWorlds | — | Список допустимых имён миров для генерации подземелья |
validWorldEnvironments | — | Список допустимых окружений мира |
centerModuleAltitude | 0 | Высота центрального модуля |
Поля конфигурации отдельных модулей
Каждый отдельный модуль может определять следующие поля конфигурации:
| Поле | По умолчанию | Описание |
|---|---|---|
isEnabled | true | Включён ли этот модуль |
weight | 100 | Вес выбора этого модуля при генерации |
repetitionPenalty | 0 | Штраф при многократном выборе этого модуля |
noRepeat | false | Предотвращает повторение этого модуля |
northIsPassable | true | Позволяет ли северная сторона соединения |
southIsPassable | true | Позволяет ли южная сторона соединения |
eastIsPassable | true | Позволяет ли восточная сторона соединения |
westIsPassable | true | Позволяет ли западная сторона соединения |
upIsPassable | true | Позволяет ли верхняя сторона соединения |
downIsPassable | true | Позволяет ли нижняя сторона соединения |
enforceVerticalRotation | false | Применяет ограничения вертикального вращения |
enforceHorizontalRotation | false | Применяет ограничения горизонтального вращения |
minY | -4 | Минимальный уровень Y для этого модуля |
maxY | 20 | Максимальный уровень Y для этого модуля |
biome | default | Требование биома для этого модуля |
minecraftBiome | null | Требование биома Minecraft для этого модуля |
treasureFile | — | Файл конфигурации сокровищ для этого модуля |
borders | — | Карта граничных тегов, определяющая совместимость соединений |
cloneConfig | — | Клонирование настроек из другого файла конфигурации модуля |
compoundModule | — | Связывает этот модуль как часть составного (многочастного) модуля |
isAutomaticallyPlaced | true | Размещается ли модуль автоматически при генерации |