
PowerAE2CC Bridge
PowerAE2CC Bridge - форк AE2CC Bridge, добавляющий блок-периферию для управления ME-сетью Applied Energistics 2 через компьютеры ComputerCraft. Полный обзор API и функций.
Давайте поговорим про автоматизацию в Майнкрафт. Если у вас стоит Applied Energistics 2 (или просто AE2), то вы уже знаете, как удобно хранить вещи в ME-сети. А если вы любите программировать прямо в игре с помощью ComputerCraft, то вам точно захочется скрестить эти два мода.
PowerAE2CC Bridge - это форк мода AE2CC Bridge, который добавляет один простой, но очень полезный блок-периферию. С его помощью ваши Lua-скрипты получают доступ к ME-сети: могут смотреть, что лежит на складе, проверять процессоры для крафта и даже заказывать создание нужных предметов.
Нюанс: Сейчас мод открывает довольно базовый API. Основные задачи он решает, но если вам не хватает какой-то сложной функции, придется ждать обновлений.
Как работает блок
Когда вы ставите мост и подключаете его к сети Applied Energistics, он начинает потреблять 5 AE/t энергии и занимает один канал. Так что не забудьте, что ваша сеть должна тянуть эту нагрузку.
Функции API (Peripheral API)
Тут все стандартно для CC: Tweaked - вы оборачиваете периферию и вызываете методы. Вот что доступно:
getAvailableObjects()
Возвращает список всех предметов, которые сейчас есть в ME-сети.
Возвращает: Таблицу с объектами { { type = string, id = string, displayName = string, amount = number }... }.
getCraftableObjects()
Показывает, что система может скрафтить прямо сейчас.
Возвращает: Таблицу { { type = string, id = string, displayName = string }... }.
getCraftingCPUs()
Выдает инфу по всем крафтовым процессорам в сети.
Возвращает: Таблицу { cpu... }.
Структура cpu:
| Ключ | Тип | Описание |
|---|---|---|
availableCoProcessors | number | Количество доступных сопроцессоров. |
availableStorage | number | Объем доступной памяти для крафта. |
selectionMode | string | Режим выбора процессора (ANY, MACHINE_ONLY или PLAYER_ONLY). |
jobStatus | string? | Инфа о текущей задаче. |
name | string? | Кастомное имя процессора. |
Если jobStatus не пустой, то внутри него такая структура:
| Ключ | Тип | Описание |
|---|---|---|
totalObjects | number | Сколько всего предметов будет сделано. |
craftedObjects | number | Сколько уже готово. |
elapsedNanos | number | Время в наносекундах с начала крафта. |
systemID | string? | ID задачи, выданный ME-системой. |
output | output | Что именно крафтится. |
А вот структура output:
| Ключ | Тип | Описание |
|---|---|---|
amount | number | Сколько предметов заказано. |
type | string | Тип предмета. |
id | string | ID предмета. |
displayName | string | Отображаемое имя. |
Совет: Иногда получить systemID не получается из-за технических причин. Тогда поле просто не возвращается, а в логах будет ошибка. Следите за обновлениями AE2 и самого моста, чтобы баги починили.
getIssuedCraftingJobs
Возвращает список незаконченных крафтов, которые заказаны через эту периферию.
Возвращает: Таблицу { { state = string, jobID = string, systemID = string? }... }.
Тут есть нюанс. Задача попадает в список, только если ее статус SCHEDULED или STARTED. Если крафт уже идет, добавляется systemID - это внутренний ID ME-сети, он отличается от jobID периферии.
getAllCraftingRequests
Показывает вообще все крафты, которые сейчас обрабатываются во всех процессорах сети.
Возвращает: Таблицу { craftingRequest, ...}.
Структура craftingRequest:
| Ключ | Тип | Описание |
|---|---|---|
amount | number | Количество крафтящегося предмета. |
displayName | string | Игровое имя предмета. |
systemID | string | ID предмета по системе Minecraft. |
Пример того, что вернет функция: lua { { amount = 1, displayName = "Oak Planks", systemID = "minecraft:oak_planks" } }
scheduleCrafting(type, id, amount)
Самая главная функция - заказывает крафт. Параметры:
type:string- тип объекта ("fluid" или "item").id:string- ID предмета.amount:number- сколько штук нужно.
Возвращает: Уникальный ID задачи (string).
Название scheduleCrafting выбрано не просто так. Заказ не запускается мгновенно. Сначала он ставится в очередь, а когда ME-система освободится и просчитает план - начнется.
Жизненный цикл задачи:
Сначала статус SCHEDULED (запланирован). Потом, когда система все посчитала, становится STARTED (начат). В конце крафт переходит в DONE (готово). В любой момент задачу могут отменить - CANCELLED.
События (Events)
Чтобы не опрашивать систему постоянно, используйте ивенты.
ae2cc:crafting_cancelled
Срабатывает, когда крафт отменили. Возвращает:
- Имя ивента.
- ID отмененной задачи.
- Причина отмены.
Причины бывают разные:
| Значение | Описание |
|---|---|
CANCELLED | Задачу отменили вручную или машиной. |
CPU_NOT_FOUND | Выбранный процессор не найден. |
INCOMPLETE_PLAN | Невозможно рассчитать план крафта. |
NO_CPU_FOUND | Нет свободного процессора для задачи. |
CPU_BUSY | Выбранный процессор занят. |
CPU_OFFLINE | Процессор выключен. |
CPU_TO_SMALL | Памяти процессора не хватает на эту задачу. |
MISSING_INGREDIENT | Не удалось найти нужные ингредиенты. |
ae2cc:crafting_done
Срабатывает при успешном завершении. Возвращает:
- Имя ивента.
- ID завершенной задачи.
ae2cc:crafting_started
Срабатывает, когда статус меняется с SCHEDULED на STARTED.
Возвращает:
- Имя ивента.
- ID запущенной задачи.
Итог
Связка ComputerCraft и AE2 - это мощнейший инструмент для автоматизации в Minecraft. Вы можете написать скрипт, который будет следить за запасом блоков в сундуках и автоматически заказывать крафт через ME-сеть, когда чего-то не хватает. Скачайте мод PowerAE2CC Bridge для Майнкрафт, если хотите вывести свою базу на новый уровень автономности. Мод отлично работает на серверах, так что можно настроить общую фабрику для всех игроков.
Как поиграть с друзьями с модом PowerAE2CC Bridge?
Мод PowerAE2CC Bridge куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода PowerAE2CC Bridge будет готов за пару минут - BungeeHost сделает всё за вас.
