深渊世界(Underworld)

基本信息

属性 值
维度 ID 10(UnderWorldConfig.java:20)
Provider 类型 ID 10(与维度 ID 相同,ModDimensions 三参构造转发)
入口方块 utilitiesinexcess:underworld_portal(传送门)
配置类 UnderWorldConfig(category dimensions.under_world)
开关 enableUnderWorld(默认 true)
keepLoaded false(ModDimensions 五参构造固定传 false)

功能

深渊世界是本模组的第一个自定义维度,通过冥界之门进入。它实现了完整的维度基建:世界提供器、区块提供器、区块管理器、生物群系、地形装饰与水源。

其生物群系是深红色调的敌对生物群系(BiomeGenUnderWorld),配套 BiomeDecoratorUnderWorld 做地表装饰与 WorldGenBoulders 生成巨石。

维度的水源通过 Forge 的 WorldGeneratorSettings / 水注册机制注入(见 UnderWorldSourceProperty),这是 GTNH 1.7.10 维度自定义水源的标准做法。

数值

配置项 默认值 说明
enableUnderWorld true 维度总开关(UnderWorldConfig.java:16)
underWorldDimensionId 10 维度 ID(UnderWorldConfig.java:21)
enableUnderWorldBiome true 群系开关(UnderWorldConfig.java:27)
underWorldBiomeId 50 群系 ID(UnderWorldConfig.java:33)
defaultBiomeId 50 默认群系 ID(UnderWorldConfig.java:39)
spawnVanillaOre 见配置 是否生成原版矿物(UnderWorldConfig.java:45)
spawnCustomOre 见配置 是否生成本模组自定义矿物(UnderWorldConfig.java:51)
enableDifficulty 见配置 是否启用难度系统(UnderWorldConfig.java:56)

UnderWorldConfig 共 8 个字段(1 个总开关 + 3 个 ID + 1 个群系开关 + 3 个玩法开关),全文 1776 字节。它的三个玩法开关 spawnVanillaOre / spawnCustomOre / enableDifficulty 的默认值本条目未逐一抄录(未核实)。与同维度的终末之时相比,深渊世界额外提供了矿物生成与难度系统两项可配置项——终末之时则有"是否下雨"与"是否自然刷怪"两项。

深渊世界的维度 ID / 群系 ID 之外没有可调数值参数(无速率、容量、伤害类的数值字段)。

交互

机制 实现类
世界提供器 common/dimensions/underworld/WorldProviderUnderWorld.java
区块提供器 common/dimensions/underworld/ChunkProviderUnderWorld.java
生物群系 common/dimensions/underworld/BiomeGenUnderWorld.java
群系装饰器 common/dimensions/underworld/BiomeDecoratorUnderWorld.java
地形生成(巨石) common/dimensions/underworld/WorldGenBoulders.java
事件处理 common/dimensions/underworld/UnderWorldEvents.java
水源注册 common/dimensions/underworld/UnderWorldSourceProperty.java
传送处理 common/dimensions/UIETeleporter.java(两维度共用)
区块管理器 common/dimensions/UIEWorldChunkManager.java(两维度共用)

群系注册的已知不对称

ModBiomes 枚举构造时确实实例化了 BiomeGenUnderWorld / BiomeGenEndOfTime 对象(ModBiomes.java:30-33),但 ModBiomes.init() 是空方法(ModBiomes.java:38-40),且 ModBiomes.getBiome() 的调用点经全仓 grep 仅出现在其自身定义处——即该 getter 从未被调用,生物群系没有通过 BiomeManager.addBiome 注册。

因此两个维度的群系只能通过各自 ChunkProvider / WorldProvider 内部的路径生效,而非 Forge 标准的群系注册表。本仓中没有注释、测试或提交信息能确定这是刻意设计还是遗漏,故仅陈述可核实的调用关系。

事件处理中的异常吞噬

UnderWorldEvents.java:246 有一个 catch (Exception exception) { exception.printStackTrace(); continue; }——它会把异常打到 printStackTrace 而非日志系统,然后继续循环。这是本模组中唯一一处未完全静默但也未走日志的异常处理;与之对比,VillagerSyncHandler.java:253 有一处 catch (Throwable e) { return false; } 是完全静默的(见兼容模组)。

合成配方

无——维度本身没有合成配方。入口方块的配方见 传送门。

相关条目