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

Создание контента


Создание постройки

Нет ограничений на то, что вы можете построить для BetterStructures, хотя рекомендуется сохранять размер структур менее 100x100x100 блоков для лучшего вписывания в мир и по соображениям производительности. Тем не менее, плагин легко справляется со значительно более крупными структурами.


Специальные блоки

BetterStructures имеет два специальных блока: барьеры и коренную породу. Любой другой блок, который WorldEdit может вставить, будет вставлен нормально, но блоки барьера и коренной породы являются исключением.

БлокПоведениеВариант использования
БарьерНе размещает блок в этой позиции - сохраняет исходный рельефСкругление краёв вставки, подгонка стен под пещеры, естественная интеграция
Коренная породаГарантирует существование твёрдого блока. Если воздух/жидкость - заменяет материалом пьедесталаСоздание полов для рельсов, гарантия наличия пола без перезаписи существующих блоков

Таблички спауна

BetterStructures может использовать таблички со специальным текстом для создания мобов и боссов из EliteMobs и MythicMobs в определённых местах.

Примечание: таблички спауна расходуются при вставке структуры — BetterStructures заменяет блок таблички воздухом в момент создания сущности, поэтому игроки их никогда не видят. Табличка с нераспознанным тегом просто вставляется как обычная табличка и остаётся видимой.

Тип табличкиСтрока 1Строки 2-4Требуемый плагин
Ванильные мобы[spawn]Тип сущности на строке 2Не требуется
EliteMobs[elitemobs]Имя файла босса, распределённое по строкам 2-4EliteMobs
MythicMobs[mythicmobs]Имя моба на строке 2, необязательный уровень на строке 3MythicMobs

Подходит любая табличка. Принимаются все типы древесины, а также как стоящие, так и настенные варианты, включая висячие таблички и таблички из типов древесины, добавленных после написания плагина — проверяется то, что блок является табличкой, а не фиксированный список материалов.

Строка с уровнем MythicMobs необязательна. Оставьте строку 3 пустой, и моб появится с уровнем 1.

Примеры табличек спауна

Ванильные мобы

[spawn]

ZOMBIE

Создаёт постоянного зомби в этом месте. Работает с любым Spigot EntityType, включая стойки для брони и кристаллы Края.

EliteMobs

[elitemobs]

test_boss_with

_a_long_name

.yml

Длинные имена файлов могут занимать несколько строк. Боевые арены защищены WorldGuard до тех пор, пока все боссы не будут убиты.

MythicMobs

[mythicmobs]

SkeletalKnight

10

Создаёт SkeletalKnight 10-го уровня.


Schematics

Schematics — это файлы, генерируемые WorldEdit или FastAsyncWorldEdit, которые содержат блоки постройки, используемой BetterStructures. BetterStructures использует формат файлов .schem (современный стандарт WorldEdit). Убедитесь, что вы сохраняете свои schematics в формате .schem, а не в устаревшем формате .schematic.

Подробные инструкции по созданию schematic здесь не приводятся, так как они подробно описаны в документации WorldEdit и FastAsyncWorldEdit, но в общих чертах это делается так:

  1. Выберите один угол постройки и используйте команду //pos1
  2. Выберите диагонально противоположный угол и используйте команду //pos2
  3. Используйте команду //copy
  4. Используйте команду /schem save <schematicname>, где <schematicName> — имя файла для вашего schematic.
worldedit documentation image from their docs

Убедитесь, что вы выполняете команду //pos1 в точке 1 и //pos2 в точке 2!


Точка привязки

Точки привязки — это места, где вы выполняете команду //copy для schematic. Они определяют начальную точку структуры при размещении в мире.

Тип постройкиРекомендуемая позиция привязкиПричина
ПоверхностьСамая низкая точка полаОбеспечивает правильное выравнивание по земле
ПодземнаяНа вершине постройкиПозволяет правильно определить глубину залегания
ЖидкостьНа поверхности водыПравильное размещение на поверхности воды
Воздух/НебоНа вершине постройкиПравильное позиционирование по высоте

Важно: Всегда будьте очень близко или непосредственно над постройками при копировании. Чем дальше вы находитесь, тем больше лагов вызовет операция вставки.


Конфигурации schematic

Каждый файл schematic имеет конфигурацию schematic. Если файл schematic был только что добавлен на сервер, конфигурация будет сгенерирована после перезапуска или после команды /betterstructures reload.

Файл .yml генерируется в той же папке, что и .schem. plugins/BetterStructures/schematics сканируется рекурсивно, поэтому пакет контента, поставляющий свои схематики в подпапке, получает свои конфиги записанными в ту же подпапку. Имена файлов должны быть уникальными по всему дереву schematics: два файла .schem с одинаковым именем в разных папках делают поиск конфигурации неоднозначным, и BetterStructures теперь отказывается запускаться, вместо того чтобы гадать, какой из них вы имели в виду.

Файл .yml без соответствующего .schem пропускается с предупреждением, и структура не регистрируется.

Эти конфигурации позволяют задать следующие параметры для вставки schematic:

