Ccurseforge
OC XNet Driver

OC XNet Driver

Мод позволяет OpenComputers взаимодействовать с сетью XNet для передачи предметов, жидкостей и энергии между подключёнными блоками.

Автор: davenonymous Тип: Мод Категории: АддоныМодыТранспорт энергии, жидкости и предметов Загрузок: 14 545 695 Просмотров: 0 Обновлён: 17.09.2026

Этот мод расширяет функциональность OpenComputers, позволяя использовать сети XNet для передачи предметов, жидкостей и энергии между подключёнными блоками.

Совместимость и требования

  • Работает с OpenComputers и XNet.
  • Позволяет взаимодействовать с инвентарями, резервуарами и энергосистемами, подключёнными к сети XNet.

Известные ограничения

  • В текущей версии отсутствуют ограничения на скорость и объём передачи ресурсов, что позволяет передавать огромные количества мгновенно.

Основные методы API

Метод Описание
getConnectedBlocks() Возвращает список всех блоков, подключённых к сети XNet.
getSupportedCapabilities(pos[, side]) Перечисляет все поддерживаемые блоком возможности.
getItems(pos[, side]) Возвращает содержимое инвентаря указанного блока.
getFluids(pos[, side]) Перечисляет жидкости в указанном резервуаре.
getEnergy(pos[, side]) Получает информацию о ёмкости и запасах энергии у энергообработчика.
transferItem(sourcePos, sourceSlot, amount, targetPos[, sourceSide[, targetSide]]) Переносит предметы между двумя инвентарями.
transferFluid(sourcePos, amount, targetPos[, fluidName][, sourceSide[, targetSide]]) Перекачивает жидкости между резервуарами.
transferEnergy(sourcePos, amount, targetPos[, sourceSide[, targetSide]]) Переносит энергию между двумя энергообработчиками.
store(sourcePos, sourceSlot, database, entry[, sourceSide]) Сохраняет предмет из сети XNet в базу данных с помощью апгрейда.

Пример использования

Вот пример скрипта, который собирает все подключённые блоки, классифицирует их по типам (сундуки, резервуары, энергоклетки) и выводит содержимое первого сундука, первого резервуара и первой энергоклетки:

local component = require('component')
local serialization = require('serialization') local xnet = component.xnet local chests, tanks, cells = {}, {}, {}
for i, block in ipairs(xnet.getConnectedBlocks()) do print(serialization.serialize(block)) if block.name == "minecraft:chest" then table.insert(chests, block) elseif block.name == "thermalexpansion:tank" then table.insert(tanks, block) elseif block.name == "thermalexpansion:cell" then table.insert(cells, block) end
end print(serialization.serialize(xnet.getItems(chests[1].pos)))
print(serialization.serialize(xnet.getFluids(tanks[1].pos)))
print(serialization.serialize(xnet.getEnergy(cells[1].pos))) print("Transferred: " .. tostring(xnet.transferItem(chests[1].pos, 1, 5, chests[2].pos)))

Пример передачи энергии

Пример скрипта, который находит источник (динамо) и приёмник энергии (клетку), а затем передаёт 1000 RF между ними:

local component = require('component')
local sides = require('sides')
local serialization = require('serialization') local xnet = component.xnet local energySource, energyTarget
for i, block in ipairs(xnet.getConnectedBlocks()) do if block.name == "thermalexpansion:dynamo" then energySource = block elseif block.name == "thermalexpansion:cell" then energyTarget = block end
end if not energySource then print("No dynamo found. Aborting!") os.exit(1)
end
if not energyTarget then print("No cell found. Aborting!") os.exit(2)
end local transferred, err = xnet.transferEnergy(energySource.pos, 1000, energyTarget.pos, sides[energySource.side], sides[energyTarget.side])
if transferred then print(" - Transferred " .. transferred .. "RF to " .. serialization.serialize(energyTarget.pos))
else print("Error: " .. err)
end
Полезная информация

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

Короткие ответы по установке, совместимости и возможностям проекта.

Какие типы ресурсов можно передавать с помощью OC XNet Driver?

Можно передавать предметы, жидкости и энергию между блоками, подключёнными к сети XNet.

Есть ли ограничения на объём или скорость передачи ресурсов?

В текущей версии ограничений нет, поэтому можно передавать очень большие количества мгновенно.

Как получить список всех блоков, подключённых к сети XNet?

Для этого используется метод getConnectedBlocks(), который возвращает таблицу с информацией о каждом блоке.

Как передать предметы между двумя инвентарями?

Используется метод transferItem(sourcePos, sourceSlot, amount, targetPos[, sourceSide[, targetSide]]), где указываются позиции и количество передаваемых предметов.

Можно ли сохранять предметы из сети XNet в базу данных?

Да, для этого существует метод store(sourcePos, sourceSlot, database, entry[, sourceSide]), который сохраняет предмет в базу данных с апгрейдом.

Центр загрузок

Доступные версии

Выберите подходящую версию игры и скачайте нужный выпуск.

ocxnetdriver-1.0.3-b17.jar

Скачать21.74 KB
Релиз
Версии
1.12.2+2
Загрузки13 268 167
Добавлен