Createで作成した、からくりエレベーターを制御するComputerCraft用のプログラムです。
- Createのからくり装置で作成した、エレベーターを、Createでは複雑で実現の難しい制御を実現しています。
- クラッチとギアシフトのみで制御します。
- ネットワークケーブルが許す限り、どんな長さ・階層のエレベーターにも対応出来ます。
- 任意の階まで止まる事なくエレベーターが動きます。
- 呼び出し機能があります。ボタンを押す事でその階までエレベーターを動かす事が出来ます。
- 階層表示に対応しています。モニターで今のエレベーターの場所、移動方向を確認出来ます。
- エレベーター扉の自動開け閉めに対応しています。エレベーターが到着したらその階の扉を開け、エレベーターが出発したら扉を閉めます。
- 到着音に対応しています。エレベーターが到着したら音が鳴ります。
- 設定を容易に行えるインストーラーが付属しています。
このプログラムを作成した環境です(必要なもののみの記載となります)。しかし、これら以外の環境(バージョン違い等)でも動作する可能性があります。
- Minecraft v1.19.2
- Fabric loader v0.14.12-1.19.2
- Fabric API v0.72.0+1.19.2
- CC: Restitched v1.101.2
- Create v0.5.0g-796+1.19.2
このプログラムが使用するには以下の条件全てを対象のエレベーターが満たしている必要があります。
- Createのからくり装置(メカニカルピストン・ローププーリー・ガントリーシャフトとガントリーキャリッジ等)で作成されている。
- 各階の間隔が一定である。
- エレベーターの昇降速度が一定である。
- エレベーターの全長が256ブロック以内である(ネットワークケーブルの長さ制限の為、実際にはもう少し余裕が必要です)。
このエレベーターシステムは、各階の行き先入力・呼び出しボタン・扉の開け閉め等を制御するフロアコンピューターと、フロアコンピューターを統括し、エレベーターの制御を行うマスターコンピューターの2種類のコンピューターから構成されます。フロアコンピューターは各階に1台ずつ設置し、マスターコンピューターは1つのエレベーターシステムに1台のみ設置します。
フロアコンピューターの構築は各階に対して行います。
- コンピューターは有線モデムを通じて、マスターコンピューターと接続します(他のフロアコンピューターと共に一本のネットワークケーブルでマスターコンピューターに接続すると良いです)。
- 上級モニターを使用するとカラー表示になりますが、(下級)モニターでも視認性を落とす事なく使用できます。
- 呼び出しボタンとエレベーターの扉はコンピューターがレッドストーンを伝達出来る範囲内に設置して下さい。
マスターコンピューターの構築はエレベーターシステム全体に対して1台のみ行います。
- マスターコンピューターはネットワークケーブルを通じて、エレベーターシステム内の全てのフロアコンピューターと接続します。
- それぞれ異なる面から、マスターコンピューターとクラッチ・ギアシフトをレッドストーンで接続します。
- クラッチのレッドストーン信号は反転させて下さい。
エレベーターの構築で設置したフロアコンピューターとマスターコンピューターにそれぞれの制御プログラムをインストールします。インストール方法には、インストーラーを使用する方法と、手動でインストールする方法があります。
- このレポジトリにあるluaファイルを全て1つのフロッピーディスクにコピーします。
- フロアコンピューター・マスターコンピューターにディスクドライブを接続し、1.のフロッピーディスクを入れ、システムにマウントします。
cd disk/でカレントディレクトリを1.のフロッピーディスクのルートディレクトリにします(マウント名は適宜変更して下さい)。- フロアコンピューターでは
install_floorを、マスターコンピューターではinstall_masterを実行してインストーラーを起動します。 - 表示される質問に答えてプログラムの設定をします。設定の際はこちらの表を参考にして下さい。
- インストールが完了したらコンピューターを再起動します。
-
フロアコンピューターではlogger.lua・floor.luaを、マスターコンピューターではlogger.lua・master.luaをルートディレクトリにコピーします。
-
floor.luaやmaster.luaをstartup.luaに名前変更します。 -
startup.luaをeditで開いて、Config = { ... }の{ }内を編集してプログラムの設定をします。項目 説明 有効な型 初期値 buttonFace呼び出しボタンのレッドストーン入力を受けるコンピューターの面 string(top・front・left・back・right・bottom)"back" doorFaceエレベーターの扉を制御する為にレッドストーン信号を出力するコンピューターの面 string(top・front・left・back・right・bottom)"left" floorこのフロアコンピューターがある階数。同じエレベーターシステム内の他のフロアコンピューターとの重複は許されません。 number1 roofFloor最上階を屋上表示「R」とするかどうか booleantrue 項目 説明 有効な型 初期値 clutchFaceクラッチを制御する為にレッドストーン信号を出力するコンピューターの面 string(top・front・left・back・right・bottom)"left" gearShiftFaceギアシフトを制御する為にレッドストーン信号を出力するコンピューターの面 string(top・front・left・back・right・bottom)"right" minFloorこのエレベーターシステムの最下階のフロア number1 maxFloorこのエレベーターシステムの最上階のフロア number10 timeBetweenFloorsエレベーターが1階層分移動するのに要する時間(参考までに、ローププーリーが64RPMで6m移動するのに要する時間は2.4です、移動時間の測定にはこちらを参考にして下さい。) number2.4 -
コンピューターを再起動します。
-
フロアコンピューターが起動すると、モニターに「?」と表示され、マスターコンピューターの検出を試みます。マスターコンピューターを検出するとモニターにエレベーターの位置と移動方向が表示されます。マスターコンピューターが検出出来ないと、5秒おきに再検出を試みます。
-
マスターコンピューター検出後、フロアコンピューターのターミナルには、
This is floor **.
Enter the floor which you want to go (**-**).
>_と表示れます。ここに行きたい階を入力するとエレベーターがその階に移動します。
-
また、呼び出しボタンを押す事でエレベーターをその階に呼ぶ事が出来ます。
-
エレベーターが移動中はフロアコンピューターのターミナルに、
The elevator is moving. Please wait.
と表示され、階層入力や呼び出しボタンを受け付けません。暫くお待ち下さい。
チートコマンドが使用可能な環境での測定です。
-
/scoreboard objectives add test dummyでテスト用のスコアボードを作成します。 -
以下の装置を組み立てます。この装置は6mの移動時間の測定を行います。レッドストーンコンタクトの間隔は希望する移動距離に応じて変更して下さい。尚、リピートコマンドブロックは
/give @p minecraft:repeating_command_blockで入手します。 -
2.の装置のリピートコマンドブロックに
/scoreboard players add #dummy test 1と入力します。 -
からくり動力機会を動かして、2つのレッドストーンコンタクトを通過する時間を測定します。
-
/scoreboard players get #dummy testと入力して結果を得ます。 -
実際にマスターコンピューターに設定する際は5.で得られた結果を20で割って設定します。
- エレベーターが動いている時にエレベーターがあるチャンクがアンロードされる、ゲームを終了する等でプログラムが停止しないようにして下さい。再ロード時にシステムのエレベーターの位置と実際のエレベーターの位置に差異が出ます。
- エレベーターの位置に差異が出た場合は、一度エレベーターを最下階又は最上階に移動させて下さい。
- このエレベーターシステムはシングルプレイ又は少人数プレイ向けのものであり、現実のエレベーターシステムと比べて簡易的なものになっています(行き先予約機能がありません)。大人数プレイ(エレベーターの利用頻度が高い)には向いていません。


