Skip to content

适用于 Minecraft 1.12.2 的 OC XNet Driver 模组

允许OpenComputers利用XNet网络向连接的方块传输物品、流体和能量。

次浏览
19 次浏览
已更新
已更新 18.10.2026
  • 1.12 — 1.12.2

ocxnetdriver

OpenComputers + XNet = :heart:

允许 OpenComputers 利用 XNet 网络将物品、流体和能量传输到连接的方块。

已知问题

  • 目前没有任何限制,也就是说你可以在瞬间传输海量资源。

可用方法

方法说明

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]) 在两个储罐之间传输流体

transferEnergy(sourcePos, amount, targetPos[, sourceSide[, targetSide]]) 在两个能量处理器之间传输能量

store(sourcePos, sourceSlot, database, entry[, sourceSide]) 将 XNet 网络中某处的物品堆存储到数据库升级中

示例

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 -- {name="thermalexpansion:cell",pos={z=0,y=-1,x=0},side="west",meta=0} -- {name="opencomputers:case3",pos={z=0,y=-1,x=1},side="north",meta=1} -- {name="thermalexpansion:tank",pos={z=0,y=0,x=-2},side="down",meta=0,connector="Dynamo"} -- {name="minecraft:chest",pos={z=1,y=-1,x=-2},side="north",meta=3,connector="Dynamo"} -- {name="thermalexpansion:dynamo",pos={z=0,y=-1,x=-3},side="east",meta=2,connector="Dynamo"} -- {name="thermalexpansion:tank",pos={z=0,y=1,x=-1},side="down",meta=0} -- {name="thermalexpansion:tank",pos={z=0,y=0,x=-2},side="east",meta=0} -- {name="xnet:controller",pos={z=0,y=0,x=0},side="west",meta=3} -- 导出第一个箱子的内容: print(serialization.serialize(xnet.getItems(chests[1].pos))) -- { -- {maxSize=64,size=64,hasTag=false,maxDamage=0,damage=0,name="minecraft:stone",label="Stone"}, -- {maxSize=64,size=64,hasTag=false,maxDamage=0,damage=0,name="minecraft:hayblock",label="Hay Bale"}, -- [27]={maxSize=64,size=1,hasTag=false,maxDamage=0,damage=0,name="xnet:controller",label="Controller"}, -- n=27 -- } -- 导出第一个储罐的内容 print(serialization.serialize(xnet.getFluids(tanks[1].pos))) -- { -- {content={label="Essence of Knowledge",amount=4000,hasTag=false,name="experience"},capacity=20000}, -- n=1 -- } -- 导出第一个能量单元的内容 print(serialization.serialize(xnet.getEnergy(cells[1].pos))) -- {canExtract=true,stored=4000,capacity=2000000,canReceive=true} -- 将箱子 1 第 1 格中的任意物品传输 5 个到箱子 2 print("Transferred: " .. 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 print(serialization.serialize(xnet.getConnectedBlocks())) -- { -- {pos={y=-1,x=0,z=0},name="thermalexpansion:cell",side="west",meta=0}, -- {pos={y=-1,x=1,z=0},name="opencomputers:case3",side="north",meta=1}, -- {pos={y=-1,x=-3,z=0},name="thermalexpansion:dynamo",side="east",meta=2,connector="Dynamo"}, -- {pos={y=0,x=0,z=0},name="xnet:controller",side="west",meta=3}, -- n=4 -- } -- 找到一个发电机和一个能量单元并存储它们的位置等信息 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 -- 如果找不到能量源则中止 if(energySource == nil) then print("No dynamo found. Aborting!") os.exit(1) end -- 如果找不到目标则中止 if(energyTarget == nil) then print("No cell found. Aborting!") os.exit(2) end -- 使用 XNet 连接器旁边的面从能量源向目标传输 1000RF local transferred, error = xnet.transferEnergy(energySource.pos, 1000, energyTarget.pos, sides[energySource.side], sides[energyTarget.side]) if(transferred ~= nil) then print(" - Transferred " .. transferred .. "RF to " .. serialization.serialize(energyTarget.pos)) -- - Transferred 1000RF to {y=-1,x=0,z=0} else print("Error: " .. error) end

如何安装 OC XNet Driver

With Millida Launcher

  1. Install Millida Launcher

    The launcher is free: download it at millida.net/launcher and sign in with any nickname.

  2. Click “Install” on this page

    The launcher opens and installs the mod for Minecraft 1.12–1.12.2 automatically.

  3. Launch the game

    A profile with it appears in the launcher: click “Play”.

Manually

  1. Download the file for your version

    In the version list above, pick the file ocxnetdriver-1.0.3-b17.jar (22 KB) for your game version.

  2. Put it in the mods folder

    The folder is inside .minecraft (Windows: %appdata%\.minecraft\mods). If it does not exist, create it.

  3. Launch the loader profile

    Open “Mods” in the main menu: OC XNet Driver should be in the list.

Minecraft 1.12.2 runs on Java 8: with a different Java version the game may close right after launch.

版本

含依赖项

Minecraft加载器文件日期操作
1.12.1—ocxnetdriver-1.0.3-b17.jar21.7 KB
1.12.1—ocxnetdriver-1.0.2-b11.jar21.4 KB

常见问题

Which Minecraft versions does OC XNet Driver work on?

There are files for 1.12.2, 1.12.1, 1.12. The newest is 1.12.2.

Which Java does OC XNet Driver need?

Minecraft 1.12.2 runs on Java 8. If the game closes right after launch, the usual cause is the wrong Java version in the profile settings.

Where can I download OC XNet Driver safely?

On this page: the file ocxnetdriver-1.0.3-b17.jar (22 KB) is stored on Millida’s server, with no link shorteners. SHA-1 checksum: c0168aa96831aa717f6c9339c991cba17ece7373.

评价

成为第一个评价 OC XNet Driver 的人

评论 0

登录后即可评论登录

相似模组

全部模组

了解更多