Перейти к содержимому

Thunderbolt_lib

Thunderbolt_lib — это библиотека API для аддонов и мост времени выполнения для AE2 Lightning Tech.

NeoForgeForge
Загрузчики
NeoForgeForge
Скачиваний на Modrinth
724
Подписчиков на Modrinth
0
версий
13
Обновлён
30 мая 202630 мая
Опубликован
в 2026
Это библиотека — она нужна другим модам и сама ничего не добавляет в игру
tiltle · свайп

Коротко о моде

Библиотека — нужна другим модам
Работает на NeoForge и Forge
Для Minecraft 1.21.1, 26.1.2 …
Нужен и в игре, и на сервере
Последняя версия — 1.0.0-alpha от 30 мая 2026
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.20.1, 1.21.1, 26.1.2
Описание переведено автоматическиПоказать оригинал (EN)

Plugin API и runtime bridge-библиотека для AE2 Lightning Tech (AE2LT). Позволяет твоему моду глубоко интегрироваться с сетью молниевой энергии AE2LT без необходимости трогать его внутренние классы.

Thunderbolt_lib — обязательная зависимость для любого стороннего плагина, который расширяет, изменяет или подключается к молниевой системе AE2LT. Он не добавляет собственных предметов, блоков или рецептов — только замороженные публичные API, контракты capability NeoForge, конструкторы рецептов и рефлексивный runtime bridge, который корректно деградирует при отсутствии самого AE2LT.

Зачем это скачивать?

  • Игрокам / авторам модпаков — если мод или модпак указывает ae2lt_api как зависимость, установи этот jar вместе с AE2 Lightning Tech.
  • Разработчикам плагинов — зависьте от этой библиотеки, чтобы получить доступ к машинам, типам рецептов и capability молниевой энергии AE2LT без привязки к внутренним классам AE2LT.

Важно: Thunderbolt_lib выполняет полезную работу только когда AE2 Lightning Tech установлен в том же экземпляре Minecraft. Оба мода должны присутствовать.

Целевые версии

Minecraft1.21.1
ЗагрузчикNeoForge 21.1.x
Java21
ЦелиAE2 Lightning Tech (обратно совместим с момента появления молниевой сети в AE2LT)
Runtime mod IDae2lt_api

Проект представлен как Thunderbolt_lib, но регистрируется под ae2lt_api, так что существующие объявления зависимостей в плагинах не затрагиваются.

Что он предоставляет

Capability молниевой энергии

Сделайте свои блоки и предметы полноправными участниками молниевой сети AE2LT. ILightningEnergyHandler предоставляется через две capability NeoForge — LIGHTNING_ENERGY_BLOCK (sided) и LIGHTNING_ENERGY_ITEM (void) — реализуйте интерфейс и зарегистрируйте его, чтобы участвовать в чтении и записи. Все величины выражены как long, чисто масштабируясь от одной машины до учёта в масштабах всей сети.

Уровень молниевой энергии

Унифицированное двухуровневое определение напряжения, которое без потерь передаётся между поверхностями API. LightningEnergyTier — это enum с двумя значениями (HIGH_VOLTAGE / EXTREME_HIGH_VOLTAGE), и он поставляется с:

  • CODEC — Mojang `Codec`
  • STREAM_CODEC — ванильный StreamCodec<RegistryFriendlyByteBuf, LightningEnergyTier>
  • fromOrdinal(int) — статический декодер по ordinal

Он использует тот же формат передачи по сети, что и собственный LightningTier из AE2LT, поэтому пакеты и NBT корректно проходят туда-обратно между двумя API без рукописного адаптера.

Рефлексивный runtime bridge

Не упадёт при отсутствии AE2LT — просто корректно деградирует. Вместо жёсткой ссылки на классы AE2LT во время загрузки эта библиотека проверяет их рефлексивно в рантайме и подключает capability молниевой энергии к пяти подключённым к сети block entity, которые AE2LT публично регистрирует:

  • ae2lt:lightning_collector
  • ae2lt:lightning_simulation_room
  • ae2lt:lightning_assembly_chamber
  • ae2lt:overload_processing_factory
  • ae2lt:tesla_coil

ae2lt:crystal_catalyzer работает только на FE, не участвует в молниевой энергосети и намеренно исключён.

Замороженные константы ID

Ссылайтесь на registry ID из AE2LT, не таща его основной jar в свой compile path. Два набора констант ResourceLocation собирают всё в одном месте:

  • AE2LTBlockEntityIds — ID block entity из AE2LT, плюс LIGHTNING_GRID_MEMBERS (список пяти подключённых к сети машин выше)
  • AE2LTRecipeIds — ID типов рецептов AE2LT

