feat: improve support addons

This commit is contained in:
reider745
2026-10-18 15:30:23 +03:00
parent 460b4692ac
commit 5230aee579
63 changed files with 4392 additions and 520 deletions
+19
View File
@@ -18,6 +18,25 @@ __Zote Core__ — серверное ядро, основанное на Inner C
java -jar ZoteCore-SNAPSHOT.jar -XX:MaxRAMPercentage=95.0
```
## Behavior packs 1.16
Распакуйте пак в `behavior_packs/<имя-пака>/` рядом с сервером: `manifest.json` должен находиться непосредственно в этой папке. Также загружаются паки из `behavior_packs` выбранного модпака, из модов и runtime-паки Inner Core. Исходные каталоги читаются без копирования и удаления; повторные пути и UUID загружаются один раз, с приоритетом зарегистрированных паков модов/модпака перед серверной папкой. После изменения пака перезапустите сервер.
Поддержка серверной части частичная:
- Манифесты версий 1 и 2, вложенные папки, необязательный `contents.json`, UTF-8/BOM и комментарии JSON. Ошибка отдельного файла записывается в лог и не прерывает загрузку остальных.
- Предметы форматов от `1.10` до `1.16.201`, включая `1.16.100`: собственный namespace, имя, размер стака, максимальная прочность, категория творческого инвентаря и базовая еда с питательностью и насыщением. Переопределение ванильных предметов не поддерживается. Визуальные компоненты обрабатывает клиент.
- Рецепты `minecraft:recipe_shaped` и `minecraft:recipe_shapeless` для верстака, shapeless-рецепты камнереза, `minecraft:recipe_furnace` для обычной и плавильной печи, костра и костра душ. Поддерживаются строковые и объектные ссылки на предметы, `data`, `count`, wildcard `data: -1`/`32767` во входных предметах и дополнительные результаты shaped-рецептов. Предметы всех паков регистрируются до рецептов.
- Сущности форматов от `1.8` до `1.16.201`: независимое состояние каждого моба, `component_groups`, события `add/remove`, `sequence`, взвешенный `randomize`, вложенные фильтры, таймеры и `environment_sensor`. Группы, переменные Molang, здоровье, экипировка и состояние контроллеров сохраняются в NBT. Поддерживаются вызов по строковому идентификатору и числовому ID яйца, яйца в творческом инвентаре, `runtime_identifier` и стабильные сетевые определения.
- AI с приоритетами: выбор цели, ответ на урон, ближняя/дальняя атака, прогулки, плавание/полёт, избегание, паника, следование, приманивание, размножение и поворот головы. Ограниченный A* обходит препятствия в загруженных чанках; поиск пути не генерирует новые чанки. Это серверная реализация целей, а не точная копия алгоритмов Bedrock.
- Жизненный цикл: дробные коллизии и масштаб, дыхание, горение, рост, приручение, лечение, взаимодействия, посадка пассажиров, экипировка, снаряды, взрывы, превращения, создание других сущностей, деспавн, полосы боссов, loot tables и опыт. Естественный спавн учитывает поверхность/воду, свет, высоту, сложность, биом, плотность, вес и размер стада; он выполняется раз в 100 тиков только в загруженных чанках.
- Molang выполняется открытой библиотекой [Mocha 3.0.1](https://github.com/unnamed/mocha) под MIT, без собственного парсера языка. Подключены серверные `query.*`/`q.*`, постоянные `variable.*`/`v.*`, временные переменные и `math.*`. Выражения кешируются; вложенность ограничена 64 уровнями, циклы — 4096 итерациями на вычисление. Лицензия включена в JAR как `META-INF/LICENSE-mocha.txt`.
- Серверные `animation_controllers` и `animations`: состояния, переходы Molang, `on_entry/on_exit`, переменные с remap curves, временные шкалы и события/команды на них. Кости, материалы и визуальные эффекты анимаций остаются на клиенте.
Полная совместимость со всем движком Bedrock 1.16 пока не гарантируется. Не реализованы специализированные цели и механики (торговля/экономика жителей, рейды, полноценные генетика и инвентари ездовых мобов, специальные атаки боссов и другие отсутствующие компоненты/queries), функции `.mcfunction`, кастомные блоки, эффекты еды и рецепты только для коптильни. Параметры отдельных AI-компонентов и точное распределение естественного спавна могут отличаться от Bedrock. Биомные теги сопоставляются с семействами биомов Nukkit; собственные биомы не добавляются. Для регистрации пользовательских сущностей автоматически включается runtime-флаг experiment mode Nukkit. Неизвестный контент получает диагностику в логе. Текстуры, модели, анимации и клиентские определения предметов/сущностей должны быть установлены на клиентах вместе с соответствующими паками; этот загрузчик реализует серверную логику и не заменяет клиентские ресурсы.
Синтаксис переплавки описан в [документации Bedrock](https://learn.microsoft.com/en-us/minecraft/creator/reference/content/recipereference/examples/recipedefinitions/minecraftrecipe_furnace?view=minecraft-bedrock-stable).
## Конфигурация
Настройки производятся посредством двух основных файлов: *server.properties* и *zotecore.yml*. Они будут созданы автоматически сразу же после запуска ядра, документация по первому доступна в репозитории Nukkit-MOT.