ComputerCraftAPIのIPeripheralインターフェイスについて解説する。
特に断りがない限りは、文中の「コンピュータ」はComputerおよびTurtleを指す。
参考資料:
執筆時のバージョン:
- ComputerCraft 1.52 for Minecraft 1.5.1
interface IPeripheral
周辺機器を定義するインターフェイス。ComputerやTurtleと対話させたいブロックのTileEntityによって実装される。
void attach( IComputerAccess computer )
canAttachToSideでtrueを返した周辺機器の方向にコンピュータが接続されたときに呼び出される。
これは、作動中のコンピュータの隣に周辺機器が設置され、また周辺機器の隣のコンピュータが起動され、あるいは周辺機器の隣にタートルが移動してきたときに発生する。attach()が呼び出されてからdetach()が呼び出される間、接続されたコンピュータはperipheral.call()を使って周辺機器のメソッドを呼び出す可能性がある。このメソッドは、どのコンピュータが周辺機器に接続しているのかを記録したり、接続されたときの処理を実行するために使われる。
注意: このメソッドはComputerCraftのLuaスレッドから呼び出される。Minecraftオブジェクトとの対話時にはスレッドセーフでなければならない。
- computer
- 接続されたコンピュータへのインターフェイス。一つの周辺機器には複数のコンピュータが接続される可能性があることに注意。
Object[] callMethod( IComputerAccess computer, int method, Object[] arguments ) throws Exception
getMethodNames()で公開したメソッドのどれかを接続されたコンピュータのLuaプログラミングがperipheral.call()で呼び出したときに呼び出される。
注意: このメソッドはComputerCraftのLuaスレッドから呼び出される。Minecraftオブジェクトとの対話時にはスレッドセーフでなければならない。
- computer
- 呼び出したコンピュータへのインターフェイス。一つの周辺機器には複数のコンピュータが接続される可能性があることに注意。
- method
- コンピュータがgetMethodNames()からどのメソッドを呼び出そうとしているのかを識別する整数。この整数はperipheral.call()に渡された文字列がgetMethodNames()の配列と一致するインデックスを示す。
- arguments
- peripheral.call()に渡された引数を表すオブジェクトの配列。Luaの文字列型の値はStringオブジェクトに、数値型はDoubleオブジェクトに、ブーリアン型はBooleanオブジェクトに、その他の型はnullによって表される。引数がない場合は空の配列となる。
- 戻り値
- Luaプログラムへの戻り値を表すオブジェクトの配列。Integerや、Double、Float、String、Boolean、nullはそれぞれ適切なLuaの型に変換される。他のすべての型はnilに変換される。nullを返した場合は何の値も返さないことを表す。
- Exception
- この関数から例外をスローすると、スローした例外と同じメッセージのLuaエラーを発生させる。これはメソッドに渡された変数が正しくない場合に適切なエラーをスローするために使う。
boolean canAttachToSide( int side )
コンピュータが周辺機器に接続される直前に呼び出され、接続を許可するかを返す。
- side
- 周辺機器からの相対的なコンピュータのある方向(0=Bottom、1=Top、2=East、3=West、4=North、5=South)。
void detach( IComputerAccess computer )
コンピュータが周辺機器から取り外されるときに呼び出される。
これは、コンピュータがシャットダウンされ、また周辺機器が接続しているコンピュータから取り外され、あるいは周辺機器に接続していたタートルが離れたときに発生する。このメソッドは、どのコンピュータが周辺機器に接続しているのかを記録したり、取り外されたときの処理を実行するために使われる。
注意: このメソッドはComputerCraftのLuaスレッドから呼び出される。Minecraftオブジェクトとの対話時にはスレッドセーフでなければならない。
- computer
- 接続されたコンピュータへのインターフェイス。一つの周辺機器には複数のコンピュータが接続される可能性があることに注意。
String[] getMethodNames()
周辺機器がLuaに対して公開するメソッドを識別する文字列の配列を返す。
これは、周辺機器が接続される度に一度だけ呼び出され、複数回呼び出された時に(戻り値を)変えてはいけない。
- 戻り値
- メソッドの名前を表す文字列
String getType()
周辺機器のタイプを識別する独自の文字列を返す。
これは、Luaからperipheral.getType()が呼ばれたときに使われる。
- 戻り値
- 周辺機器のタイプを識別する文字列
最終更新:2013年05月05日 19:32