Скачать OC XNet Driver — Minecraft Моды — MetaMods

OC XNet Driver

Активный

Установок

0

Последнее обновление

7 лет назад
Клиент
Аддоны

OC XNet Driver

Этот мод объединяет два популярных расширения для Minecraft - OpenComputers и XNet, предоставляя программируемый контроль над сетями передачи ресурсов. С его помощью компьютерные системы могут взаимодействовать с подключенными устройствами через сеть XNet.

Основные возможности

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

Доступные методы управления

  • getConnectedBlocks() - возвращает список всех блоков, подключенных к XNet сети
  • getSupportedCapabilities(pos[, сторона]) - показывает все поддерживаемые возможности указанного блока
  • getItems(pos[, сторона]) - отображает содержимое любого инвентаря
  • getFluids(pos[, сторона]) - показывает содержимое резервуаров с жидкостями
  • getEnergy(pos[, сторона]) - отображает текущий заряд и емкость устройств хранения энергии
  • transferItem(исходная_позиция, исходный_слот, объем, целевая_позиция[, исходная_сторона[, целевая_сторона]]) - перемещает предметы между инвентарями
  • transferFluid(исходная_позиция, объем, целевая_позиция[, название_жидкости][, исходная_сторона[, целевая_сторона]]) - перемещает жидкости между резервуарами
  • transferEnergy(исходная_позиция, объем, целевая_позиция[, исходная_сторона[, целевая_сторона]]) - перемещает энергию между устройствами
  • store(исходная_позиция, исходный_слот, база_данных, запись[, исходная_сторона]) - сохраняет предметы из сети в базу данных

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

local component = require('component')
local sides = require('sides')
local serialization = require('serialization');

local xnet = component.xnet

-- Поиск и классификация всех подключенных блоков
local chests = {}
local tanks = {}
local cells = {}
for i,block in ipairs(xnet.getConnectedBlocks()) do
    print(serialization.serialize(block))
    if(block.name == "minecraft:chest") then
        chests[#chests+1] = block
    elseif(block.name == "thermalexpansion:tank") then
        tanks[#tanks+1] = block
    elseif(block.name == "thermalexpansion:cell") then
        cells[#cells+1] = block
    end
end

-- Отображение содержимого сундука
print(serialization.serialize(xnet.getItems(chests[1].pos)))

-- Перемещение предметов между сундуками
print("Перемещено: " .. tostring(xnet.transferItem(chests[1].pos, 1, 5, chests[2].pos)))

Передача энергии: наглядный пример

local component = require('component')
local sides = require('sides')
local serialization = require('serialization')

local xnet = component.xnet

-- Поиск источника и приемника энергии
local energySource = nil
local energyTarget = nil

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

-- Передача 1000RF энергии
if energySource and energyTarget then
    local transferred, error = xnet.transferEnergy(energySource.pos, 1000, energyTarget.pos, sides[energySource.side], sides[energyTarget.side])
    if(transferred ~= nil) then
        print(" - Передано " .. transferred .. "RF " .. serialization.serialize(energyTarget.pos))
    else
        print("Ошибка: " .. error)
    end
end

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

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

Мод полностью совместим с ключевыми модификациями вроде Thermal Expansion и другими устройствами, поддерживающими стандартные способы взаимодействия.

Участники проекта
davenonymous

davenonymous

Создан: 2 ноя 2018

ID: 92380