概要
マインクラフトでは、条件分岐でブロックの性質を利用していることが多い。 よく使われているブロックの性質をまとめておけば、ソースを読んだりゲームに応用したりするときに便利なのでこのページにまとめます。 ここに掲載している性質はごく一部ですが、あったら便利だと思ったものを掲載しています。
ブロックの性質と使用される場面
Material
ブロックの性質をいくつか束ねたようなもの。それぞれの Material に設定されている性質は Materials(英語版) を参照。
isFullBlock()
- MOBの徘徊AI、他MOB回避AIで移動先の抽選対象となるブロック
isFullCube()
- 描画関連の条件分岐で使われている
- エンダーマンがブロックを置く土台となるブロック
isFullyOpaque()
上面が平らかどうかの判断に使われていることが多い。
- ゴーレムのスポーンする床として適切なブロック
- オウム徘徊AIの目標地点の抽選対象ブロック
- 寝ていたプレイヤーがベッドから降りる時の床として適切なブロック
- 近くに燃えるブロックが無くとも上面に着火可能なブロック
- 液体の下にあるとき、下面に液体の垂れるパーティクルが表示されるブロック
- カボチャ類、レール類、花瓶、ドアを設置可能なブロック
- 敵性MOBがスポーンする床は、これから岩盤とバリアブロックを除いたものである
isNormalCube()
- トロッコが反発するブロック
- チェストが開くのを妨害するブロック
- コウモリが捕まるブロック
- ドア設置で蝶番の位置を決定する4つのブロック
- ゴーレムのスポーンする空間として不適切なブロック
- MOB自然スポーンの一次抽選対象として不適切なブロック
- 水棲MOBのスポーンの二次抽選で、1つ上の位置でスポーンを阻害するブロック
causesSuffocation()
- MOBを窒息させるブロック
getLightOpacity()
- 光の不透過度
- 不透過度が0のブロックはHeightMapの更新で無視される