ComputerCraft1.6pr0
つい先日、ComputerCraft1.6のプレリリース版がベータテスター向けに公開されたので、
ダウンロードして少しだけ触ってみました。
ついでに少しだけLuaプログラム側も覗いてみました。
はまったところ
- saveフォルダは、「saves\ワールド名\computer」から「saves\ワールド名\computercraft」に変更かな? 最初、ファイルが見つからないのであせりました。
ポケットコンピュータ
- ポケットコンピュータのIDは0に固定されているのかな?
- 初期状態だとまだ周辺機器もついていないみたい
- この画像はAdvancedのほうだけど、枠の色が金じゃなくて白のままですね。これもバグなんでしょうか。
- レシピは金りんごwww
"paste"イベントの実装
きたこれ! もしかしてついにコピー&ペースト正式実装ですか?
でも残念ながら、このコードだと改行コード入りのテキストをコピペすることを想定してないように見えます。
はやく、複数行コピーしたいです・・・。
peripheral.find関数について
気になるのが、peripheral.find(機器名) という関数。1.6pr0時点でのソースはこちら。
function find( sType, fnFilter ) local tResults = {} for n,sName in ipairs( peripheral.getNames() ) do if peripheral.getType( sName ) == sType then local wrapped = peripheral.wrap( sName ) if fnFilter == nil or fnFilter( sName, wrapped ) then table.insert( tResults, wrapped ) end end end return unpack( tResults ) end
仕様的には次のような感じですね。
- peripheral.find(機器タイプ名, ファンクションフィルタ?)
- 装着されている全周辺機器の中に機器タイプ名に合致する周辺機器をみつけたらその関数群をwrapして返す。
- 「fnFilter」ってなんでしょうか? functionFilterで合っているのかな。関数を引数として与えるのでしょうか。
機能的に不満な点
- やっぱり、各周辺機器にgetSide()関数はありませんでした><
- ついでに、AdvancedMonitorと普通のMonitorを区別つけることもできません("Monitor"でどちらも反応する)。
同じような周辺機器が複数隣接しているときにそれらを使い分けるのがきつそうですね。
h2peripheral.find()を作ってしまいますか。
その他
あとはCC公式フォーラムの情報を流し読み。
- チャンネル65533を使って、repeatチャンネルなるものが実装されているみたい
- おそらく、複数の無線コンピュータを経由して遠くにメッセージを届かせるためかな?
- 「In love with window api」などど言っている人がいますね。
- まだそのAPIは触っていないけれど、楽しみ。
まとめ
まだまだ開発途中なので、これからが楽しみです。