Minecraftとタートルと僕

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

CCのディレクトリを理解する(応用編その2)

前回の応用編では、ホームディレクトリ(=ルートディレクトリ)直下のファイル群をゲーム外から操作する方法を紹介したけれど、いろいろプログラムを作って運用しているうちに次のような不満が出てくるんじゃないかな

  • ちょーすごいプログラム作ったけど、新しいコンピュータ設置するたびに手作業でファイルコピーするの面倒です
  • ゲーム起動中にセーブフォルダをいじるとかwww 書き込み競合してファイル破損したらどうしてくれんの?

後者のファイル編集について。
排他書き込みするソフトで編集中に、ゲーム内で同じファイルをeditしたらどうなるんだろうね(ゲス顔
セーブフォルダのバックアップは大事。絶対。

話は戻して、前者の対応策として。
「rom」ディレクトリ以下に自分のプログラムを置く、つまりはインストールすることで対応できるよ。

自作プログラムのインストール方法(準備編)

基本編でお話したように「rom」ディレクトリ以下のディレクトリ・ファイルは「ゲーム内からは」修正できない。
ゲーム外からこのディレクトリを修正する方法を紹介しようね。

ちなみに以下の方法は「ComputerCraft 1.53」、およびそれ以前のバージョンでのお話。
これより新しいバージョンはMinecraft1.6.x 用なので Resource pack導入によりファイルを展開する場所が変更になっているよ。
CC非公式Wikiにそのあたり詳しく書いてあるからそちらを見てね。

以下、手順だよ。

  1. ゲーム自体は停止しておいた方が無難だと思われるので作業中は終了しちゃおうね
  2. modフォルダ「%appdata%\.minecraft\mods\」をウィドウで開こう
  3. そこに「ComputerCraft」という新しいフォルダを作る
  4. それとはまた別に、CCのmodファイル本体である「ComputerCraft1.53.zip」を展開しておく
  5. 展開してできたフォルダの中の「Lua」フォルダをさきほど作った「ComputerCraft」フォルダにまるごとコピペ

最終的に「%appdata%\.minecraft\mods\ComputerCraft\Lua\rom\.....」なんてフォルダ構造になっているはず。
この「rom」フォルダの中は、「apis」「help」「programs」などと以前どこかで見たような名前が並んでいるよ。

実はこの「rom」フォルダは、ゲーム内の「全ての」コンピュータのromディレクトリと対応している。だからこの「rom」フォルダ内を改変すると、ゲーム内の全てのコンピュータの「rom」ディレクトリに反映されるよ。

自作プログラムのインストール方法

正確に言うとこんな感じの対応関係*1

  • CCコンピュータの「rom」ディレクトリ:「/rom/」
  • Windowsから見た「rom」フォルダ:「%appdata%\.minecraft\mods\ComputerCraft\Lua\rom\」

ちょーすごいプログラムを作ったらWindows側で「rom\programs\」フォルダにコピーしてあげればインストール完了だよ。全てのコンピュータで自作プログラムが使えるようになるんだ。

なお、ゲーム起動中に新しいプログラムをインストール(あるいはエディタでリアルタイム修正)すると、まれにCCコンピュータで反映されないことがあるんだ。そのときは「CTRL+R」でそのCCコンピュータを再起動してみてね。

インストール場所に関する僕のこだわり

あらかじめ入っていたプログラムと新しくインストールしたプログラムが混じるのが気持ち悪い人は、
「rom\programs\」フォルダ直下に自作プログラムをインストールするのではなく、そこに自分用フォルダを新しく作っておいてインストールする方式をおすすめするよ。

僕は、以下のような自分用フォルダを作って、そこにそれぞれ自作プログラムと自作ライブラリを入れているよ。

  • 「rom\programs\opt\」:自作プログラムインストール場所
  • 「rom\apis\opt\」:自作APIライブラリインストール場所

ちなみにこうすると、「opt」以下にインストールしたプログラムを実行するときには

> /rom/programs/opt/tyo-sugoi

のようにフルパス指定しなくてはならなくなる。だって「opt」フォルダは検索対象のPATHに含まれていないからね。
この設定方法については次回説明しようね。

(次回予告:「rom\startup」ファイルの書き換え)

*1:CCの方をディレクトリ、Windowsの方をフォルダと意図的に区別しているけど個人的なこだわりなのであまり気にしないでね