Granite, Diorite, Andesite Generation
Chisel 1.8+ 添加的花岗岩、闪长岩、安山岩矿脉生成。
生成器
GeneratorChisel 实现 IWorldGenerator(GeneratorChisel.java:16),
单例 GeneratorChisel.INSTANCE,以权重 1000 注册
(Chisel.java:177)。每次 generate 回调遍历全部已注册矿脉(:60-66)。
生成参数
已订正:原文三项参数全部错误。
| 参数 | 原文 | 正确值 | 证据 |
|---|---|---|---|
脉大小 count |
未提及 | 32 | Chisel.java:174-176 传 32 作为 addFeature 第 2 参 |
| Y 范围 | 40-128 | 40 - 100 | Chisel.java:174-176 显式传 40, 100 |
每区块尝试次数 amount |
1 | 8 | Configurations.andesiteAmount 默认 8(Configurations.java:138-140) |
触发概率 chance |
1 (100%) | 0.5 (50%) | Chisel.java:174-176 末位传 0.5 |
Y 范围 128 是 GeneratorChisel 的默认值(addFeature 3 参重载
addFeature(block, count, amount, 40, 128),GeneratorChisel.java:33-35),
但三种石头岩都走了 5 参重载(Chisel.java:190-199 的 data.length == 4 分支),
显式覆盖为 40-100 / chance 0.5。原文直接套用了默认值。
三种石头共用同一套参数(Chisel.java:174-176):
addWorldgen(Features.ANDESITE, ChiselBlocks.andesite, Configurations.andesiteAmount, 40, 100, 0.5);
addWorldgen(Features.GRANITE, ChiselBlocks.granite, Configurations.graniteAmount, 40, 100, 0.5);
addWorldgen(Features.DIORITE, ChiselBlocks.diorite, Configurations.dioriteAmount, 40, 100, 0.5);
生成的方块
| 方块 | ChiselBlocks 引用 | 变体组 |
|---|---|---|
chisel:granite |
ChiselBlocks.granite |
granite |
chisel:diorite |
ChiselBlocks.diorite |
diorite |
chisel:andesite |
ChiselBlocks.andesite |
andesite |
三者均无 requiredMod、无父 Feature(Features.java:194、:1025、:1635),
因此 Features.enabled() 恒为真(只受 Configurations.featureEnabled 影响),
生成一定会注册。
注册方式
GeneratorChisel.addFeature(block, count, amount, minY, maxY, chance)
把 new WorldGenMinable(block, count) 存入 Map<WorldGenMinable, WorldGenInfo>
(GeneratorChisel.java:39-42)。
genStandardOre 的执行逻辑(GeneratorChisel.java:44-53):
每区块对每种矿脉循环 amount 次,每次以 random.nextDouble() < chance 判定是否生成,
Y 坐标为 minY + random.nextInt(maxY - minY) + 1。
用途
这些方块为玩家提供装饰性石材选项,可通过雕刻刀在各自的组内替换变体。
注意三者是三个独立组(Features.java:1658、:1049、:216),
chisel:granite 与 chisel:andesite 之间不能互相雕刻替换。