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

Создание генераторов

Генераторы

Генераторы — самая мощная часть системы конфигурации BetterStructures. По умолчанию существует 29 генераторов, которые совместно управляют постройками, распространяемыми BetterStructures на данный момент. Вы можете создавать собственные генераторы, а также использовать существующие в качестве быстрого способа.

Генераторы указывают плагину, где именно должны появляться объекты, и определяют таблицы добычи. Генераторы по умолчанию названы так, чтобы было легко угадать, что они делают.

Параметры конфигурации генератора

КлючПо умолчаниюОбязательныйОписание
isEnabledtrueВключён ли генератор. Установка значения false также прекращает регистрацию всех схематик, указывающих на этот генератор, поэтому это самый быстрый способ отключить целый набор структур.
structureType-Где появляются структуры (см. таблицу ниже)
lowestYLevel-59Минимальный уровень Y для спауна
highestYLevel320Максимальный уровень Y для спауна
validWorldsВсе разрешеныСписок миров, где могут появляться структуры
validWorldEnvironmentsВсе разрешеныNORMAL, NETHER, THE_END
validBiomesV2Все биомыСписок допустимых биомов (формат namespace:key)
treasureFilename-Файл сокровищ для добычи из сундуков
generateLootInBarrelstrueДолжны ли бочки, найденные в schematics этого генератора, заполняться добычей
barrelTreasureFilenametreasure_barrel_food.ymlФайл сокровищ, используемый для заполнения бочек этого генератора

structureType

Устанавливает тип структуры постройки. Вы можете указать несколько типов структур для одного генератора!

ТипВерхний мир / ПользовательскийНижний мирКрайОписание
SURFACEПоверхностьТочки, похожие на поверхностьПоверхностьПоявляется на поверхности мира
SKY80-120 блоков над самым высоким блокомВоздушный карман, найденный между Y 45 и Y 10080 блоков над самым высоким блокомПоявляется в небе (настраивается в config.yml)
UNDERGROUND_SHALLOWY 0-50Y 60-120Y 0-80Неглубокие подземные структуры
UNDERGROUND_DEEPY -53 до 0Y 5-60Y 0-80Глубокие подземные структуры
LIQUID_SURFACEВода (океаны)Лавовый океан на Y 31Проверка на жидкость не применяетсяПоявляется на поверхностях жидкостей
DUNGEONИспользуется для размещения модульных подземелий

Диапазоны для неба — это смещения, применяемые над самым высоким блоком в этой колонке, а не абсолютные уровни Y.

Пример нескольких типов структур
structureType:
- SURFACE
- UNDERGROUND_SHALLOW

Это позволяет одному генератору создавать структуры в нескольких местах, например, как на поверхности, так и в неглубоких подземных областях.

Примечание: Существует два подземных параметра, поскольку в Minecraft много подземного пространства. Оба обеспечивают равномерное распределение по глубинам и предотвращают пропуск структур игроками.


Диапазоны Y-уровней по измерениям

Диапазоны высот по умолчанию по измерениям (настраиваемые в config.yml):

ИзмерениеДиапазон по умолчаниюНастройки конфигурации
Верхний мир/ПользовательскийY=-60 до Y=320lowestYNormalCustom / highestYNormalCustom
Нижний мирY=4 до Y=120lowestYNether / highestYNether
КрайY=0 до Y=320lowestYEnd / 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, которым она нужна.

Из этого следуют два практических вывода:

  1. Длинные списки биомов, которые вы видите в поставляемых файлах generator_surface_*.yml, — это сгенерированный вывод, а не источник истины. При загрузке BetterStructures читает validBiomesV2, ищет каждую запись minecraft: в таблице MagmaCore, добавляет все пользовательские биомы, привязанные к ней, а затем записывает расширенный список прямо обратно в файл генератора. Поэтому генератор, который вы написали в две строки, может вернуться с сотней. Правка этого расширенного списка влияет только на этот один генератор, а любая оставленная вами запись minecraft: будет заново расширена при следующей загрузке.
  2. Добавление поддержки нового пользовательского биома для всех — это изменение в MagmaCore, а не в конфиге. Если генератор миров поставляет биом, который BetterStructures не распознаёт, добавление его в validBiomesV2 генератора — это локальный обходной путь для этого одного генератора. Правильное сопоставление означает добавление его в таблицу сопоставлений MagmaCore, а это изменение кода — оформите запрос вместо попыток решить это в yml-файлах.

Вы по-прежнему можете напрямую указать пользовательский биом в validBiomesV2 (всё, что уже содержит :, берётся как есть и дальше не расширяется) — это правильный ход для разового генератора, который должен появляться только в одном конкретном пользовательском биоме.

Биомы, которые MagmaCore сопоставляет с nothing, намеренно исключены — это пользовательские биомы, считающиеся непригодными для структур, и ни один ванильный биом их не подтянет.


treasureFilename

Устанавливает файл сокровищ для добычи из сундуков. Это применяется ко всем постройкам, использующим этот генератор, если не переопределено в конфигурации schematic.


generateLootInBarrels и barrelTreasureFilename

BetterStructures теперь рассматривает бочки как второй контейнер добычи наряду с сундуками.

  • generateLootInBarrels (по умолчанию true) переключает заполнение бочек внутри структур, размещаемых этим генератором. Установите false, чтобы оставить бочки нетронутыми.
  • barrelTreasureFilename (по умолчанию treasure_barrel_food.yml) выбирает, какой файл сокровищ разыгрывается при заполнении этих бочек. По умолчанию поставляется лёгкая таблица добычи, ориентированная на еду, но вы можете указать любой файл сокровищ.

Оба параметра можно переопределить для каждой schematic с помощью соответствующего поля barrelTreasureFilename в конфигурации schematic.