КлючПо умолчаниюОбязательныйОписание
isEnabledtrueВключена ли схема. Если отключена, она не будет размещаться нигде.
weight1.0Вес выбора. Больше = выше вероятность выбора. 2.0 = в 2 раза вероятнее, 0.5 = вдвое менее вероятно.
pedestalMaterialАвтоопределениеМатериал для блоков пьедестала (имена материалов Spigot). Автоматически определяет наилучшее соответствие, если не указано.
generatorConfigFilename-Имя файла конфигурации генератора, включая расширение .yml. Schematics без этого параметра не будут появляться.
treasureFileПо умолчанию генератораПереопределение файла сокровищ для сундуков этой структуры. Обычно лучше изменить генератор.
barrelTreasureFilenameПо умолчанию генератораПереопределение файла сокровищ для бочек этой структуры. По умолчанию используется то, что предоставляет генератор (или его резервное значение treasure_barrel_food.yml).

Контейнеры с добычей: BetterStructures автоматически распознаёт сундуки, сундуки-ловушки и обычные (неокрашенные) шалкеровые ящики, размещённые внутри schematics, и заполняет их с использованием файла сокровищ для сундуков. Бочки заполняются отдельно с помощью файла сокровищ для бочек (по умолчанию treasure_barrel_food.yml) и могут быть отключены для каждого генератора через generateLootInBarrels: false. Никакие специальные таблички или конфигурации для пометки этих контейнеров не требуются.

Отключённые генераторы: если у генератора, названного в generatorConfigFilename, стоит isEnabled: false, схематика пропускается целиком, даже если её собственный isEnabled равен true.

Подробности конфигурации

pedestalMaterial

Пьедесталы — это блоки, размещаемые под наземными/подземными постройками для заполнения воздушных пустот и улучшения интеграции с рельефом. Они также являются блоками, заменяющими блоки коренной породы в schematic.

Когда ничего не определено, плагин анализирует блоки под местом размещения структуры и выбирает наиболее распространённый тип материала с помощью взвешенного случайного выбора. По умолчанию: Нижний мир = адский камень, Край = камень Края, Прочее = камень.

generatorConfigFilename

Пример: generatorConfigFilename: generator_surface_global.yml

Файл генератора находится в папке конфигурации генераторов.

treasureFile

Для получения дополнительных сведений см. документацию по файлам сокровищ и документацию по генераторам.

Настройка контента

Всё, что распространяется в BetterStructures, можно редактировать. Вы можете изменять любые файлы schematic и настройки генераторов по своему усмотрению.

Приведённое выше руководство по созданию контента также может помочь вам при редактировании существующего контента.


Устранение неполадок

Если ваша структура не появляется, проверьте что:

  • Файл schematic в формате .schem
  • Указана действительная конфигурация генератора
  • Параметр isEnabled установлен в true — как в конфиге схематики, так и в генераторе, на который она указывает
  • Ваша версия WorldEdit/FastAsyncWorldEdit совместима
  • Файл .yml схематики лежит рядом с .schem, а не в постороннем дереве plugins/BetterStructures/plugins/BetterStructures/.... Старые сборки записывали конфиги по этому неверному пути, из-за чего поставляемые структуры оставались без генератора и молча переставали появляться. Если вы видите такую папку, конфиги внутри неё никогда не читались — удалите её и дайте плагину перегенерировать конфиги в правильном месте.

Если сервер отказывается запускаться с сообщением о дублирующемся имени файла схематики, значит один и тот же .schem лежит в двух разных папках внутри schematics (или modules). Переименуйте один из них.

Папка .schematic_cache

BetterStructures хранит преобразованные копии ваших схематик в plugins/BetterStructures/.schematic_cache. Поставляемые файлы .schem сохранены с более старой версией данных Minecraft, и их преобразование при каждом старте — самая затратная часть загрузки полной установки контента, поэтому результат преобразования сохраняется и переиспользуется.

Управлять этой папкой не нужно:

  • записи привязаны к содержимому схематики, вашей версии Minecraft и версии WorldEdit, поэтому правка схематики или обновление любого из плагинов автоматически пересобирает затронутые записи
  • записи, которым больше не соответствует ни одна схематика (например, после удаления пакета контента), удаляются при запуске
  • это всегда только оптимизация — если запись отсутствует, нечитаема или не проходит проверку, читается исходный .schem

Её безопасно удалить; следующий запуск просто пересоберёт её и займёт больше времени.

«Skipped N unsupported legacy block entries»

Поставляемые файлы .schem запоминают версию Minecraft, в которой они были сохранены, поэтому WorldEdit прогоняет их блок-сущности через конвертер данных Mojang при загрузке. Записи, чей тип больше не существует — чаще всего это minecraft:bed, поскольку блок-сущности кроватей исчезли в 1.13, когда цвет кровати перешёл в состояние блока, — не проходят конвертацию и записываются сервером в лог на уровне ERROR, по одной строке на блок. Полная установка контента порождает сотни одинаковых строк, которые выглядят как сломанная установка, но безвредны: сам блок конвертируется нормально, и структура вставляется корректно.

BetterStructures сворачивает этот шум в одну информационную строку, где указано, сколько записей было пропущено и какие ключи были задействованы. Когда вы её видите, исправлять ничего не нужно.

Если таблички спауна не работают:

  • Убедитесь, что формат таблички точно совпадает с примерами
  • Для EliteMobs/MythicMobs убедитесь, что плагины установлены
  • Проверьте правильность написания типов сущностей/имён мобов
  • Проверьте логи сервера на наличие конкретных сообщений об ошибках