マイクラで使用機会の多いホッパー。
今更ですが、吸い込み、吐き出しの仕組みと、仕分け装置がオーバーフローしてしまう原因を解説します。
ホッパーの吸い込み
ホッパーはブロック上面からアイテムを吸い込みます。
吸い込むスピードは、インベントリを持つブロック(チェストやタル、シュルカーボックスなど)から吸い込むときは約4rs_tickにつき1個。
エンティティとしてのアイテムを吸い込む場合はスピード制限なく一斉に吸い込みます。
レッドストーンティック
マイクラにはゲームティックとレッドストーンティックがある。
ゲームティックは20tick=1秒。
レッドストーンティックは10tick=1秒。
ホッパーの吐き出し
ホッパーはブロック下部の吐き出し口から、吐き出し口が接するインベントリを持つブロックへアイテムを吐き出します。
吐き出すスピードは約4rs_tickにつき1個。
ホッパーは吸い込み優先
図のような配置でAにアイテムが1個あるとき、ホッパーの機能としてはBの吸い込みとCへの吐き出しが有効です。
ただし、同時に機能した場合は吸い込みが優先されるためアイテムはBへ移動します。
ホッパーを重ねると効果が重複する
ホッパーを図のように縦に並べた時、AからBへのアイテムの移動はAからの吐き出しとBの吸い込みが同時に機能するためアイテムの移動スピードは2倍になります。
※重なっている部分のみ効果が重複する為AからBへは2倍速で移動するが、図のチェストへのアイテム移動スピードは変わらない。
アイテム仕分け装置がオーバーフローする理由
図のようなオーソドックスなアイテム仕分け装置を運用する場合、ちょっとした構造の違いでオーバーフローを起こすことがあります。
オーバーフローの主な原因は仕分け対象のホッパーに複数個のアイテムが流れてきてしまうことで、以下のような構造で起こりやすくなります。
ホッパー縦積み
ホッパーを重ねると、吸い込みと吐き出しの効果が重複してアイテムの移動が2倍になることは前述のとおりです。
そして、仕分け対象のホッパーは仕分け対象のアイテムなら吸い込み、対象外なら吐き出しされますが、アイテムが2個流入してくると吸い込み速度が間に合わずにオーバーフローします。
オーバーフローの例
赤い点線が仕分け対象のホッパー。上のホッパーにアイテムが複数入っている場合、赤い点線のホッパーへは2個同時に流れ込む可能性があり、オーバーフローする。
オーバーフローを防止するためには
・アイテムの起点をチェストなどのインベントリを持つブロックにする
(ホッパーでの吸い出しが1個ずつになる)
・縦積みの際は吐き出し口を横に向けて効果を重複させない
・縦積みホッパーの下には仕分け装置を置かない
といった対策が考えられます。
シミュ距離による分断
ホッパー列をチャンクを跨いで設置すると、シミュレーション距離の内外に分かれた時にホッパー内のアイテム移動が止まります。
これが仕分け装置の一部で起きた場合に、仕分け対象のホッパーに複数のアイテムが溜まってオーバーフローしてしまう原因になります。
オーバーフローの例
黄色の点線を境にシミュ距離の内外に装置が跨った場合、赤い点線のホッパーにアイテムが溜まり、シミュ距離内に復帰したときにオーバーフローする。
防止するためには
・ホッパー移動でチャンクを跨がない
・チャンクを跨ぐ場合は移動先のチャンク1ブロック目に仕分け装置を置かない
といった対策が有効です。