Оба находятся в com.qianchang.ae2lt_api.api.ids. Если AE2LT позже переименует какой-либо внутренний ресурс, патч появится здесь, чтобы плагинам не пришлось за этим гоняться.

Мост определения нативного API

Позволяет обеим поверхностям API сосуществовать в вашем моде, оставляя за вами контроль над тем, какую вызывать. com.qianchang.ae2lt_api.api.bridge.AE2LTNativeBridge проверяет в рантайме, загружен ли first-party API-пакет AE2LT (com.moakiee.ae2lt.api, namespace ae2lt).

SurfaceЭта библиотекаAE2LT first-party
Java packagecom.qianchang.ae2lt_api.api.*com.moakiee.ae2lt.api.*
Namespaceae2lt_apiae2lt
Capability IDae2lt_api:lightning_energyae2lt:lightning_energy

Эти два API-интерфейса намеренно разделены по пространствам имён; библиотека не выполняет неявного преобразования между ними, так что вызывающий код явно выбирает, какую сторону использовать.

События

Перехватывайте сбор молний и применяйте свою условную логику. LightningCollectedEvent вызывается, когда коллектор AE2LT собирает энергию молнии. Событие можно отменить, и оно предоставляет isNaturalWeather() (чтобы отличить настоящую грозу от удара, вызванного машиной), а также соответствующий конструктор с 5 аргументами; оригинальный конструктор с 4 аргументами сохранён со значением naturalWeather по умолчанию false, так что миграция проходит безболезненно.

Построители рецептов

Генерируйте JSON, соответствующий схеме, для всех шести типов рецептов AE2LT — просто вставляйте их прямо в свой конвейер генерации данных:

ПостроительТип рецепта
LightningAssemblyRecipeBuilderae2lt:lightning_assembly
LightningTransformRecipeBuilderae2lt:lightning_transform
LightningSimulationRecipeBuilderae2lt:lightning_simulation
OverloadProcessingRecipeBuilderae2lt:overload_processing
CrystalCatalyzerRecipeBuilderae2lt:crystal_catalyzer
LightningStrikeRecipeBuilderae2lt:lightning_strike

CrystalCatalyzerRecipeBuilder дополнительно поддерживает dustMode() и outputTag(...), что соответствует схеме crystal_catalyzer/dust/*.json в AE2LT.

Загрузка плагинов и фасад API

Унифицированные колбэки регистрации, никакой ручной обвязки жизненного цикла NeoForge. Обнаружение плагинов работает через @AE2LTPlugin, IAE2LTPlugin и Java ServiceLoader; статический фасад AE2LTAPI собирает версию API, дескрипторы capability и утилиты-мосты в единую точку входа, которую можно подключить одним import static и использовать по всей кодовой базе с минимумом шаблонного кода.

Добавление в качестве зависимости

Разработчикам плагинов — объявите и ae2lt_api (эту библиотеку), и ae2lt (основной мод) как обязательные в вашем neoforge.mods.toml:

[[dependencies.your_mod_id]]
    modId = "ae2lt_api"
    type = "required"
    versionRange = "[1.0.0,)"
    ordering = "AFTER"
    side = "BOTH"

[[dependencies.your_mod_id]]
    modId = "ae2lt"
    type = "required"
    versionRange = "[1.0.0,)"
    ordering = "AFTER"
    side = "BOTH"

Установите нижнюю границу versionRange равной минимальной версии, которую ваш плагин действительно поддерживает.

Обратная связь

Сообщения об ошибках и предложения приветствуются в трекере задач проекта. При сообщении о проблеме, пожалуйста, укажите версии Minecraft, NeoForge, AE2 Lightning Tech и Thunderbolt_lib, которые вы используете — это значительно ускоряет воспроизведение и разбор.

Исходный код, список изменений, релизы

Благодарности

Поддерживается и разрабатывается QianChang.

Особая благодарность команде AE2 Lightning Tech — MOAKIEE, CystrySU, gjmhmm8, _leng, TedXenon и MHanHanBing — за публикацию чётких, стабильных ID реестра и схем рецептов, которые делают этот мост возможным.

Также спасибо команде Applied Energistics 2 — без AE2 не было бы AE2LT и не было бы причин для существования этого моста.

Отказ от ответственности

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

Полное уведомление — DISCLAIMER.md

Частые вопросы

Как установить Thunderbolt_lib?

Установите NeoForge под свою версию Minecraft, скачайте Thunderbolt_lib под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Thunderbolt_lib?

У Thunderbolt_lib есть сборки для Minecraft 1.20.1, 1.21.1, 26.1.2.

Нужен ли Thunderbolt_lib на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее