TMC Portal
用語解説

ブロックアップデート

BlockUpdate

別名: BU / NU / SU / NeighborUpdate / ShapeUpdate / ブロック更新 / 形状変化

目次

ブロックが設置されたり破壊された際にはその周辺にブロックの更新が行われる
これを通称「ブロックアップデート」と呼び、以下の4つに大別される

  • ブロック更新(NeighborUpdate)
  • 形状更新(ShapeUpdate)
  • コンパレータ更新
  • 配置/除去フック

それぞれのブロックアップデートにはフラグが設定されておりビットで管理される

ビット値 名称 意味
1 UPDATE_NEIGHBORS ブロックの周囲6面に対してブロック更新を行う
2 UPDATE_CLIENTS クライアントに送信する
4 UPDATE_INVISIBLE クライアントでレンダリングの更新を行わない
8 UPDATE_IMMEDIATE クライアントで即座に再描画する
16 UPDATE_KNOWN_SHAPE 形状更新を行わない
32 UPDATE_SUPPRESS_DROPS ドロップを出さない
64 UPDATE_MOVE_BY_PISTON ピストンによる移動
128 UPDATE_SKIP_SHAPE_UPDATE_ON_WIRE レッドストーンへの形状更新をスキップする
256 UPDATE_SKIP_BLOCK_ENTITY_SIDEEFFECTS ブロックエンティティの中身のドロップなどをスキップする
512 UPDATE_SKIP_ON_PLACE onPlaceを呼ばない

更新順序#

ブロック更新と形状更新で順序が違う

ブロック更新#

西->東->下->上->北->南

形状更新#

西->東->北->南->下->上

更新連鎖(Update Chain)の展開#

実質的に、いわゆる深さ優先探索というものになっている。(1.15+)

例えば UPDATE_NEIGHBORS を行った際に、西側と東側に連鎖する更新がある場合は先に西に更新が送られる
このとき、西側の周囲6面にも連鎖する更新があった場合はその更新を行い、そこから波及する更新もすべて追い切った後に東側の更新を行う

更新連鎖の回数の上限は、ブロック更新の場合は max-chained-neighbor-updates で決まっておりデフォルトは 1000000 、それ以上はログを出してからスキップされる
形状更新の連鎖の場合は updateLimit で決まり、デフォルトは512。こちらも超えるとスキップされる

準接続(QC)の仕組み#

ピストンやドロッパー/ディスペンサーは自分の周囲6面と上1マスの周囲6マスの信号を見に行く
しかしこれはブロック更新を受け取ったときにチェックするため、ブロック更新を与えずに信号を設置した場合に「ブロック更新を受け取った時に動き出す」状態を作り出すことができる
これを「準接続(QC,Quasi-Connectivity)」という

ブロック更新と形状更新#

更新ごとの反応するブロック#

ブロック更新に反応するブロック

  • ピストン、ドロッパー、ディスペンサーなど
  • リピータ、コンパレータなど

形状更新にのみ反応するブロック

  • 砂や砂利などの落下するブロック
  • 草・花・苗など
  • オブザーバー(向いてる面から来た更新のみ)

コンパレータ更新に反応するブロック

  • コンパレータ(コンテナの中身)
投稿者 あすたん🍃 / 最終更新: 2026-09-21