
Architectury API
Architectury API - это прослойка для создания мультиплатформенных модов, работающих одновременно на Fabric и Forge. Упрощает разработку, абстрагируя вызовы к разным загрузчикам.
Architectury API - это не просто очередная библиотека, а целая экосистема для тех, кто устал писать один и тот же мод дважды под разные загрузчики. Если вы когда-нибудь хотели выпустить мод и для Fabric, и для Forge (или NeoForge), но не хотели разбираться в их различиях - этот инструмент для вас.
Что такое Architectury API
По сути, это API-прослойка, которая скрывает разницу между Fabric API и Forge API. Оба загрузчика делают одно и то же, но по-разному: регистрация предметов, события, сеть - всё реализовано несовместимо. Architectury API даёт единый интерфейс, а под капотом сам подставляет нужные вызовы под конкретный загрузчик.
Библиотека регулярно обновляется, добавляются новые хуки и фичи. На данный момент внутри уже больше 90 хуков событий, абстракция для сети, вызовов загрузчика, игровых реестров и удобная аннотация @ExpectPlatform (работает только со статическими методами).
А оно вообще нужно?
Architectury API - это лишь часть экосистемы. Главный движок - Architectury Plugin (градл-плагин), который и обеспечивает всю мультиплатформенную магию. Сам API можно не подключать, если вы строите проект только на плагине. Но если хотите меньше boilerplate-кода и больше готовых решений - берите оба.
Плюсы подхода
- Всё с открытым исходным кодом
- Меньше шаблонного кода при портировании под разные загрузчики
- Единая кодовая база для Fabric, Forge и NeoForge
Как начать делать мультиплатформенные моды
Для старта понадобятся:
- Architectury Loom - форк Fabric Loom с поддержкой мультиплатформенной разработки
- Gradle Plugin - он же Architectury Plugin, включает Architectury Injectables для работы
@ExpectPlatform - Шаблоны модов - готовые заготовки, чтобы не писать всё с нуля
Раньше был пример мода, но его забросили, так что лучше сразу брать шаблоны - они актуальнее.
Пример с @ExpectPlatform
Аннотация позволяет объявить метод в общем коде, а реализацию написать отдельно под каждый загрузчик. Удобно, когда нужно вызвать что-то специфичное для Fabric или Forge, но не хочется плодить if-ы по всему коду.
Важно знать
В старых версиях библиотека тащила с собой typetools - это сторонняя лицензия, но в новых сборках её уже нет.
Если вы разрабатываете мод для Майнкрафт и хотите охватить и Fabric, и Forge - Architectury API снимает кучу головной боли. Особенно когда проект разрастается, и поддерживать две параллельные версии вручную становится невозможно. Скачайте Architectury API и забудьте про муки выбора загрузчика.
