思いっきり Java 版限定の話です。
自分なりにピストンの仕様について整理してみた記事になります。
回路づくりの能力をもっと磨いていくには、Java 版のピストンの仕様について理解を深めておく必要がある、と前々から思っていました。
そこで、クリエイティヴワールドであれこれいじってみたので、自分なりの整理をしておきます。
※ 間違い等あれば、ご指摘いただけると助かります。
もともとは、一種のバグ挙動だったのですが、公式に「仕様」に昇格した挙動があります。
Java のピストンには、このバグっぽい挙動があるために、回路が統合版と大きく異なります。
Java 版のピストンは、面白くはあるけども、そこそこ厄介なんですよ。
ま、下を見てもらうのが手っ取り早いでしょうか。
左側のピストンは、普通の接続ですね。
しかし、中央のピストンは、レッドストーンブロックが宙に浮いて、ピストンと接しておらず、
一見すると、ピストンに動力が送られていない状態ですが、ピストンヘッドが伸びたままになっています。
さらに、右側のピストンは、真ん中の状態から、レッドストーンを取り除きました。
それでもピストンヘッドが伸びたままです。
これが、Java のピストンのバグっぽい挙動(でも、公式仕様です)。
「準接続」あるいは「BUD」と呼ばれているものです。
動力が直接つながっていないのに、ピストンが伸びることから、「準接続」という名前に納得できるので、私は「準接続」と呼ぶことにしています。
準接続が起きる条件ですが、ふたつあります。
1.ピストンの以下の範囲(赤ガラス)に、レッドストーン信号を受けたブロック or 動力を与えるブロックが存在すること
かつ、
2.以下の範囲(黄色ガラスの範囲)で、ブロック情報が更新されること(ブロックアップデート)
1と2を両方満たすときに、ピストンは、動力を直接受けずとも伸びるようです。
こんな風になっていると思います。
逆に、準接続で伸びたピストンを戻す場合は…
赤ガラスの範囲に、動力を受けたブロックなどが置かれていない状態にして、
黄ガラスの範囲に、ブロックアップデートを起こす必要があります。
ややこしい。
例えばですが…
準接続で伸びたピストンの横に置かれたリピーターの遅延を増やすだけで、ピストンは引っ込みます。
もちろん、ふつうにブロックを置くだけでも、ピストンは反応します。
※※※
この仕様のため、Java のピストンは、場合によっては2個同時に動かしやすかったりしますよね。
上のSSでは、下のピストンは動力を受けていませんが、伸びています。
仕様を把握するため、他にも、ちょっと作ってみたものがあるので貼っておきます。
こんな風にすることで、ピストンのクロック回路を作ることもできます
レバーをオフにすると、ピストンが延々と伸び縮みを繰り返します。
オブザーバーはブロックアップデートを起こすのに便利な素材ですね。
下の装置は、レバーのオンオフで上下のピストンが交互に動きます。
準接続の条件を意識して作ってみました。
こういったピストンの仕様まで意識して回路作れるようになれば、脱初心者と言えるでしょうかね…
ではでは、今回はこんなところで。