Создание генераторов
Генераторы
Генераторы — самая мощная часть системы конфигурации BetterStructures. По умолчанию существует 29 генераторов, которые совместно управляют постройками, распространяемыми BetterStructures на данный момент. Вы можете создавать собственные генераторы, а также использовать существующие в качестве быстрого способа.
Генераторы указывают плагину, где именно должны появляться объекты, и определяют таблицы добычи. Генераторы по умолчанию названы так, чтобы было легко угадать, что они делают.
Параметры конфигурации генератора
| Ключ | По умолчанию | Обязательный | Описание |
|---|---|---|---|
isEnabled | true | ❌ | Включён ли генератор. Установка значения false также прекращает регистрацию всех схематик, указывающих на этот генератор, поэтому это самый быстрый способ отключить целый набор структур. |
structureType | - | ✅ | Где появляются структуры (см. таблицу ниже) |
lowestYLevel | -59 | ❌ | Минимальный уровень Y для спауна |
highestYLevel | 320 | ❌ | Максимальный уровень Y для спауна |
validWorlds | Все разрешены | ❌ | Список миров, где могут появляться структуры |
validWorldEnvironments | Все разрешены | ❌ | NORMAL, NETHER, THE_END |
validBiomesV2 | Все биомы | ❌ | Список допустимых биомов (формат namespace:key) |
treasureFilename | - | ❌ | Файл сокровищ для добычи из сундуков |
generateLootInBarrels | true | ❌ | Должны ли бочки, найденные в schematics этого генератора, заполняться добычей |
barrelTreasureFilename | treasure_barrel_food.yml | ❌ | Файл сокровищ, используемый для заполнения бочек этого генератора |
structureType
Устанавливает тип структуры постройки. Вы можете указать несколько типов структур для одного генератора!
| Тип | Верхний мир / Пользовательский | Нижний мир | Край | Описание |
|---|---|---|---|---|
SURFACE | Поверхность | Точки, похожие на поверхность | Поверхность | Появляется на поверхности мира |
SKY | 80-120 блоков над самым высоким блоком | Воздушный карман, найденный между Y 45 и Y 100 | 80 блоков над самым высоким блоком | Появляется в небе (настраивается в config.yml) |
UNDERGROUND_SHALLOW | Y 0-50 | Y 60-120 | Y 0-80 | Неглубокие подземные структуры |
UNDERGROUND_DEEP | Y -53 до 0 | Y 5-60 | Y 0-80 | Глубокие подземные структуры |
LIQUID_SURFACE | Вода (океаны) | Лавовый океан на Y 31 | Проверка на жидкость не применяется | Появляется на поверхностях жидкостей |
DUNGEON | ✅ | ✅ | ✅ | Используется для размещения модульных подземелий |
Диапазоны для неба — это смещения, применяемые над самым высоким блоком в этой колонке, а не абсолютные уровни Y.
Пример нескольких типов структур
structureType:
- SURFACE
- UNDERGROUND_SHALLOW
Это позволяет одному генератору создавать структуры в нескольких местах, например, как на поверхности, так и в неглубоких подземных областях.
Примечание: Существует два подземных параметра, поскольку в Minecraft много подземного пространства. Оба обеспечивают равномерное распределение по глубинам и предотвращают пропуск структур игроками.
Диапазоны Y-уровней по измерениям
Диапазоны высот по умолчанию по измерениям (настраиваемые в config.yml):
| Измерение | Диапазон по умолчанию | Настройки конфигурации |
|---|---|---|
| Верхний мир/Пользовательский | Y=-60 до Y=320 | lowestYNormalCustom / highestYNormalCustom |
| Нижний мир | Y=4 до Y=120 | lowestYNether / highestYNether |
| Край | Y=0 до Y=320 | lowestYEnd / highestYEnd |
| Небо (Верхний мир/Пользовательский) | 80-120 блоков над самым высоким блоком | normalCustomAirBuildingMinAltitude / normalCustomAirBuildingMaxAltitude |
| Небо (Край) | 80 блоков над самым высоким блоком | endAirBuildMinAltitude |
Эти значения по умолчанию могут быть переопределены для каждого генератора с помощью lowestYLevel и highestYLevel.
Две строки про небо — это смещения, добавляемые поверх самого высокого блока в колонке, а не абсолютные уровни Y. endAirBuildMaxAltitude записывается в config.yml, но в настоящее время не читается, поэтому структуры в небе Края всегда находятся ровно на endAirBuildMinAltitude блоков выше.
Поддержка пользовательских биомов
BetterStructures автоматически поддерживает пользовательские биомы из генераторов миров, таких как Terralith, Iris, Terra и TerraformGenerator.
Когда вы указываете ванильный биом в validBiomesV2, плагин автоматически включает совместимые пользовательские биомы:
validBiomesV2:
- minecraft:plains
- minecraft:forest
Это порождает структуры в ванильных биомах И всех пользовательских биомах, привязанных к этим типам (напр., terralith:blooming_plains).
Где на самом деле находятся сопоставления
Таблица сопоставления пользовательских биомов ванильным не хранится в BetterStructures. Это единственная жёстко заданная таблица внутри MagmaCore — общей библиотеки, встроенной в BetterStructures, — и она используется совместно с другими плагинами MagmaGuy, которым она нужна.
Из этого следуют два практических вывода:
- Длинные списки биомов, которые вы видите в поставляемых файлах
generator_surface_*.yml, — это сгенерированный вывод, а не источник истины. При загрузке BetterStructures читаетvalidBiomesV2, ищет каждую записьminecraft:в таблице MagmaCore, добавляет все пользовательские биомы, привязанные к ней, а затем записывает расширенный список прямо обратно в файл генератора. Поэтому генератор, который вы написали в две строки, может вернуться с сотней. Правка этого расширенного списка влияет только на этот один генератор, а любая оставленная вами записьminecraft:будет заново расширена при следующей загрузке. - Добавление поддержки нового пользовательского биома для всех — это изменение в MagmaCore, а не в конфиге. Если генератор миров поставляет биом, который BetterStructures не распознаёт, добавление его в
validBiomesV2генератора — это локальный обходной путь для этого одного генератора. Правильное сопоставление означает добавление его в таблицу сопоставлений MagmaCore, а это изменение кода — оформите запрос вместо попыток решить это в yml-файлах.
Вы по-прежнему можете напрямую указать пользовательский биом в validBiomesV2 (всё, что уже содержит :, берётся как есть и дальше не расширяется) — это правильный ход для разового генератора, который должен появляться только в одном конкретном пользовательском биоме.
Биомы, которые MagmaCore сопоставляет с nothing, намеренно исключены — это пользовательские биомы, считающиеся непригодными для структур, и ни один ванильный биом их не подтянет.
treasureFilename
Устанавливает файл сокровищ для добычи из сундуков. Это применяется ко всем постройкам, использующим этот генератор, если не переопределено в конфигурации schematic.
generateLootInBarrels и barrelTreasureFilename
BetterStructures теперь рассматривает бочки как второй контейнер добычи наряду с сундуками.
generateLootInBarrels(по умолчаниюtrue) переключает заполнение бочек внутри структур, размещаемых этим генератором. Установитеfalse, чтобы оставить бочки нетронутыми.barrelTreasureFilename(по умолчаниюtreasure_barrel_food.yml) выбирает, какой файл сокровищ разыгрывается при заполнении этих бочек. По умолчанию поставляется лёгкая таблица добычи, ориентированная на еду, но вы можете указать любой файл сокровищ.
Оба параметра можно переопределить для каждой schematic с помощью соответствующего поля barrelTreasureFilename в конфигурации schematic.