Skip to content

Minecraft 1.12.2用OC XNet Driver MOD

OpenComputersがXNetネットワークを利用して、接続されたブロックにアイテム、液体、エネルギーを転送できるようにする。

閲覧
13 閲覧
更新日
更新日 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]]) 2つのインベントリ間でアイテムを転送します

transferFluid(sourcePos, amount, targetPos, fluidName]) 2つのタンク間で液体を転送します

transferEnergy(sourcePos, amount, targetPos[, sourceSide[, targetSide]]) 2つのエネルギー ハンドラ間でエネルギーを転送します

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

FAQ

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

コメントするにはサインインしてくださいログイン

類似のMOD

すべてのMOD

この項目の詳細