Модификация для скриптинга и настройки, позволяющая изменять различные игровые механики без необходимости создания полноценного мода.
Чаще всего используется для создания новых рецептов.
Основные возможности GroovyScript (сокр. GrS):
- 1. Groovy: мощный и проверенный язык скриптов
- - Синтаксис, совместимый с Java + взаимодействующий код
- - Статическая компиляция
- - Опциональная динамическая типизация
- - Метапрограммирование
- 2. Песочница: скрипты выполняются в изолированной среде, чувствительные операции заблокированы для вызова или использования
- 3. Перезагрузка: возможность тестировать изменения скриптов в игре без перезапуска
- - Большинство, если не все объекты реестров Forge можно перезагружать "на лету"
- - Большинство реестров модов поддерживаются нативно
- 4. События: простое отслеживание событий Forge EventBuses с помощью Groovy Closures
- 5. Знакомый интерфейс: обработчики скобок для пользователей CraftTweaker (реализовано, но может быть удалено в будущем)
- 6. Информативность: команды для отображения подробных данных о предмете в руке и другом
- 7. Оптимизация: эффективная реализация функций без компромиссов в производительности
- 8. API: обширные инструменты для совместимости модов авторов с GroovyScript, включая чёрные списки пакетов/классов/методов/полей
Совместимость с модами
Технически совместимость присутствует для всех модов, поскольку доступен весь код напрямую. Однако GroovyScript добавляет вспомогательные методы для упрощения работы.
Поддержка перезагрузки рецептов для реестров требует ручной реализации. Сейчас поддерживаются некоторые моды, и мы будем признательны за помощь в добавлении совместимости и/или написании страниц wiki.
FAQ
Есть ли поддержка мода X? Можно ли сделать X из мода X?
- Groovy имеет доступ почти ко всему Java-коду. Это означает, что почти всё "поддерживается", если знать, как это реализовать. Такие вещи, как рецепты, не перезагружаются автоматически — требуется ручная поддержка для конкретного типа рецептов.
Можете добавить поддержку мода X?
- Вероятно. Мы планируем обеспечить работу практически со всеми модами. Если нужный вам мод ещё не поддерживается, уточните информацию в Discord.
Почему файл мода такой большой?
- Для работы мода необходимы библиотеки Groovy, которые имеют значительный размер.
Совместимо ли это с CraftTweaker и KubeJS?
- Да, но в этом нет практического смысла (кроме того, что CraftTweaker в настоящее время поддерживает больше модов).
Зачем использовать GroovyScript вместо CraftTweaker?
- Все причины перечислены выше в разделе "Возможности". Возможность перезагрузки скриптов "на лету" — главное преимущество GroovyScript.