Minecraftとタートルと僕

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

こちらのページは更新が滞っており、情報が古くなりつつあります。新しいCC情報サイトをはじめましたので、もしよければご参照ください。今後ともよろしくお願い申し上げます。

「百億のマインクラフトと千億のタートル」(https://hevo2.hatenablog.com/)

ComputerCraftのディレクトリを理解する(基本編)

はじめに

Unix経験者向けの説明

  • CCコンピュータ(タートル)のホームディレクトリは、「/」ルートディレクトリ
  • ルートディレクトリ直下に、全てのコンピュータで共通の内容となる「rom」ディレクトリがマウントされる。
    • このディレクトリ内の「programs」ディレクトリ内にCC標準のプログラムが入っている。
    • その名のとおり読み専用ディレクトリなので、ゲーム内からこのディレクトリ内を編集・変更することはできない。
  • ホームディレクトリは各コンピュータで独立しており、他のコンピュータのホームディレクトリを参照することはできない。
  • ゲーム外から、「ルート(ホーム)ディレクトリ」や「romディレクトリ」対応するフォルダを開いて編集することが可能。具体的なやり方については後日説明する。
  • CCフロッピーはゴミ。

以上。

より初心者向けの説明

  • CCコンピュータ起動時、最初にアクセスする標準のディレクトリ(=ホームディレクトリ)は「/」ルートディレクトリ。
    • ディレクトリという呼び方になじみがない人は、「フォルダ」と読み替えてもいい
  • ルート直下は以下のようなディレクトリ構造になっている
    • 文字列の末尾に「/」スラッシュがついているものはディレクトリ、ないものはファイル
 / --- rom/ --- apis/
                help/
                programs/
                startup
  • 「フォルダ」という言葉で説明するならば、まず「/」(ルート)フォルダが標準のフォルダで、その中に「rom」フォルダがあり、さらにその中に「apis」「help」「programs」フォルダと「startup」ファイルが存在する。
  • 「rom」フォルダ以下は、全てのCCコンピュータ(タートル)の共通部分であり、全てのコンピュータで同じ内容が表示される。
  • 「rom」フォルダは読み込み専用フォルダであり、CCコンピュータからは、内容を見ることはできても、編集・変更することはできない。
  • 「/」フォルダの「rom」フォルダ以外の部分は、各CCコンピュータの個別記憶領域(個別のファイル保存場所)となっており自由にファイルなどを追加・編集・削除できる。
  • ただし個別領域は完全に独立しているので、あるコンピュータから他のコンピュータの個別領域を参照することはできない。

コンピュータにフロッピードライブをつなぐとルートディレクトリ直下に「floppy」ディレクトリが出現する(専門用語で言うとルートディレクトリ直下にマウントされる)。
CCフロッピーでコンピュータ間のファイルのやり取りができるが、フロッピーは使いづらい上に、別のもっと楽な手段があるので、ここでは説明を省略する。CCフロッピーについてこのサイトで説明することは今後もおそらくない。

各ディレクトリがどのように使われているかの解説

/ (ルート=ホーム)

  • CCコンピュータでは、ルートディレクトリがそのままホームディレクトリ
  • ゲーム内でファイルを編集し保存するときは ルートディレクトリ直下に保存することになる

rom/

  • ルートディレクトリ直下にある読み込み専用ディレクトリ。「ゲーム内からは」このディレクトリの中にある以下のディレクトリ&ファイル群を編集することはできない
  • つまり言い換えると、ゲーム外の別ウィンドウでこれに対応するディレクトリ(フォルダ)を開けばゲームを起動しながらもそのまま直接編集できる。詳しくは後日説明予定。

apis/

  • 各種CC用プログラムがインクルードしているAPIライブラリの保存場所

help/

  • 各種CC用プログラムでhelpを使うときにここを参照するのかな
  • あまり使わないのでここでは触れません

programs/

  • ここにCCコンピュータ用のプログラムがたくさん入っている

たとえばよく使う「list (=ls = dir)」 コマンドや「cd」コマンドなんかもここにいっしょくたに入っている。

以下のコマンドを実行すると、入っている全てのプログラムを一覧表示できる。

# /rom/programs/ というディレクトリ内のファイル一覧を表示せよ というコマンド(命令)
> list /rom/programs/

コンピュータの一種であるTurtle用プログラムは、programs/ 直下にturtleというディレクトリがあり、その中に入っている。

以下のコマンドを実行すると、それらプログラムを一覧表示できる。

# /rom/programs/turtle/ ディレクトリ内のファイルを一覧表示せよ というコマンド(命令)
> list /rom/programs/turtle/

最初から入っている「excavate」や「tunnel」プログラムは便利なのでおすすめ。

startup

  • これはファイル(役割的にはスタートアップシェルスクリプトっぽいw)なので注意
  • CCコンピュータが起動するときに一番最初に実行されるプログラムで最初から用意されているもの
  • 詳しくはファイルの中を読んでみると良い。具体的には以下のようなことをやっている。
    • エイリアス(alias)の実行。listコマンドをlsやdirで実行できるのはこのおかげ
    • PATHの追加。プログラム実行時に自動検索されるディレクトリを追加している。カレントディレクトリ(現在の作業用ディレクトリ)がどこであろうと、/rom/programs/以下のプログラムを実行できるのはこのおかげ
PATHとは

プログラムを実行するためには、本来なら、「どのディレクトリの中にある」「どのプログラム」なのかを正確に指定しなければならない。
しかし、プログラムが置いてあるディレクトリの候補をあらかじめ登録しておけば、プログラム名だけで命令しても、あとはコンピュータ側が候補ディレクトリから自動的に検索して実行してくれる。

そしてこの検索候補となるディレクトリの一覧(リスト)のことを一般的にPATHと呼ぶ。