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
このフロアコンピューターがある階数。同じエレベーターシステム内の他のフロアコンピューターとの重複は許されません。 number
1 roofFloor
最上階を屋上表示「R」とするかどうか boolean
true 項目 説明 有効な型 初期値 clutchFace
クラッチを制御する為にレッドストーン信号を出力するコンピューターの面 string
(top
・front
・left
・back
・right
・bottom
)"left" gearShiftFace
ギアシフトを制御する為にレッドストーン信号を出力するコンピューターの面 string
(top
・front
・left
・back
・right
・bottom
)"right" minFloor
このエレベーターシステムの最下階のフロア number
1 maxFloor
このエレベーターシステムの最上階のフロア number
10 timeBetweenFloors
エレベーターが1階層分移動するのに要する時間(参考までに、ローププーリーが64RPMで6m移動するのに要する時間は2.4です、移動時間の測定にはこちらを参考にして下さい。) number
2.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で割って設定します。
- エレベーターが動いている時にエレベーターがあるチャンクがアンロードされる、ゲームを終了する等でプログラムが停止しないようにして下さい。再ロード時にシステムのエレベーターの位置と実際のエレベーターの位置に差異が出ます。
- エレベーターの位置に差異が出た場合は、一度エレベーターを最下階又は最上階に移動させて下さい。
- このエレベーターシステムはシングルプレイ又は少人数プレイ向けのものであり、現実のエレベーターシステムと比べて簡易的なものになっています(行き先予約機能がありません)。大人数プレイ(エレベーターの利用頻度が高い)には向いていません。