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) |
生成流程
- 扫描海底地形(
scanOceanFloor) - 计算海底深度和 floor 高度
- 在满足 MIN_DEPTH 和 MIN_FLOOR 条件时生成
- 高度偏差 = MIN_Y + GaussianRandom * (floorY - MIN_Y) * 0.5
矿石填充
Geode 内部填充 RailcraftBlocks.ORE(枚举为 ABYSSAL_STONE 对应的矿石变种)。
源码依据
GeneratorGeode.java- 晶洞生成器WorldGenGeode.java- 晶洞世界生成器RailcraftBlocks.java- 方块定义