読者です 読者をやめる 読者になる 読者になる

Minecraftとタートルと僕

PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。

ComputerCraft1.6の更新内容(予定)をまとめてみた

情報リンク集 ComputerCraft Minecraft

CC1.6の更新内容

CC公式ページにあるCC1.6更新内容をまとめてみました。
公式ページに更新項目を挙げてあるのですが、その内容の説明がTwitterでのやり取りや画像だけなのでかなり断片的です。
僕の解釈と推測が多く混じっていますので、完全には信じないように。

あなたはこの情報を信じても信じなくてもいい。

もちろん、情報のミス、僕の解釈の誤りについてはご指摘お待ちしております。

CC1.6の新機能説明(+僕のコメント)

個人的にこれはうれしいという機能には赤字を入れています。

  • Peripheral.find (これはうれしい!)
    • 周辺機器のTypeでwrapできるようになる。たとえばperipheral.find("monitor") など。
    • 該当する周辺機器が複数あるときには、まとめてwrapできる
      • mon1, mon2 = peripheral.find("monitor")
  • rednet routing (これはうれしい!)
    • 他のPCをバイパスして他のコンピュータにメッセージを送ることができるようなRednet APIを追加
    • おそらく、comA=comB・・・comC=comD。(=はケーブル接続。・・・は無線接続範囲)のような状況で、comAからcomDにメッセージを送ることができるのだと思われる。
    • Twitterでのやり取りを見る限り、複数の無線接続をまたぐことができるようなので、等間隔にワイヤレスタートルを設置すれば、非常に遠くのコンピュータにメッセージを送ることができるのだと思われる(もちろんチャンクローダー設置は必要だろうけれど)。
  • rednet hostnames and protocols (これはうれしい!)
    • rednet APIでhostnameを取り扱えるようになる。
    • おそらく、いままではコンピュータIDで相手を指定したいたけれど、コンピュータのラベルで扱えるようになるのだと思われる。
    • protocolsについては謎。TCP/IPみたくメッセージ受信保証とか? あるいはメッセージ返信待ちするようなプロトコルがあるとうれしいけれど難しいでしょうね。
    • もしくはそのようなプロトコルをユーザーに作ってもらうために、メッセージ種別識別用ラベルだったりしてw それはそれで夢が膨らむ。
  • rednet chat
    • チャットプログラムを標準で用意。
    • 自分シングルなんでどうでもいいです
  • better serialisation
    • textutils.serialize()を改善して、より可読性が高い文字列を返すようにした。
    • テーブルを文字列化するのに良く使いますね。
    • print(textutils.serialize(table)) としたときに少しだけ幸せになるかも。
  • better paint program 
    • お絵かきソフトを標準で用意。
  • wildcard expansion and fs.find
    • ターミナル画面上のshellで、「*」ワイルドカード(任意の文字列にヒット)が使えるように。
    • copy *.txt /rom/backup/ のようなことが可能に
  • fs.find関数にも、「*」ワイルドカード(任意の文字列にヒット)が使えるように。
    • fs.find("rom/*/red*") とか、パスの途中で入れても良いみたい。とても便利。
  • rednet mail
    • やったね! CCコンピュータ画面を使って、"現実世界の"メールが扱えるよ。
    • ターミナル画面で使えるメールソフトも付属
    • くっ。CCで日本語さえ使えれば・・・。
    • 相手からプログラムをメールで送ってもらうこともできるのかな。
    • CC用コンピュータウイルス(Lua製)ができるのもそう遠い未来ではないかもw
  • multitasking
    • ターミナル画面のshellで、マルチタスクが可能になった。
    • イメージとしては、Unix使いにはおなじみのバックグラウンド実行とジョブの切り替えかな。
    • 画面上部にタスク選択メニューがあって、ファイルを編集中に一旦中断して、他のファイルを見る、というようなタスクの切り替えが可能に。
  • a windowing API (これはうれしい!)
    • ターミナル画面内に、文字表示をするウィンドウを表示するAPI。
    • ターミナル画面内にタッチパネルボタンを作るのがはかどりそう。
    • 実装のイメージとしては、ターミナル画面上で矩形+メッセージ表示欄を簡単に描画できるようにterm APIを拡張したのかな?
  • optional turtle fuel limits
    • 補給できる燃料値に上限を加えた。
    • 最初に非常に大量の燃料を補給しておいて、あとは燃料を気にせずに使うなんてのは、たしかにずるいけれど。
    • おそらく20000が上限。オプショナルということだから、設定ファイルで変更できるはず。
    • 16*16*64=16384だから、燃料補給無しで64層を一気に掘りぬくのは1チャンク程度が限界になりますね。
    • 採掘タートルをクァーリー代わり使っている人は、プログラムの見直しが必要になるかも。
  • Improvements to turtle.compare, turtle.suck and turtle.refuel
    • turtle.compare()の不具合修正
      • これまで正常に働かないケースを対応とあるけれど、その議論を知らないのでこれ以上はなんとも。Twitterではピストンの話がでている。
    • turtle.suck(入手したい個数)を実現! (これはうれしい!)
      • いままでは個数指定できずに1スタックまとめて入手なので不便でしたから。
      • これは朗報。これができたら、以前の農業プログラムも書き換えなくては。
    • turtle.refuel(0)とturtle.craft(0)の不具合修正?
      • これもその議論を知らないのでよくわからない。
  • turtle.equip (this is a big one) (これはうれしい!)
    • 両側に任意のアイテムを装備できる?
    • turtle.equipLeft()で、選択スロットにあるダイヤ剣・ピッケルなどを左側に装備。
    • 片側に剣、もう片方にピッケルというのも可能らしい。
      • この場合、turtle.attack()したらどちらで攻撃するんだろ?
    • 装備したものを取り外す関数があるのか、モデムや作業台も装備できるのかで、応用範囲は広がりそう。