Скриптовой движок HollowEngine
HollowEngine позволяет писать скрипты на языке Kotlin, немного модифицированном для использования напрямую в игре без перезапусков. Сам язык немного отличается от привычного Kotlin, например вам не обязательно создавать какие либо методы, здесь вы можете напрямую начать писать код, не заморачиваясь с созданием методов и классов. Однако никто вам не мешает создавать отдельные или вложенные в файл классы и методы и пользоваться ими в своём коде!
Как создать скрипт?
Прежде всего, перед написанием скриптов нужно определиться какой скрипт вам нужен. На данный момент есть 3 вида скриптов:
| Название | Тип | Примечание |
|---|---|---|
| Мод | mod | Запускается, как и обычные моды во время загрузки игры. |
| Сюжетное Событие | se | Запускается по команде уже в мире, либо же его можно запустить из mod-скрипта. |
| Рецепт | content | Запускается при перезагрузке рецептов (и команде /reload соответственно) |
Когда вы определились с видом скрипта создайте текстовый файл в папке .minecraft/hollowengine/scripts/.
Также вы можете в этой же папке создать под-папки, например отдельно для Событий и отдельно для Крафтов, или же разделить все события по главам, чтобы было проще работать.
Файлы должны называться по шаблону: <название>.<тип>.kts, где:
・ <название>: Название самого скрипта. Рекомендуется называть скрипты маленькими буквами и без пробелов. (вместо них можно использовать символ: _)
・ <тип>: Ваш тип скрипта из таблицы.
Что и как писать в скриптах?
У каждого скрипта есть свой набор стандартных методов и переменных, подробнее об этом расписано в разделе соответствующего типа скрипта.
Примечание
Чтобы избежать конфликтов с совпадающими именами скриптов стоит располагать их в разных папках, а в начале каждого скрипта приписать package с путём к этой папки относительно папки scripts (через точки, а не /), например: package ru.hollowhorizon.my_super_modpack.
Компиляция скриптов
Что делать если долго запускается или не запускается скрипт?
После запуска скрипта командой или во время запуска игры скрипт будет скомпилирован, это может занимать от 5 секунд, до 3-5 минут в зависимости от размера скрипта, количества библиотек и импортов, а также производительности ПК. Если же даже спустя 3-5 минут ничего не произошло и нету никаких ошибок в чате, то скорее всего вы установили lite версию HollowCore. Проверьте правильность установки модов.
После первого запуска скрипты упаковываются в jar архив, что позволяет в дальнейшем запускать их почти моментально. Разумеется при изменении исходного скрипта компиляция будет произведена заново.
IDE, Подсветка синтаксиса, авто-дополнение кода.
При написании скриптов вы можете использовать любую IDE вроде VSCode, но вот авто-дополнение кода реализовать довольно сложно.
Проще всего - создать форк репозитория HollowEngine на GitHub, для этого необходимо:
1. Клонировать репозиторий HollowEngine себе на ПК.
2. Собрать проект:
・ Дождаться настройки проекта и индексации
・ Перейти в меню gradle (на правой панели) и запустить: HollowEngine -> Tasks -> forgegradle runs -> genIntellijRuns.
・ Скомпилировать jar: Tasks -> build -> jar
3. Запустить игру через задачу на панели справа вверху.
После чего можно создавать скрипты по пути: run/hollowengine/scripts, после создания скрипта будет ещё раз запущена индексация.