Minecraft 1.12.2用OC XNet Driver MOD
OpenComputersがXNetネットワークを利用して、接続されたブロックにアイテム、液体、エネルギーを転送できるようにする。
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
Install Millida Launcher
The launcher is free: download it at millida.net/launcher and sign in with any nickname.
Click “Install” on this page
The launcher opens and installs the mod for Minecraft 1.12–1.12.2 automatically.
Launch the game
A profile with it appears in the launcher: click “Play”.
Manually
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.
Put it in the mods folder
The folder is inside .minecraft (Windows: %appdata%\.minecraft\mods). If it does not exist, create it.
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の最初の評価を書きませんか

