FermiumBooter - это утилита для mixin модов, которая позволяет разработчикам загружать mixins как рано, так и поздно, что позволяет модифицировать классы, которые в противном случае не могут быть изменены.
Текущие возможности включают:
- Постановка mixins в очередь для применения как рано, так и поздно, чтобы позволить модифицировать классы Vanilla/Forge, а также классы модов
- Система аннотаций @MixinConfig для расширения системы Forge @Config, чтобы позволить автоматическую постановку mixins в очередь на основе переключателей конфигурации
- Опциональная обработка совместимости через систему аннотаций конфигурации, чтобы позволить разработчикам определять необходимые/несовместимые моды для конкретных mixins
- Записываемые предупреждения, когда mixin, использующий систему аннотаций конфигурации, не проходит проверки совместимости
- Опциональное принудительное отключение mixin, когда mixin, использующий систему аннотаций конфигурации, не проходит проверки совместимости
- Отображение предупреждений в игре (которые можно отключить), когда mixins, использующие систему аннотаций конфигурации, не проходят проверки совместимости
- Включение/отключение поставленных в очередь mixins до применения через использование Supplier, чтобы позволить разработчику контролировать опциональные mixins
- Утилитарный метод для проверки наличия ModID, аналогичный Loader.isModLoaded(), однако используемый во время постановки mixins в очередь/раннего применения mixins, в отличие от Loader.isModLoaded()
- Запрет применения других поставленных в очередь mixins FermiumBooter для целей тестирования или настройки
- Использует Mixin 0.8.7 и MixinExtras 0.4.1
Для использования разработчиками:
В вашем IFMLLoadingPlugin init, вместо "Mixins.addConfiguration(\"mixinConfigName\")", используйте "FermiumRegistryAPI.enqueueMixin(\"mixinConfigName\")".
Если вы регистрируете его как поздно загружаемый mixin, используйте "FermiumRegistryAPI.enqueueMixin(true, \"mixinConfigName\")".
Это все, что требуется, и FermiumBooter заботится об остальном.
Для дополнительных утилит, как описано ранее, все документировано в коде с объяснениями использования и назначения.
Если у вас есть какие-либо проблемы/предложения/запросы, пожалуйста, опубликуйте их в трекере проблем Github, ссылка на который приведена выше.
