Skip to content

Скриптовой движок 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, после создания скрипта будет ещё раз запущена индексация.