マイクラにパイプを導入するプラグイン
普通のパイプ
金のパイプ(Golden Pipe)
抽出パイプ(Extraction Pipe, 吸い出しパイプ)
色のついたパイプ
パイプでかまどに物を入れることができる
クラフトパイプ
オフィシャル解説はこちら
Direct設定とはなんなのか
nishio: ええー、パイプの中を流れるアイテムがパイプの分岐に来た時に別れるかどうか、チェストから吸い出した時の吸い出しパイプの属性で決まるの〜?マジか〜
nishio: いやー、これオプションによっては「来た方向以外のパイプのうち0番目のものに全部送る」になって、その0番目とは方位を表すenumの順番で決まるからパイプの向きによって挙動変わるんじゃないの??
nishio: はい正解、左の配置ではアイテムが直進して松明の側のチェストに入り、右の配置ではアイテムは右折し松明の付いたチェストに入る。東西方向のパイプが南北方向のパイプより優先されるからである。
nishio: これを踏まえると自動仕分けチェストはなんとこれだけで実現できる。画面前後方向が東西なので優先され、左のチェストから順に「そのチェストに入るなら入れる、無理なら右のパイプへ」という振る舞いをする。
なお上下が一番優先度低いので縦に積むなら四方の向きは自由になる。
Javaがわかる人向け解説
if (pipeItem.getExtractMode() == ExtractMode.DIRECT) {
splitMap.put(weightsDirectionList.get(0), item.getAmount());
}
else {
protected Map<TPDirection, Integer> calculateItemDistribution(PipeItem pipeItem, TPDirection movingDir, List<TPDirection> dirs, TransportPipes transportPipes) {
Map<TPDirection, Integer> absWeights = new HashMap<>();
dirs.stream().filter(dir -> !dir.equals(movingDir.getOpposite())).forEach(dir -> absWeights.put(dir, 1));
return itemDistributor.splitPipeItem(pipeItem, absWeights, this);
}
public enum TPDirection {
EAST(1, 0, 0, BlockFace.EAST, LangConf.Key.DIRECTIONS_EAST.get()),
WEST(-1, 0, 0, BlockFace.WEST, LangConf.Key.DIRECTIONS_WEST.get()),
SOUTH(0, 0, 1, BlockFace.SOUTH, LangConf.Key.DIRECTIONS_SOUTH.get()),
NORTH(0, 0, -1, BlockFace.NORTH, LangConf.Key.DIRECTIONS_NORTH.get()),
UP(0, 1, 0, BlockFace.UP, LangConf.Key.DIRECTIONS_UP.get()),
DOWN(0, -1, 0, BlockFace.DOWN, LangConf.Key.DIRECTIONS_DOWN.get());