提供: Minecraft Modding Wiki
この記事は執筆中です。加筆してくださる人を募集しています。 |
この記事は"Minecraft Forge Universal 10.13.0.x~"及び"ComputerCraft 1.64~"を前提MODとしています。 |
ComputerCraftのComputerから利用可能な周辺機器やTurtleに装着可能なTurtle Upgradeなどを追加することができる。
概要
ComputerCraft APIを利用して以下のようなブロックやアイテムを追加できる
- ComputerやTurtleから利用可能な周辺機器ブロック
- Turtleへ装着可能なツールと周辺機器(Turtle Upgrade)
開発環境への導入方法
ComputerCraftの前提MODであるMinecraftForgeがMOD開発環境に導入されている必要がある。
これらの導入方法はMOD開発環境を作る、MinecraftForge導入手順のページを参照。
- ComputerCraftをダウンロード
- ダウンロードしたjarを解凍
- 拡張子をzipに変更して解凍する
- ソースコードを移動
- 解凍したjarのapi\srcフォルダ内にある「dan200」フォルダを、(プロジェクトフォルダ)\src\api\javaフォルダ内に移動する
- Eclipseで利用する場合、導入後にsrc/api/javaフォルダをビルド・パスでソース・フォルダとして使用する設定にする
- APIをjarファイルとして導入していないので、チュートリアルでは「1.7でjar形式でないAPIを利用する方法」を参照の事
- APIのドキュメント(英語)は解凍したjarのapi\docフォルダにある
- 解凍したjarのapi\srcフォルダ内にある「dan200」フォルダを、(プロジェクトフォルダ)\src\api\javaフォルダ内に移動する
デバッグ方法
このAPIはリコンパイル時にエラーが出なくなるだけなので、デバッグは「MinecraftForge導入手順#MODのリリース」の手順で生成した配布可能なjarと、ComputerCraftを導入した通常のMinecraftで行う。
関連リンク
- ComputerCraft 公式
- ComputerCraft Download
- ComputerCraft Forums: Peripherals and Turtle Upgrades
- ComputerCraft Wiki: Turtle Upgrade IDs
ComputerCraft API
「実装する」と書かれているものは追加したい機能に応じて実装する必要のあるインターフェース。
以下「Computer」は特に断りのない限りComputerとTurtleを指す。
dan200.computercraft.api
- クラス
- ComputerCraftAPI
- ComputerCraft APIへの静的エントリーポイント。ComputerCraftへの各種登録等
dan200.computercraft.api.filesystem
- インターフェース
- IMount
- Computerへマウント可能な架空のファイルシステム(読み込み専用)
- ComputerCraftAPI.createResourceMount() で取得。IComputerAccess.mount() でComputerへマウント
- IWritableMount
- Computerへマウント可能な架空のファイルシステム(読み書き可能)。IMount のサブインターフェース
- ComputerCraftAPI.createSaveDirMount() で取得。IComputerAccess.mountWritable() や IComputerAccess.mount() でComputerへマウント
dan200.computercraft.api.lua
- インターフェース
- ILuaContext
- Computerから周辺機器やILuaObjectへ渡され、処理を中断してイベントを待つことが可能なメソッドを提供する
- ILuaObject
- IPeripheral.callMethod()で返されるカスタムオブジェクトを実装する
- 例外
- LuaException
- Lua内での例外。指定メソッド内でthrowすると処理を中断してComputerにエラーメッセージを表示できる
dan200.computercraft.api.media
- インターフェース
- IMedia
- Disk DriveなどにセットしてComputerから利用可能なメディアを実装する
- createDataMount() で IMount を返せば記録メディアとなり、getAudioRecordName() でリソース名を返せば音楽メディアとなる
- IMediaProvider
- Disk DriveなどでItemStackから対応した IMedia を提供するために実装する
- ComputerCraftAPI.registerMediaProvider() でComputerCraftに登録する
dan200.computercraft.api.peripheral
- インターフェース
- IComputerAccess
- Computerから周辺機器へ渡され、周辺機器から呼出し可能なメソッドを提供する
- IPeripheral
- 周辺機器の動作を実装する
- 実装クラスのインスタンスを返すように実装した IPeripheralProvider のインスタンスを ComputerCraftAPI.registerPeripheralProvider() でComputerCraftに登録する
- IPeripheralProvider
- 特定のブロックを周辺機器として扱うための IPeripheral を提供するために実装する
- ComputerCraftAPI.registerPeripheralProvider() でComputerCraftに登録する
dan200.computercraft.api.redstone
- インターフェース
- IBundledRedstoneProvider
- 16チャンネル(ON/OFFのみ)のレッドストーン出力を提供するために実装する
- ComputerCraftAPI.registerBundledRedstoneProvider() でComputerCraftに登録する
dan200.computercraft.api.turtle
- インターフェース
- ITurtleAccess
- TurtleからTurtle Upgradeへ渡され、Turtle Upgradeから呼出し可能なメソッドを提供する
- ITurtleCommand
- カスタム・タートル・コマンドを実行するために実装する
- ITurtleAccess.executeCommand() で使用する
- ITurtleUpgrade
- Turtle Upgradeの定義を実装する
- ComputerCraftAPI.registerTurtleUpgrade() でComputerCraftに登録する
- クラス
- TurtleCommandResult
- Turtleが実行したコマンドの成否を表す
- ITurtleUpgrade.useTool() や ITurtleCommand.execute() の戻り値として使う
- 列挙型
- TurtleAnimation
- Turtle行動時のアニメーションの種類
- { MoveBack, MoveDown, MoveForward, MoveUp, None, SwingLeftTool, SwingRightTool, TurnLeft, TurnRight, Wait }
- TurtleSide
- Turtle Upgradeが装着されるTurtleの方向を表す
- { Left, Right }
- TurtleUpgradeType
- Turtle Upgradeのタイプ
- { Peripheral, Tool }
- TurtleVerb
- ToolタイプのTurtle UpgradeにおけるTurtleの行動の種類
- { Attack, Dig }