52 种结构:18 种是废弃营地,23 种完全不适配地形
要塞可在 56 个生物群系中生成,而除平原村庄外,每种村庄变体都只出现在一个生物群系。52 种结构中有 44 种在地表结构阶段生成,29 种会适应脚下的地面——其余 23 种按原样放置,这正是沙漠神殿半埋在地里的原因。
Minecraft 共有 52 种结构,而这份清单比听起来要杂乱得多:其中 18 种是废弃营地,7 种是废弃传送门变体,5 种是村庄,所以这“52”里有一大半其实是三个点子套上了不同的生物群系标签。数据统计自 Mojang 为 26.3 发布的结构文件,与本页参考所呈现的数据一致。
几乎所有结构都在地表阶段生成
| 生成阶段 | 结构 |
|---|---|
surface_structures | 44 |
underground_structures | 5 |
underground_decoration | 3 |
生成阶段决定顺序,而顺序决定两个结构重叠时谁胜出。52 种里有 44 种处于同一阶段,因此大多数冲突是在 surface_structures 内部解决的,而不是在阶段之间——这就是为什么村庄和废弃传送门可能合并在一起,而远古城市和村庄却从不起争执。
生物群系分布是数据中跨度最大的一项
| 结构 | 可生成的生物群系 |
|---|---|
stronghold | 56 |
trial_chambers | 55 |
mineshaft | 52 |
ruined_portal | 25 |
| … | |
village_desert、village_savanna、village_snowy、village_taiga | 各 1 个 |
有 27 种结构被锁定在单一生物群系中:18 种废弃营地(每个生物群系族各一个)、4 种非平原村庄、ancient_city、desert_pyramid、nether_fossil、ruined_portal_desert 和 swamp_hut。village_plains 则占两个。
对比本身就是重点。要塞、试炼密室和废弃矿井实际上是“随处可生成”的结构——它们按距离规则放置,而非按生物群系——而每一种村庄变体都是一个生物群系标签加上一套建筑。这就是为什么村庄风格与生物群系完全对应,而要塞的位置却显得随机。
52 种中有 29 种会适应地形
terrain_adaptation 决定结构是否会重塑它落地的地面:
- 23 种没有此项。 它们按原样放置,世界不会为它们改动。
beard_thin25 ·bury2 ·beard_box1 ·encapsulate1
所以有 23 种结构——大多是较老的那些——对地形不做任何处理——这正是半埋在沙里的沙漠神殿和悬在崖边的沉船的直接成因。这些不是 bug;它们就是“无适应”的含义。
会适应的那些,则是若不适应就根本无法使用的——每种村庄和每种废弃营地都用 beard_thin 贴合地面,ancient_city 用 beard_box 在深暗之域中把地板削平,而埋在地下的那些则用 bury。
28 种是拼图结构
jigsaw 28 · ruined_portal 7 · mineshaft 2 · ocean_ruin 2 · shipwreck 2 · 然后是十一种一次性类型。
拼图(jigsaw)是部件组装系统——村庄、堡垒遗迹、古迹废墟、远古城市、试炼密室和废弃营地都是由一组模板池搭建而成,而不是作为一个固定模型放置的。如果你在制作自定义结构,并希望它在不同实例间有所变化,原版正是为此使用拼图。其余的要么在代码中由部件组装——林地府邸、下界要塞、要塞、废弃矿井、末地城、海底神殿——要么在几个固定模板中挑选。
从数据包的角度来解读
- 选择与你预期的碰撞效果相匹配的生成阶段。 任何处于
surface_structures的结构都要与另外 43 种竞争。 - 只在需要时才设置地形适应。 原版在 52 种中有 23 种未设置——大多是较老的结构;每种村庄和废弃营地都会设置
beard_thin。 - 生物群系列表是大多数结构的放置控制手段。 单一生物群系列表正是村庄变体无需任何额外逻辑就能留在各自生物群系中的方式。