Вход

Регистрация

Восстановление доступа

Fzzy Core

Fzzy Core

|

fzzyhmstrs

Мощная библиотека утилит и фреймворков для разработки модов на Kotlin для загрузчиков Fabric и Quilt.

Fzzy Core: базовый API и фреймворк для модов Kotlin

Fzzy Core от разработчика fzzyhmstrs — это фундаментальный API, созданный для упрощения разработки модов на языке Kotlin. Проект предоставляет набор базовых утилит, которые полезны для самых разных типов модификаций, а также реализует гибкую систему Modifier, позволяющую изменять почти любой аспект игры. В отличие от стандартной системы заклинаний (Enchanting), модификаторы являются постоянными, не снимаются на точильном камне и имеют встроенную систему уровней редкости. Библиотека также включает продвинутые инструменты: систему частиц, кастомные предметы с текстовыми описаниями (flavortext), управление мана-затратами и синхронизацию конфигураций между сервером и клиентами. Fzzy Core идеально подходит для авторов, стремящихся к чистому коду и отказоустойчивости в мультиверсионных проектах.

Фундамент для Kotlin-модов: философия и назначение

Fzzy Core — это базовый API, разработанный автором fzzyhmstrs, который служит фундаментом для серии модов на Kotlin. Проект не просто предоставляет набор утилит, но и закладывает основу для гибкой системы модификаторов, способной изменять практически любой аспект игры. Автор позиционирует библиотеку как решение для создания чистого, отказоустойчивого кода, особенно актуального для мультиверсионных проектов, где борьба с конфликтами изменений текста и структуры данных является постоянной проблемой. Библиотека уже интегрирована в другие проекты автора, такие как Amethyst Core, где используется для реализации сложных механик заклинаний и аугментов.

Main Banner for the Fzzy Core mod
Main Banner for the Fzzy Core mod

Система модификаторов: альтернатива стандартным заклинаниям

Центральной особенностью Fzzy Core является фреймворк Modifier, созданный для решения ключевых проблем стандартной системы enchantments. В отличие от обычных заклинаний, которые легко снимаются с помощью точильного камня и часто ограничены простыми числовыми значениями, модификаторы в этой библиотеке спроектированы как постоянные атрибуты (affixes). Они не исчезают при использовании точильного камня и могут вызывать сложные внутренние эффекты.

Система использует иерархическую структуру, напоминающую семейное древо, что позволяет создавать вкусные уровни редкости. Например, меч может эволюционировать от «Ржавого» к «Блестящему» и далее к «Сияющему», при этом каждый уровень меняет поведение предмета. Библиотека предоставляет встроенные вспомогательные методы для отладки и отображения этих модификаторов в подсказках предметов. Разработчик fzzyhmstrs отмечает, что такая система позволяет реализовать практически любой сценарий, от простых изменений характеристик до сложных эффектов, подобных тем, что используются в Amethyst Core.

Fzzy Core — изображение из описания мода

Управление конфигурациями и синхронизация данных

Fzzy Core включает в себя систему синхронизированной конфигурации, которая значительно упрощает управление настройками модов. Она позволяет создавать удобные конфиги с поддержкой контроля версий: при обновлении мода система автоматически синхронизирует конфигурацию сервера с клиентами, сохраняя старые настройки и адаптируя их под новую версию. Это избавляет от необходимости вручную переносить настройки или сбрасывать прогресс игроков при обновлении сборки.

Реализация использует уникальные возможности Kotlin для создания чистого и понятного кода. Включены вспомогательные методы для автоматического обновления файлов конфигов, перехвата информации из старой версии перед заменой и простое управление функциями авто-синхронизации. Это критически важно для мультиверсионных модов, где структура конфигов может меняться между версиями игры.

Fzzy Core — изображение из описания мода

Работа с NBT и пространственным поиском

Для разработчиков, работающих с данными предметов и блоков, библиотека предоставляет мощные утилиты. Система Nbt Util упрощает работу с метаданными: можно читать и записывать координаты BlockPos с помощью одного вспомогательного метода, а также использовать утилиты для работы с NbtList (добавление, удаление, чтение элементов). Особое внимание уделено системе ItemStackId, позволяющей прикреплять уникальный идентификатор к стопке предметов. Это позволяет, например, привязывать конкретный предмет к определенному блоку сущности или отслеживать уникальные экземпляры предметов.

Также включен Raycaster — набор методов для определения объектов в пространстве. Он поддерживает серверный рейкастинг для обнаружения объектов без сложной сетевой передачи данных. Уникальной особенностью является поддержка проверки объектов с произвольно повернутыми кубоидами, что полезно для определения попадания заклинаний, если игрок смотрит под углом, отличным от стандартной сетки XYZ.

