Open Computers Refined Storage Driver: мост между компьютерами и хранилищем
Когда две мощные технологические модификации объединяются, рождаются инструменты, способные перевернуть представление об автоматизации в Minecraft. Open Computers добавляет программируемые компьютеры и роботов, а Refined Storage — цифровое хранилище предметов с удобной сеткой. Но чтобы компьютер смог напрямую управлять содержимым сети, требуется специальный посредник. Именно эту роль выполняет драйвер Open Computers Refined Storage Driver (сокращённо ocrsdriver).
Зачем нужен этот драйвер
В базовой версии Open Computers не умеет общаться с сетью Refined Storage напрямую. Адаптер, пристыкованный к любому блоку системы, не даёт доступа к инвентарю или задачам крафта. Драйвер исправляет это, добавляя компонент block_refinedstorage_interface, который становится доступным после установки мода. С его помощью программа на Lua может запрашивать список всех предметов, извлекать ресурсы, запускать крафт и даже отслеживать энергопотребление сети.
Важно отметить, что встроенная поддержка подобного взаимодействия появилась в Refined Storage начиная с версии для Minecraft 1.11.2. А значит, драйвер актуален прежде всего для сборок на Minecraft 1.10.2, где без него не обойтись.
Список доступных команд
Компонент предоставляет разработчику широкий набор методов. Все они вызываются через стандартный интерфейс OpenComputers. Ниже приведены основные команды с кратким описанием.
- isConnected() — проверяет, подключён ли узел сетки к сети Refined Storage.
- getEnergyUsage() — возвращает текущее потребление энергии всей сети в единицах RS за тик.
- getItems() — возвращает таблицу всех предметов, хранящихся в системе.
- getItem(itemstack, cmpMeta, cmpNbt, cmpOre) — ищет конкретный стек по образцу с возможностью сравнения метаданных, NBT и словаря руд.
- extractItem(itemstack, amount, side) — извлекает указанное количество предметов на заданную сторону и возвращает число реально перемещённых единиц.
- getFluids() — список всех жидкостных стеков в сети.
- getFluid(fluidstack) — поиск жидкости по образцу.
- extractFluid(fluidstack, amount, side) — извлечение жидкости в миллибакетах.
- getTasks() — возвращает очередь текущих задач крафта.
- getPatterns() — список всех шаблонов крафта, известных системе.
- hasPattern(itemstack) — проверяет, есть ли шаблон для указанного предмета.
- getMissingItems(itemstack, amount) — вычисляет недостающие ингредиенты для крафта заданного количества.
- craftItem(itemstack, amount) — отправляет запрос на крафт предмета в нужном объёме.
- cancelCrafting(itemstack) — отменяет все операции крафта для данного предмета и возвращает число отменённых задач.
Этот набор покрывает практически любые сценарии — от простой сортировки до сложных саморегулирующихся фабрик. Кстати, если вы только начинаете эксперименты с модами, установить драйвер и другие дополнения можно без лишних хлопот через лаунчер foxygame.net. Он удобен тем, что прямо в меню предлагает скачать нужные моды, а гибкие настройки позволяют быстро собрать сборку под любую версию игры.
Примеры автоматизации
Рассмотрим пару практических скриптов, которые наглядно демонстрируют мощь драйвера.
Автоматический сброс лишних предметов
Представьте, что в системе скопилось больше 8192 единиц какого-либо ресурса. Программа может пройтись по всем предметам и сбросить излишки в мусорную корзину, размещённую под интерфейсом. Для этого используется цикл с вызовом extractItem, пока количество не опустится до лимита. Сторона извлечения указывается через библиотеку sides.
Поддержание постоянного запаса факелов и рычагов
Более интересный кейс — автоматическое пополнение расходников. Скрипт каждые пять секунд проверяет наличие шаблона, вычисляет разницу между целевым количеством (например, 64) и текущим содержимым сети, а затем запускает крафт недостающих предметов. Если шаблон отсутствует, программа выводит предупреждение в консоль. Такой подход превращает сеть в самообслуживающийся склад, который никогда не останется без нужных вещей.
Оба примера легко адаптируются под конкретные нужды: можно менять лимиты, списки предметов, сторону выгрузки и частоту опроса.
Известные ограничения
Разработчик честно предупреждает: драйвер не накладывает ограничений на экспорт предметов и жидкостей. Фактически, имея лишь кабель и адаптер, программа способна мгновенно перемещать ресурсы с огромной скоростью. Это может нарушить баланс на серверах и привести к непреднамеренному опустошению хранилища. Поэтому при написании скриптов стоит добавлять собственные проверки и задержки, чтобы избежать злоупотреблений.
Кроме того, мод рассчитан исключительно на версию 1.10.2. Если вы играете на более поздних сборках, необходимость в нём отпадает — функционал уже встроен в сам Refined Storage.
Заключение
Open Computers Refined Storage Driver — крошечный, но незаменимый компонент для тех, кто строит комплексные системы автоматизации на Minecraft 1.10.2. Он стирает границу между программируемой логикой и цифровым складом, позволяя создавать умные фабрики, динамические сортировщики и адаптивные крафтовые цепочки. Благодаря простому API даже новичок в Lua сможет написать полезный скрипт, а опытные инженеры оценят гибкость и производительность. Если ваша сборка ещё живёт в эпохе 1.10.2, этот драйвер определённо заслуживает места в папке mods.