Cubic Vanilla 装饰器

基本信息

属性 值
入口类 com.cardinalstar.cubicchunks.world.worldgen.WorldGenerators
初始化调用点 CubicChunks.preInit → WorldGenerators.init()(CubicChunks.java:157)
内建装饰器 BuiltinWorldDecorators.VANILLA、BuiltinWorldDecorators.CUBIC_VANILLA
实现接口 WorldgenRegistry、IWorldDecorator
地形依赖图 terrain() → IDependencyGraph<ICubeGenerator>
群系依赖图 population() → IDependencyGraph<ICubePopulator>

功能

世界生成由"装饰器(decorator)"驱动。StandardWorldDecorator(api/worldgen/impl/StandardWorldDecorator.java:14)同时实现 WorldgenRegistry 与 IWorldDecorator,把生成拆成两个带依赖图的注册表(terrain() / population(),:21,26)和四个执行阶段:pregenerate(:31)、generate(:38)、prepopulate(:45)、populate(:52)。

WorldGenerators.init()(world/worldgen/WorldGenerators.java:23-30)依次做三件事:

  1. initVanillaTerrain()
  2. initVanillaPopulation()
  3. 仅当 Mods.EtFuturumRequiem.isModLoaded() 时执行 initEFRPopulation()(:27-29)

本移植实际注册的内容(存活)

initVanillaTerrain()(:32-53)中唯一未注释的语句是:

CUBIC_VANILLA.terrain()
    .addTarget("caves-all");

即向 CUBIC_VANILLA 的地形依赖图添加一个名为 caves-all 的目标组(WorldGenerators.java:39-40)。initVanillaPopulation()(:55-57)的方法体整体被注释,不注册任何群系填充器。

可选:Et Futurum Requiem 深板岩

initEFRPopulation() 带 @Optional.Method(modid = Mods.ModIDs.ET_FUTURUM_REQUIEM)(:59),向群系依赖图注册 "low-deepslate" → new DeepslateCubePopulator()(:61-62),实现类为 world/worldgen/compat/DeepslateCubePopulator.java:19(implements ICubePopulator)。其 "requires:biomes" 依赖同样被注释掉了(:62 的行内注释)。

数值

数值名 值 来源
存活的地形目标组 1 个:caves-all WorldGenerators.java:40
存活的群系填充器 1 个:low-deepslate(仅 EFR 存在时) WorldGenerators.java:62
洞穴选择噪声倍频数 2(new OctavesSampler(rng, 2)) WorldGenerators.java:71
洞穴选择噪声缩放 0.01(CHOOSER_SCALE) WorldGenerators.java:65,71

交互

触发 行为
模组 preInit 注册 CUBIC_VANILLA 装饰器内容并建立噪声采样线程池
玩家创建 Vanilla + Cubic 世界 每个立方体依次走 pregenerate → generate → prepopulate → populate
装有 Et Futurum Requiem 额外在低处生成深板岩(low-deepslate)
未装 EFR 跳过深板岩填充,方法被 @Optional.Method 剥离

相关条目