Fzzy Core — изображение из описания мода

События, регистры и визуальные эффекты

Для управления жизненным циклом объектов вне сущностей (например, периодических таймеров) предусмотрен Event Registry. Он позволяет регистрировать объекты, которые тикают с определенным интервалом, и предоставляет встроенные часы с интервалами в 1, 1.5 и 2 секунды. Это позволяет создавать методы тика, которые не срабатывают на каждом тике игры, экономя ресурсы сервера.

Дополнительно реализован Item Model Registry, помогающий создавать кастомные модели предметов. С его помощью можно настроить отображение предметов в руке, на земле и в инвентаре так, как это делает Minecraft для своих стандартных предметов. Это особенно полезно для создания уникальных трезубцев или других предметов со сложной анимацией. Также библиотека предлагает систему частиц для размещения клиентских эффектов в точке обзора игрока и фреймворк для создания предметов, потребляющих ману вместо здоровья.

Инструменты для создания предметов с уникальным характером

Библиотека предлагает готовые решения для реализации уникальных механик предметов. Фреймворк для создания Mana-предметов позволяет создавать артефакты, которые тратят мана вместо того, чтобы разрушаться при использовании. Это открывает возможности для создания магических посохов, перчаток и других устройств, требующих энергии.

Для визуального оформления предусмотрена система частиц. Разработчики могут размещать клиентские частицы в любой точке обзора игрока, что идеально подходит для создания предметов, с которых капает лед, или факелов, из которых идет дым. Также реализована система кастомных предметов с "flavortext" — возможностью добавлять к предметам текстовые описания и пояснения к их функционалу, которые отображаются в интерфейсе. Это позволяет создавать предметы с уникальным lore без необходимости переписывать стандартные механизмы описания.

Интеграция с Trinkets и управление статусными эффектами

Библиотека поддерживает опциональную интеграцию с модом Trinkets. Если он установлен, Fzzy Core предоставляет утилиты для работы с ним, включая получение списка всех надетых украшений для сущности. Более того, реализован интерфейс AugmentTasks, позволяющий создавать украшения, которые взаимодействуют со специальными заклинаниями (Augments). Это открывает возможности для создания сложных пассивных и активных способностей, привязанных к предметам.

Для управления статусными эффектами предусмотрена EffectQueue. Она решает проблему конфликтов эффектов в интерфейсе, когда несколько пассивных статусов начинают быстро меняться местами. Утилита унифицирует добавление всех переданных эффектов, обеспечивая предсказуемый порядок их отображения, сохраняя при этом всю стандартную информацию о статусных эффектах.

Утилиты для работы с текстом и магией

Одной из ключевых проблем при разработке модов на несколько версий Minecraft является управление текстовыми ресурсами. Fzzy Core решает эту проблему, предоставляя обертку для Text, которая избавляет разработчиков от головной боли, связанной с поддержкой мультиверсионных модов и постоянными конфликтами слияния изменений текста. Это позволяет сосредоточиться на логике, а не на рутинном обновлении строк в языковых файлах.

Кроме того, библиотека содержит базовый класс Enchantment, который легко интегрируется с системой конфигурации для включения/выключения отдельных заклинаний. Это дает авторам модов гибкость в настройке баланса без необходимости писать сложную логику проверки условий каждый раз.

Связанные материалы

Автор: fzzyhmstrs · Лицензия: MIT

F

fzzyhmstrs

4 проекта

|

0 скачиваний

Войдите, чтобы поставить оценку и оставить отзыв.

Отзывов пока нет — будьте первым!
Канал Файл Игра Модлоадер Язык Скачиваний Загружен
Релиз fzzy_core-0.5.1+1.20.1.jar 518.5 KB 1.20.1 FabricQuilt ENZH 0 28.04.2024
Релиз fzzy_core-0.5.0+1.20.1.jar 518.5 KB 1.20.1, 1.20 FabricQuilt ENZH 0 13.03.2024
Релиз fzzy_core-0.2.7+1.19.jar 333.2 KB 1.19.2, 1.19.1, 1.19 FabricQuilt ENZH 0 21.08.2023
Релиз fzzy_core-0.2.7+1.19.3.jar 333.6 KB 1.19.3 FabricQuilt ENZH 0 21.08.2023
Релиз fzzy_core-0.2.7+1.19.4.jar 333.1 KB 1.19.4 FabricQuilt ENZH 0 21.08.2023
Релиз fzzy_core-0.2.7+1.20.1.jar 332.9 KB 1.20.1, 1.20 FabricQuilt ENZH 0 21.08.2023
Бета fzzy_core-0.1.2+1.18.2.jar 250.7 KB 1.18.2 Fabric EN 0 10.02.2023