Firestone Geode Structure

基本信息

属性 值
结构类型 矿石生成(Ore Geode)
生成维度 下界(NETHER)
生成位置 Y = 31 附近
生成器 WorldGenFirestone

生成条件

public boolean canGen(World world, Random rand, BlockPos targetPos, Biome biome) {
    return BiomeDictionary.hasType(biome, BiomeDictionary.Type.NETHER)
        && TerrainGen.generateOre(...)
        && rand.nextDouble() <= 0.1;  // 10% 几率
}

触发条件

  • 维度:必须是下界(NETHER)
  • 生物群系:标记为 NETHER 类型
  • 地形生成:通过 TerrainGen.generateOre 校验
  • 随机几率:10%(0.1)

生成逻辑

WorldGenFirestone

public boolean generate(World world, Random rand, BlockPos position) {
    // 必须在熔岩池中生成
    for (int yy = y; yy > y - 6; yy--) {
        if (block != Blocks.LAVA && block != Blocks.FLOWING_LAVA)
            return false;
    }
    // 向下寻找可替换的石头位置
    // 在 netherrack 上生成 firestone
}

生成规则

  1. 在 Y=31 高度生成
  2. 目标位置以下 6 格范围内必须有熔岩
  3. 熔岩池底部必须是可替换的石头(netherrack)
  4. 在 netherrack 上放置 Firestone 方块

生成高度

  • 主生成位置:Y = 31 + random(0~15)
  • 熔岩池延伸:Y - 6 范围内全是熔岩

产物

生成 EnumOreMagic.FIRESTONE 方块(railcraft:ore_magic#0)。

源码依据

  • GeneratorFirestone.java - Firestone 生成器
  • WorldGenFirestone.java - 世界生成逻辑
  • EnumOreMagic.java - Firestone 枚举定义