跳到正文
烈焰甘蔗Wiki

Sulfur(硫磺)生成

[!WARNING] 已订正(1.7.10 树) 原条目不是生物群系,而是矿石生成器;类名与 API 全部取自 mc-1.12.2:

  1. 生成器类名错:1.7.10 是 SulfurGenerator(矿石事件分流)+ WorldGenSulfur (小矿脉生成器),没有 GeneratorSulfur。
  2. 原条目通篇使用 1.12.2 的 BlockPos / EnumFacing.HORIZONTALS / getDefaultState() API——1.7.10 源码树中 net.minecraft.util.math.BlockPos 零命中,方向用 ForgeDirection.getOrientation(side),方块状态用 Blocks.stone。
  3. AMOUNT = 10 与「矿脉必须靠近熔岩」的规则正确,予以保留。

证据:worldgen/WorldGenSulfur.java:26-56、worldgen/SulfurGenerator.java。

基本信息

属性 值
类型 矿石生成器(不是生物群系)
矿脉生成器 WorldGenSulfur(继承 WorldGenSmallDeposits)
矿石 EnumOre.SULFUR(EnumOre.java:23)
每簇数量 10(AMOUNT,WorldGenSulfur.java:26)
替换方块 Blocks.stone
事件分流类 SulfurGenerator

构造(WorldGenSulfur.java:28-30)

private static final int AMOUNT = 10;

public WorldGenSulfur() {
    super(BlockOre.getBlock(), EnumOre.SULFUR.ordinal(), AMOUNT, Blocks.stone);
}

即:在 Blocks.stone 中替换,每簇 10 个 EnumOre.SULFUR。 BlockOre 是单一注册名 + metadata 变体的矿石方块。

canGen() 条件(WorldGenSulfur.java:32-56)

  1. 检查 4 个水平方向(side 从 2 到 5,即 ForgeDirection 的东/西/上/下以外的四个水平朝向): 任意一侧相邻方块是 Blocks.lava 或 Blocks.flowing_lava → 通过。
  2. 否则向下检查 4 格(j = 0..3):
    • 遇到 Blocks.lava / Blocks.flowing_lava → 通过;
    • 遇到非 Blocks.air 的方块 → 立即不通过;
    • 4 格全是空气 → 不通过。
for (int side = 2; side < 6; side++) {
    ForgeDirection s = ForgeDirection.getOrientation(side);
    ...
    if (block == Blocks.lava || block == Blocks.flowing_lava) return true;
}
for (int j = 0; j < 4; j++) {
    Block block = WorldPlugin.getBlock(world, x, y - j, z);
    if (block == Blocks.lava || block == Blocks.flowing_lava) return true;
    else if (block != Blocks.air) return false;
}
return false;

生成规则汇总

规则 内容
每簇数量 10
替换目标 仅 Blocks.stone
水平熔岩 相邻 4 个水平面任一为熔岩即可
下方熔岩 正下方 4 格内为熔岩,且中间不得有其他方块
维度限制 无法核实——WorldGenSulfur.canGen() 中没有维度判断

原条目的「每区块 90 次尝试」「Y = 6 ~ 15」「MOUNTAIN 山地群系」三个说法 在 1.7.10 源码中均无对应代码,已删除。群系条件由 SulfurGenerator 的 OreGenEvent 路径决定,具体判定在 SulfurGenerator 中,未逐行核实。

相关条目

浏览全部模组