ComputerCraft1.6 is here!
ComputerCraft 1.6 is here! | ComputerCraft
上記、公式ページで紹介されている動画は追加機能の雰囲気をつかむのに最適。英語わからなくても(だいたい)大丈夫!
大規模バージョンアップとなります
変更点を簡単にまとめると以下のように。
- ポケットコンピュータ!
- テトリス! テトリス!
- 両手にダイヤ剣で最強に見える
- 無線通信APIの強化が半端ない
- window APIのおかげで画面の特定箇所に文字表示する仕事が捗る
- Unixユーザーのみなさま、shellでfgとbgが来ましたよ
- suck()とdrop()が個数指定できるのは、地味にうれしい
- ポケットコンピュータ!!
(まだ出たばかりなので、バグの情報もチラホラ・・・)
インストール方法
「GameDirectory」の「mods」フォルダに、ダウンロードしたJARファイルを放り込むだけ
注意:
- ComputerCraft1.58からComputerCraft1.6へのバージョンアップするときは、ComputerCraft1.58.zipファイルを消しておくこと。
- またリソースパックを使って、「rom」フォルダを上書きしているならば、リソースパックの方も消しておくこと。あるいは、CC1.58のリソースパックをCC1.6のものに置き換えること。
- 「config」フォルダにあるCC1.58時の設定ファイル
CCTurtle.cfg
とComputerCraft.cfg
も消した方がいいかも。 - いままで動いていたLuaプログラムが動かなくなっても泣かないこと。
- ワールドのバックアップは重要。まだ安定してないので、本番ワールドへの導入はもうしばらく待ったほうがいいかも。
New Features の試訳
()内は僕のコメントおよび補足説明です。
おそまつな訳ですが、自由に転載・修正していただいてかまいません。
(色々な場所でCC1.6リリースを宣伝してもいいのよ? チラッチラッ)
Added Pocket Computers
- ポケットコンピュータを追加しました。
Added a multi-tasking system for Advanced Computers and Turtles
- Advanced Computer、Turtleのためにマルチタスクシステム機能を追加しました。
Turtles can now swap out their tools and peripherals at runtime
- プログラム実行中に、タートルは装着したツールや周辺機器を取り替えることができます。
Turtles can now carry two tools or peripherals at once in any combination
- タートルはどんな組み合わせでも、一度に二つのツールや周辺機器を持つことができます。
Turtles and Computers can now be labelled using Name Tags and Anvils
- タートルやコンピュータは、ネームタグや金床(anvil)を使って名前をつけることができます。
Added a configurable fuel limit for Turtles
- タートルのために設定可能な燃料制限を追加しました。
- (一度に補給できる燃料値に制限が加わります。設定ファイルで変更可能)
- (pr3時点で、デフォルトで、AdvancedTurtleは100000、Turtleは20000のようです)
Added hostnames, protocols and long distance routing to the rednet API
- Rednet APIに、hostname、protocol、そして長距離のルーティング(複数台を介して長距離の通信ができるようになる)を追加した。
Added a peer-to-peer chat program to demonstrate new rednet capabilities
- 新しいRednet(API)のデモンストレーションのために、P2P型チャットプログラムを追加した。
Added a new game, only on Pocket Computers: "falling" by GopherATL
- ポケットコンピュータだけに新しいゲームを追加しました: GopherATL氏による"falling"
- (テトリス!テトリス!)
File system commands in the shell now accept wildcard arguments
- シェル(shell)におけるファイルシステム系のコマンドで、ワイルドカード(*)を引数として受け付ける。
The shell now accepts long arguments in quotes
- シェル(shell)は、クウォートで長い複数の引数を受け付けます。
- (シェルでプログラムを実行する時に、
> myprogram "this is a pen"
のように途中にスペースが入っていても引用符でくくることで一つの引数としてまとめられるようになるのだと思われる)
Terminal redirection now no longer uses a stack-based system. Instead: term.current() gets the current terminal object and term.redirect() replaces it. term.restore() has been removed.
- ターミナル表示のリダイレクトはもうstack-basedシステムを使いません。そうではなく、term.current()が現在のterminalオブジェクトを入手し、term.redirect()はそれに入れ替わります。また、term.restore()は削除しています。
- (これまでは、ターミナル画面への表示内容を外部モニタにリダイレクトするために、term.redirect()でリダイレクト開始、term.restore()でリダイレクト終了としていましたが、これが変更になるということでしょう。)
Added a new Windowing API for addressing sub-areas of the terminal
- ターミナルの一部の領域に表示するための、新しいWindowing APIを追加しました。
- (ターミナルの特定箇所にボタンを表示するのに使えそうですね。僕のh2touchpanel APIもこれに対応できるよう改造しなくては)
New programs: fg, bg, multishell, chat, repeat, redstone, equip, unequip, falling
- 新しいプログラムを追加: fg、bg、multishell、chat、repeat、redstone、equip、unequip、falling
Improved programs: copy, move, delete, rename, paint, shell
- 改善したプログラム: copy、move、delete、rename、paint、shell
Removed programs: redset, redprobe, redpulse
- 削除したプログラム: redset、redprobe、redpulse
New APIs: window, multishell
- 新しいAPI: window、multishell
New turtle functions: turtle.equipLeft() and turtle.equipRight()
- Turtle(API)の新しい関数: turtle.equipLeft()、turtle.equipRight()
- (前述のツールや周辺機器を装着する関数ですね。)
New peripheral functions: peripheral.find( [type] )
- Peripheral(API)の新しい関数: peripheral.find(機器タイプ名)
- (これまでは装着方向を指示しないと周辺機器の関数テーブルを入手できませんでしたが、これで、機器タイプを指定するだけで入手できるようになります。とはいえ、僕のh2peripheral APIの方が高機能なんですけどね(宣伝)。)
New rednet functions: rednet.host( protocol, hostname ), rednet.unhost( protocol ), rednet.locate( protocol, [hostname] )
- Rednet(API)の新しい関数: rednet.host( protocol, hostname )、rednet.unhost( protocol )、rednet.locate( protocol, [hostname] )
New fs function: fs.find( wildcard )
- Fs(API)の新しい関数: fs.find( wildcard )
New shell functions: shell.openTab(), shell.switchTab( [number] )
- 新しいshell関数: shell.openTab()、shell.switchTab( [number] )
New event "term_resize" fired when the size of a terminal changes
- 新しいイベント(event)である "term_resize" は、ターミナルのサイズが変化するときに発生
Improved rednet functions: rednet.send(), rednet.broadcast() and rednet.receive() now take optional protocol parameters
- 改良したRednet(API)の関数: rednet.send(), rednet.broadcast() and rednet.receive()。これらは、オプションとしてprotocolパラメータを取る。
turtle.craft(0) and turtle.refuel(0) now return true if there is a valid recipe or fuel item, but do not craft of refuel anything
- turtle.craft(0)とturtle.refuel(0)は、正しいレシピであったりあるいは燃料アイテムがあるならばtrueを返す。実際にクラフトしたり補給することなしに。
- (これら関数を引数0で実行すると、実際にクラフトしたり燃料補給することなしに、確認できるようになるということでしょう)
turtle.suck( [limit] ) can now be used to limit the number of items picked up
- turtle.suck( [limit] )は、拾い上げるアイテムの数を制限するのに使うことができる。
- (これまではsuck()すると1スタック拾い上げていましたが、これからは拾い上げる個数を指定できるようになります。まさに神機能)
- (ついでながら、turtle.drop()もドロップ個数を指定できるように! すばらしい!)
Users of turtle.dig() and turtle.attack() can now specify which side of the turtle to look for a tool to use (by default, both will be considered)
- turtle.dig() や turtle.attack() の利用者は、使うツールを探すためにタートルのどちら側なのかを指示できる(デフォルトでは、両側が検討されるだろう)
- (両側に任意のツールを装着できるので、turtle.dig("left")のようにどちら側のツールを使うのか指定できます)
textutils.serialise( text ) now produces human-readable output
- textutils.serialise( text )は、人が読める文字列を出力します。
- (たぶん誤植。textutils.serialize(table)だったはず。テーブルのようなデータ構造体を人が読みやすい形式にシリアライズするという話のはず。)
Refactored most of the codebase and fixed many old bugs and instabilities, turtles should never ever lose their content now
- ほどんどのソースコードのリファクタリングと、バグや不安定な部分の修正をした。タートルは絶対にその中身を失うべきではない。
- (タートル関係の致命的なバグの修正に関する話だと思われ。消失バグがあったのかな?)
Fixed the "turtle_inventory" event firing when it shouldn't have
- "turtle_inventory" イベントが発生すべきでないところで発生するバグを修正した。
- (やっぱりそうでしたか。このバグに悩まされていたのでよかったよかった。選択スロットを変更するturtle.select()でこのイベントが発生するっておかしいよね)
Added error messages to many more turtle functions after they return false
- さらに多くのTurtle(API)関数に、失敗(false)を返したあとのエラーメッセージを追加した。
- (Turtle系の関数実行に失敗したときに具体的なエラーメッセージを返してくれると、プログラミング時に例外処理がしやすくなりますね。こうなるとtry/catch/throwが欲しくなる。)
Documented all new programs and API changes in the "help" system
- "help"システムに、全ての新しいプログラムとAPIの変更について説明書を付記した。
- (すばらしい! 変更についてのドキュメントがないと大変ですからね)
余談ですが
この記事は外出先で書いています。 帰宅予定が明日の夜なので、まだ試すことができません(涙)