ComputerCraftAPIのIComputerAccessインターフェイスについて解説する。
特に断りがない限りは、文中の「コンピュータ」はComputerおよびTurtleを指す。
参考資料:
執筆時のバージョン:
- ComputerCraft 1.51 for Minecraft 1.5
interface IComputerAccess
ComputerやTurtleより周辺機器へ渡されるインターフェイス。周辺機器から呼び出し可能なメソッドを提供する。実装する必要はない。このインターフェイスでのみコンピュータとやり取りできる。
int createNewSaveDir( String subPath )
ユーザーのゲームフォルダ以下に新しい番号付きのフォルダを作成し、その番号を返す。
例えば、
n = createNewSaveDir( "computer/cdrom" );
はユーザーのセーブフォルダ以下の"computer/cdrom"フォルダに新しい番号付きフォルダを作り、その番号を返す。作成したフォルダは、mountSaveDirを使って
mountSaveDir( "cdrom", "computer/cdrom", n, true, 0 );
のようにしてコンピュータのディレクトリ構造にマウントすることができる。そしてこの数値nを保存し、将来再び使用することによって、周辺機器に永続的な保存領域を提供することができる。
- subPath
- フォルダを作成するユーザーのワールドセーブフォルダ以下の相対パス。
- 戻り値
- 作成されたフォルダの名前を表す正の整数。
String getAttachmentName()
IComputerAccessのコンピュータがこの周辺機器を参照するためのユニークな文字列を取得する。
隣接して接続された周辺機器では"top"または、"bottom"、"left"、"right"、"front"、"back" のいずれかであるが、離れて接続された周辺機器では異なる。コンピュータにイベントを発生させる場合、コンピュータがどの周辺機器からイベントが来たのか把握できるように、この文字列を提供することが推奨されている。
- 戻り値
- コンピュータ(全体ではない)にとってユニークな文字列。
int getID()
このコンピュータのID番号を返す。これは、Luaからos.getComputerID()を呼び出したり"id"プログラムを実行したりして得られる数値と同じであり、ユニークであることが保障されている。
正の整数。
- 戻り値
- ID番号。
String mountFixedDir( String desiredLocation, String path, boolean readOnly, long spaceLimit )
Minecraftのインストールフォルダ以下に実在するフォルダを、コンピュータのファイルシステム内にマウントする。
例えば、
mountFixedDir( "stuff", "mods/mymod/lua/stuff", true, 0 );
はmodの"lua/stuff"フォルダを、コンピュータのファイルシステムの"stuff"の位置にマウントする。
フォルダがマウントされると、それがコンピュータのファイルシステム上に現れてフォルダに対して読み書きのファイル操作をすることがきる(書き込みはreadOnlyがfalseのときのみ可能)。
mountFixedDirはファイルをマウントすることもできる。
例えば、
mountFixedDir( "rom/apis/myapi", "mods/mymod/lua/myapi.lua", true, 0 );
は周辺機器がコンピュータに接続されたときにAPIをインストールするために使うことができる。
- desiredLocation
- コンピュータのファイルシステム上でフォルダを表示させたい場所。すでに存在している場合は、重複しないように末尾に番号が付される。実際に配置されたフォルダ名が戻り値で帰る。例えば"cdrom"にマウントしようとしたとき、既に"cdrom"が存在した場合は、"cdrom2"にマウントされる。
- subPath
- フォルダを作成するユーザーのワールドセーブフォルダ以下の相対パス。
- readOnly
- マウントしたフォルダの変更や、その中のファイルの変更や作成を禁止するか。
- spaceLimit
- マウントの限界サイズ(バイト単位)。0を指定すると無制限になる。
- 戻り値
- フォルダがマウントされたコンピュータのファイルシステムでの位置。desiredLocationとは異なる可能性がある。後でこのフォルダをアンマウントをする時のために、この戻り値は見失うべきではない
String mountSaveDir( String desiredLocation, String subPath, int id, boolean readOnly, long spaceLimit )
ユーザーのゲームセーブフォルダ以下に実在する数字の名前を持つフォルダを、コンピュータのファイルシステム内にマウントする。
例えば、
n = createNewSaveDir( "computer/cdrom" );
はユーザーのセーブフォルダ以下の"computer/cdrom"フォルダに新しい番号付きフォルダを作り、その番号を返す。作成したフォルダは、mountSaveDirを使って
mountSaveDir( "cdrom", "computer/cdrom", n, true, 0 );
のようにしてコンピューターのディレクトリ構造にマウントすることができる。そしてこの数値nを保存し、将来再び使用することによって、周辺機器に永続的な保存領域を提供することができる。
フォルダがマウントされると、それがコンピュータのファイルシステム上に現れてフォルダに対して読み書きのファイル操作をすることがきる(書き込みはreadOnlyがfalseのときのみ可能)。
- desiredLocation
- コンピュータのファイルシステム上でフォルダを表示させたい場所。すでに存在している場合は、重複しないように末尾に番号が付される。実際に配置されたフォルダ名が戻り値で帰る。例えば"cdrom"にマウントしようとしたとき、既に"cdrom"が存在した場合は、"cdrom2"にマウントされる。
- subPath
- フォルダを作成するユーザーのワールドセーブフォルダ以下の相対パス。
- id
- subPathから追加するフォルダ名の番号。例えばmountSaveDir( "cdrom", "computer/cdrom", 7, false, 0 )では実際の"computer/cdrom/7"フォルダをコンピュータファイルシステム上の"cdrom"フォルダにマウントする。createNewSaveDirを使うと既存のものと重複しないフォルダ番号を取得できる。
- readOnly
- マウントしたフォルダの変更や、その中のファイルの変更や作成を禁止するか。
- spaceLimit
- マウントの限界サイズ(バイト単位)。0を指定すると無制限になる。
- 戻り値
- フォルダがマウントされたコンピュータのファイルシステムでの位置。desiredLocationとは異なる可能性がある。後でこのフォルダをアンマウントをする時のために、この戻り値は見失うべきではない。
void queueEvent( String event )
queueEvent( String event, Object[] arguments )のargumentsを空の配列にしたものと同等。
void queueEvent( String event, Object[] arguments )
このコンピュータをイベントが発生した状態にする。コンピュータはos.pullEvent()を呼び出すことで受け取ることができる。これはワールドや周辺機器に何か起きた時にコンピュータへ知らせるために使うことができる。
- event
- 発生したイベントを特定するための文字列。os.pullEvent()から戻る最初の値になる。これは、ユニークな名前で、認識できるように周辺機器(のタイプ名)から始まるものが奨励される。例えば、周辺機器のタイプ(IPeripheral.getType()の戻り値)が"button"の場合、適切なイベントは"button_pressed"のようになる。
- arguments
- イベント名に加えて追加で渡される引数の配列。os.pullEvent()の追加の戻り値として渡される。この配列内のオブジェクトはIPeripheral.callMethod()の戻り値と同様の規則でluaのデータ型へ変換される。渡す引数がないことを示すには、nullを渡せばよい。
最終更新:2013年03月10日 20:33