terra-khan.hatenablog.jp
Minecraftの「炎」の扱いは、実に面倒くさい。
古参クラフターならわかるだろう、「ただ暖炉が欲しくて…」
「ニコニコ大百科」の項目にもされるほどの、古参クラフターあるある、かつ折角苦労して建築した家屋が不注意で灰燼に帰すカタルシスが、やたら受けたのだ。
Versionが進んだ今は、火事を起こさない「焚き火」というアイテム(ブロック)がある。
ja.minecraft.wiki
が、前述のリスクを冒してまで、やはり「暖炉」を造りたい! それが古参クラフターの矜持なのである。
おさらい
とはいえ、過去の愚行の二の舞を演じるのはご免被りたい。当然、「炎」の挙動を把握するのが最優先である。というか、先人はいるのだ。
他は知らないが、Java Editionに関して言えば、この法則に変更はない。
定義変更
まず、現実世界とMinecraftの世界の法則は異なるものだと再認識しなければならない。
と、わざとらしい言い回しをしたが、うっかりすると現実世界の摂理で考えたくなるのである。しかし、もうわかってるだろう? 現実の世界に"無限水源"なるものは存在しない。
前置きはこのくらいにして。先人の言う通り、Minecraftの世界において、「炎」は"燃え移る"のではない。そもそも、「炎」は「炎ブロック」なのだ。
Minecraftの世界は全て"ブロック"と"エンティティ"でできている。いうなれば、ピッケルで石を掘削して丸石を得たのは、"石を空気ブロックに置き換え、丸石をアイテム化した"なのだ。なので、Minecraftの世界では"炎"さえ「炎ブロック」なのだ。
延焼とは
で、端的に言えば、「炎ブロック」とは「一定の区域の"空気ブロック"を"炎ブロック"に置換する」ブロック、なのである。
その"一定の区域"とは、「炎ブロック」を起点としての前後左右+1の3×3かつY軸(上下方向)-2から6の高さ9、3times;3×9の空間。そこのどこに隙間のような空気ブロックがあっても、たとえ火種と着火点にどんなブロック障壁があっても、その空間に"空気ブロック"があれば、そこに着火するのである。
そしてもう一つの条件。これまでも"空気ブロック"を強調してきたが、その通り、"空気ブロック"以外に何かのブロックがあったら、そこに"炎ブロック"は"置換できない"。Minecraftにおいては、どこまでいっても世界は"ブロックの交換"なので、"空気ブロック"を"炎ブロック"に置換できるが、それ以外の"ブロック"が占有している空間に"炎ブロック"は置換できないのである。
その「炎ブロック」の置換可能範囲は既に明らかになっている。

先に上記の"オレンジのガラス"の範囲がブロックで占有されていれば、「炎ブロック」が置換される隙もないのである。
もう一つ条件がある。置換候補となる"空気ブロック"に隣接して”着火性のブロック"が存在すること。着火先の"炎ブロック"候補に接するブロックが"空気ブロック"では炎足りえない。というか、それを許容したら空気ブロックがすべて炎になってしまう。そんなわけない。

左は3times;3×9のてっぺんが丸石になっている。丸石は"炎ブロック"に置換できないので、丸石の上の木材に着火することはない。
右は「炎ブロック」から2ブロック離れていても、そこ周辺は全て"空気ブロック"で、「炎ブロック」に置換されるので着火する。


鉄格子で囲う。しかし見た目のような"火の広がりを防ぐ"ではない。このMinecraft世界では"「炎ブロック」に置換されうる「空気ブロック」を「鉄格子ブロック」で予め置換した"なのである。

「オレンジガラスブロック」の空間を「鉄格子ブロックその他で"空間を埋め立てました"」なのだ。