Mesa Mineshaft
Mesa Mineshaft is a structure generator added by Et Futurum Requiem that causes mineshafts to spawn in Mesa biomes with Mesa-specific wood types and aesthetics, while leaving normal mineshaft generation in other biomes untouched.
Design Philosophy
Et Futurum Requiem explicitly avoids using mixins for this feature. Instead of overriding the standard MapGenMineshaft, a separate MapGenMesaMineshaft class is registered in the world generator, allowing both standard and Mesa mineshafts to coexist.
Spawn Conditions
| Condition | Value |
|---|---|
| Biome Type | MESA (via BiomeDictionary.Type.MESA) |
| Fallback | Standard MapGenMineshaftStart for non-Mesa biomes |
The spawn check uses BiomeDictionary.getTypesForBiome() to determine if the biome at the current chunk coordinates has the MESA type. If so, it spawns a StructureMesaMineshaftStart; otherwise, it delegates to the vanilla StructureMineshaftStart.
Components
The Mesa mineshaft system consists of two classes:
StructureMesaMineshaftStart— the start piece for Mesa-specific mineshaft generationStructureMesaMineshaftPieces— component pieces defining the corridor segments, crossings, and stairs specific to Mesa mineshafts
These extend or parallel the vanilla StructureMineshaftStart and StructureMineshaftPieces classes but use Mesa-appropriate wood types (typically acacia logs/planks as the support beams and rails).
Generation
MapGenMesaMineshaft overrides getStructureStart(int chunkX, int chunkZ) to intercept the chunk coordinates before passing them to the appropriate start class. The underlying world generation system then handles corridor placement, random direction selection, and depth variation through the standard mineshaft algorithm.
Configuration
⚠️ 已订正 —— 原文称「没有专用开关,始终生效」是错的。 存在专用开关
ConfigWorld.enableMesaMineshaft,配置键enableMesaMineshaft, 默认开启(ON)。证据 —
configuration/configs/ConfigWorld.java:176:enableMesaMineshaft = getBoolean("enableMesaMineshaft", catGeneration, true, "Generates extra mineshafts in mesa biomes up to y80. If fences are enabled, dark oak wood is used.");该类并非在
EtFuturumWorldGenerator中直接 new 出来的,而是挂在WorldEventHandler.java:102的InitMapGenEvent(EventType.MINESHAFT)回调里, 由if (ConfigWorld.enableMesaMineshaft)守卫 —— 这就是原文没找到开关的原因: 它不在世界生成器文件里,而在事件处理器里。
补充:配置说明明确「up to y80」,且提示若启用栅栏则使用深色橡木。
MapGenMesaMineshaft 的起点 Y 由 StructureMesaMineshaftStart 的包围盒计算得出
(源码中以 y=63 为基准做偏移),与配置文案「y80」属同一量级但不逐字相同。