Naquadah Ore World Generation
基本信息
| 属性 | 值 |
|---|---|
| 类 | gcewing.sg.worldgen.NaquadahOreWorldGen(worldgen/NaquadahOreWorldGen.java:21),共 144 行 |
| 接口 | IWorldGenerator |
| 注册 | GameRegistry.registerWorldGenerator(gen, 0),优先级 0(SGCraft.java:338) |
| 默认开关 | 开启(SGCraft.java:335,配置 options.enableNaquadahOre) |
| 生成的方块 | Naquadah Ore |
功能
生成器实现两种独立的矿脉模式,都在 y < 64 的范围内工作,且只替换石头——generateNode 的写入条件是 getBlock(...) == stone(worldgen/NaquadahOreWorldGen.java:99),因此不会侵蚀洞穴、空气或基岩。
熔岩下矿脉
odds(genUnderLavaOdds) 命中(random.nextInt(n) == 0,即 1/n 概率,worldgen/NaquadahOreWorldGen.java:106-108)时,在该区块随机取 1..maxNodesUnderLava 个节点。对每个节点扫描整列 y=0…63,找出"石头正下方是熔岩"的位置并生成一个 3 × 1 × 3 的矿脉节点(worldgen/NaquadahOreWorldGen.java:112-127)。
generateNode 的三个尺寸参数是上界而非固定值:实际随机出 0..sx-1、0..sy-1、0..sz-1 后作增量(worldgen/NaquadahOreWorldGen.java:84-87)。所以 3×1×3 的熔岩下矿脉实际是 1–3 × 1 × 1–3 格。
孤立矿脉
odds(genIsolatedOdds) 命中时,在 y=0…63 随机撒 1..maxIsolatedNodes 个 2×2×2(实际 1–2 × 1–2 × 1–2)的小矿点(worldgen/NaquadahOreWorldGen.java:128-142)。注意代码写的是 if (!odds(...)) return;——不命中就直接返回,因此熔岩下矿脉是先生成的,孤立矿脉只是额外叠加(worldgen/NaquadahOreWorldGen.java:128-130)。
区块数据标记
generateChunk 第一行调用 SGChunkData.setChunk(chunk, true)(worldgen/NaquadahOreWorldGen.java:111)。该标记由 SGChunkData.EventHandler 维护(SGCraft.java:339),最新一次提交 3809fc0 的标题正是 “Disable SG chunk data if ore gen config is not enable”——即矿脉生成关闭时该标记也不再写入。
补生成
regenerate(Chunk) 用 world.getSeed() 派生出与位置相关的随机种子后重跑 generateChunk(worldgen/NaquadahOreWorldGen.java:61-74),供 options.addOresToExistingWorlds 场景使用。
数值
| 配置键 | 默认值 | 含义 | 来源 |
|---|---|---|---|
options.enableNaquadahOre |
true |
是否注册本生成器 | SGCraft.java:335 |
naquadah.genUnderLavaOdds |
4 | 熔岩下矿脉出现概率 1/n | worldgen/NaquadahOreWorldGen.java:23、:42 |
naquadah.maxNodesUnderLava |
8 | 每次最多节点数 nextInt(8)+1 |
:24、:43 |
naquadah.genIsolatedOdds |
8 | 孤立矿脉出现概率 1/n | :25、:44 |
naquadah.maxIsolatedNodes |
4 | 每次最多孤立矿点数 nextInt(4)+1 |
:26、:45 |
naquadah.debugLava |
false |
打印熔岩下矿脉日志 | :28、:46 |
naquadah.debugRandom |
false |
打印随机矿点日志 | :29、:47 |
naquadah.debugLevel |
0 | 日志详细度(≥1 打节点,≥2 打每格) | :30、:48 |
options.addOresToExistingWorlds |
false |
为已有世界补生成 | SGCraft.java:154 |
交互
- 世界生成:普通生成走
generate,补生成走regenerate,两者共用generateChunk。 - 关闭矿石生成:
options.enableNaquadahOre = false时SGCraft.registerWorldGenerators不会实例化本类,SGChunkData.EventHandler也不会注册(SGCraft.java:335-340),但registerStructureComponent仍会执行(SGCraft.java:341)。
相关条目
- Naquadah Ore - 生成的方块
- Naquadah 合成链
- 沙漠金字塔下的结构 - 同一阶段注册的另一项生成
- 配置项