Balm — это библиотека модов , предназначенная для облегчения разработки модов Minecraft, совместимых с несколькими загрузчиками модов, включая Forge , NeoForge и Fabric . Предоставляя общие интерфейсы и события, Balm позволяет разработчикам создавать кроссплатформенные моды без необходимости поддерживать несколько отдельных кодовых баз. Обратите внимание , что Balm не является чудодейственным решением, позволяющим сделать мод Fabric совместимым с Forge (или наоборот) без адаптации: он не позволяет моду Fabric работать напрямую в Forge. С другой стороны, это значительно упрощает разработку мультизагрузчика за счет сокращения специфичного для загрузчика кода и унификации многих функций.
Особенности Balm Mod
- Совместимость с Forge/NeoForge/Fabric без дублирования кода: моды, разработанные с помощью Balm, работают одинаково на Forge , NeoForge и Fabric , без необходимости написания трех версий одного и того же кода. Ядро мода является общим, что позволяет избежать дублирования и ограничивает риск ошибок между платформами.
- Инструменты конфигурации, работы в сети и взаимодействия: Balm предоставляет унифицированные инструменты для управления конфигурацией модов , работой в сети (синхронизация клиент-сервер) и взаимодействием между модами. Разработчики имеют общий API для взаимодействия с другими модами и управления общим функционалом, что упрощает поддержку функций между модами.
- Использование сопоставлений Mojang и поддержка MultiLoader-Template: мод использует официальные сопоставления Mojang (исходные имена классов и методов), что улучшает читаемость кода и совместимость между версиями. Кроме того, Balm совместим с MultiLoader-Template Джареда , шаблоном проекта Gradle, который позволяет компилировать мод для нескольких загрузчиков одновременно.
- Интеграция с Curios/Trinkets и Jade/TheOneProbe: Balm предлагает встроенную поддержку популярных сторонних модов. Например, он легко интегрируется с Curios (на Forge) и Trinkets (на Fabric) для управления слотами аксессуаров игрока или с модами отображения информации Jade и The One Probe для мгновенной совместимости. Эти интеграции облегчают задачу моддерам, желающим воспользоваться преимуществами этих API без написания кода, специфичного для конкретной среды.
- Доказано в более чем 20 модах BlayTheNinth: Balm — это не теоретический проект — он уже используется и доказан в более чем двадцати модах, разработанных BlayTheNinth (его создателем). От модификаций контента до утилит повышения качества жизни — эта библиотека имеет подтвержденную репутацию в реальных условиях работы, гарантируя надежность и стабильность.
- Никаких сторонних зависимостей: в отличие от других библиотек, Balm не зависит от каких-либо внешних модов или фреймворков. Это автономный инструмент , который добавляет только то, что необходимо, избегая конфликтов версий или добавления дополнительных слоев. Вам не придется устанавливать кучу других библиотек модов, чтобы все заработало.
Использование и управление Balm Mod
Для игрока (среднего пользователя) Balm полностью прозрачен. Он не добавляет никаких внутриигровых предметов, блоков или команд, и у вас не будет с ним прямого взаимодействия. Единственное, что нужно сделать, это установить его в папку с модами, если он требуется для другого используемого вами мода. По сути, относитесь к нему как к обязательной зависимости: просто добавьте его, когда мод попросит вас об этом, и всё.
Для разработчиков, желающих создать мод с несколькими загрузчиками с помощью Balm, вот основные шаги, которые необходимо выполнить:
- Воспользуйтесь специальным шаблоном GitHub — начните свой проект, используя шаблон проекта с несколькими загрузчиками, предоставленный для Balm. Этот шаблон (доступный на GitHub) уже настраивает среду Gradle для одновременной компиляции вашего мода для Forge, NeoForge и Fabric.
- Настройте метаданные мода . Откройте
gradle.properties
файл проекта и заполните информацию о вашем моде (название, идентификатор, версию, описание и т. д.). Здесь вы также определите целевые версии Minecraft и, при необходимости, версии загрузчиков. - Код в папке
common
— Поместите большую часть исходного кода в каталогcommon
, предназначенный для кода, общего для разных загрузчиков. Balm позволяет вам писать свои характеристики только один раз. Конкретные папкиforge
(fabric
иneoforge
если применимо) будут использоваться только для определенного кода, например, для интеграции стороннего мода, специфичного для платформы (например, доступного только на Forge). - Управляйте зависимостями в
dependencies.gradle
— если вашему моду требуются другие API или библиотеки, добавьте их вdependencies.gradle
. Шаблон Balm настроен таким образом, чтобы избежать непосредственного изменения основных файлов Gradle, что упрощает будущие обновления шаблона проекта. - Вдохновитесь представленным примером . Образец проекта включает в себя конкретный пример, иллюстрирующий использование основных функций Balm (конфигурация, события и т. д.). Можете смело использовать этот пример и изучать код других модов BlayTheNinth, чтобы понять, как реализовать конкретные варианты использования. Затем адаптируйте и удалите ненужные части перед публикацией вашего мода.
Выполнив эти шаги, разработчик сможет в полной мере воспользоваться преимуществами Balm и выпустить мод, доступный как на Forge/NeoForge, так и на Fabric, при этом минимизировав усилия по обслуживанию.
Влияние на производительность
Поскольку Balm — легковесная библиотека , ее влияние на производительность Minecraft практически равно нулю . Этот мод не добавляет в игру никаких ресурсоемких механик: он просто предоставляет точки расширения (API) и полезную логику для других модов. На практике вы не заметите никакой разницы в FPS или времени загрузки, установив только Balm. Напротив, Balm может косвенно улучшить общую производительность моддинга : избегая дублирования кода между версиями Forge и Fabric, он снижает риск ошибок и позволяет лучше оптимизировать моды. Кроме того, унификация некоторых взаимодействий между модами может способствовать повышению стабильности и совместимости модифицированной игры. Короче говоря, вам не о чем беспокоиться: бальзам не окажет обременительного воздействия на ваш организм.
