思いっきり Java 版限定の話です。

 

自分なりにピストンの仕様について整理してみた記事になります。

 

回路づくりの能力をもっと磨いていくには、Java 版のピストンの仕様について理解を深めておく必要がある、と前々から思っていました。

そこで、クリエイティヴワールドであれこれいじってみたので、自分なりの整理をしておきます。

※ 間違い等あれば、ご指摘いただけると助かります。

 

もともとは、一種のバグ挙動だったのですが、公式に「仕様」に昇格した挙動があります。

Java のピストンには、このバグっぽい挙動があるために、回路が統合版と大きく異なります。

Java 版のピストンは、面白くはあるけども、そこそこ厄介なんですよ。

 

ま、下を見てもらうのが手っ取り早いでしょうか。

左側のピストンは、普通の接続ですね。

しかし、中央のピストンは、レッドストーンブロックが宙に浮いて、ピストンと接しておらず、

一見すると、ピストンに動力が送られていない状態ですが、ピストンヘッドが伸びたままになっています。

さらに、右側のピストンは、真ん中の状態から、レッドストーンを取り除きました。

それでもピストンヘッドが伸びたままです。

 

これが、Java のピストンのバグっぽい挙動(でも、公式仕様です)。

準接続あるいはBUDと呼ばれているものです。

動力が直接つながっていないのに、ピストンが伸びることから、「準接続」という名前に納得できるので、私は「準接続」と呼ぶことにしています。

 

準接続が起きる条件ですが、ふたつあります。

 

1.ピストンの以下の範囲(赤ガラス)に、レッドストーン信号を受けたブロック or 動力を与えるブロックが存在すること

 

かつ、

 

2.以下の範囲(黄色ガラスの範囲)で、ブロック情報が更新されること(ブロックアップデート)

 

1と2を両方満たすときに、ピストンは、動力を直接受けずとも伸びるようです。

こんな風になっていると思います。

 

逆に、準接続で伸びたピストンを戻す場合は…

赤ガラスの範囲に、動力を受けたブロックなどが置かれていない状態にして、

黄ガラスの範囲に、ブロックアップデートを起こす必要があります。

 

ややこしい。

 

例えばですが…

準接続で伸びたピストンの横に置かれたリピーターの遅延を増やすだけで、ピストンは引っ込みます。

もちろん、ふつうにブロックを置くだけでも、ピストンは反応します。

 

※※※

 

この仕様のため、Java のピストンは、場合によっては2個同時に動かしやすかったりしますよね。

上のSSでは、下のピストンは動力を受けていませんが、伸びています。

 

仕様を把握するため、他にも、ちょっと作ってみたものがあるので貼っておきます。

 

こんな風にすることで、ピストンのクロック回路を作ることもできます

レバーをオフにすると、ピストンが延々と伸び縮みを繰り返します。

オブザーバーはブロックアップデートを起こすのに便利な素材ですね。

 

下の装置は、レバーのオンオフで上下のピストンが交互に動きます。

準接続の条件を意識して作ってみました。

 

こういったピストンの仕様まで意識して回路作れるようになれば、脱初心者と言えるでしょうかね…

 

ではでは、今回はこんなところで。