Abyssal Stone Structure

基本信息

属性 值
结构类型 晶洞(Geode)
生成器 WorldGenGeode
生成条件 海洋生物群系
生成高度 海底最小深度 16 格

生成条件

public boolean canGen(World world, Random rand, BlockPos pos, Biome biome) {
    return BiomeDictionary.hasType(biome, BiomeDictionary.Type.OCEAN)
        && rand.nextDouble() <= ModuleWorld.config.geodeChance;
}

触发条件

  • 生物群系:必须为 OCEAN 类型
  • 海底深度:至少 16 格深的水
  • 海底高度:至少 24 格(MIN_FLOOR)
  • 随机几率:由 ModuleWorld.config.geodeChance 控制

结构特征

WorldGenGeode

晶洞结构使用 WorldGenGeode 生成器,使用 RailcraftBlocks.ABYSSAL_STONE 作为外壳方块:

public WorldGenGeode(IBlockState geodeStone) {
    this.geodeStone = geodeStone;
}

生成参数

参数 值
外壳半径 8 格(DISTANCE_OUTER_SQ = 8*8)
矿石半径 5 格(DISTANCE_ORE_SQ = 5*5)
内部半径 4 格(DISTANCE_INNER_SQ = 4*4)

生成流程

  1. 扫描海底地形(scanOceanFloor)
  2. 计算海底深度和 floor 高度
  3. 在满足 MIN_DEPTH 和 MIN_FLOOR 条件时生成
  4. 高度偏差 = MIN_Y + GaussianRandom * (floorY - MIN_Y) * 0.5

矿石填充

Geode 内部填充 RailcraftBlocks.ORE(枚举为 ABYSSAL_STONE 对应的矿石变种)。

源码依据

  • GeneratorGeode.java - 晶洞生成器
  • WorldGenGeode.java - 晶洞世界生成器
  • RailcraftBlocks.java - 方块定义