useCompoundSingularities(启用复合奇点)

基本信息

属性 值
配置键 B:useCompoundSingularities(category general)
类型 布尔
默认值 动态 —— aboveTheLimit,即 奇点数量 > 81(CommonProxy.java:84-88)
读取阶段 postInit(CommonProxy.java:85-90)
硬上限 超过 81 时无法关闭

默认值是算出来的,不是写死的

final int singularityCount = singularities.size();
final boolean aboveTheLimit = singularityCount > 81;
final boolean useCompoundSingularities = config.getBoolean(
        "useCompoundSingularities",
        Configuration.CATEGORY_GENERAL,
        aboveTheLimit,                                        // ← 默认值随奇点数变化
        "When useCompoundSingularities is Enabled, ...\n"
        + "[If there are > 81 Basic Singularities, this Config Option will be Set to True Automatically]")
        || aboveTheLimit;                                      // ← 无论如何都要生效

(CommonProxy.java:83-90)

两个要点:

  1. 默认值随环境变化:基础奇点 ≤ 81 个时默认 false(直接用原始奇点做配方),

    81 个时默认 true(启用 9 合 1 分组)。

  2. 不可关闭:|| aboveTheLimit 使得奇点 > 81 时 无论配置写成什么,复合模式都强制启用。想关只能先让奇点数量降下来。

开启后的行为

步骤 代码位置
注册 combined_singularity 物品 CommonProxy.java:103-105
生成 16 条 9 合 1 配方 CommonProxy.java:107-118
清空聚合配方原输入,改填 16 个复合奇点 CommonProxy.java:119-121

详见 复合奇点模式。

关闭时:combined_singularity 物品根本不会注册, eternalsingularity:combined_singularity 这个注册名不存在, ClientProxy 的渲染器注册也因判空而跳过(ClientProxy.java:15)。

已知源码问题

  • 默认阈值 81 与实际可合成所需 136 不符:aboveTheLimit 用 > 81, 但要让 16 个复合奇点档位全部有配方需 奇点数 >= 136 (推导见 复合奇点模式)。 落在 82–135 区间时复合模式被强制开启,而聚合配方会要求 尚无获取途径的档位 → 永恒奇点不可合成。源码无回退逻辑。
  • craftingOnly 时配置不生效:postInit 在行 67-70 早退于读取配置之前 (配置读取在行 85),所以 Avaritia 仅合成模式下 useCompoundSingularities 写什么都无效。
  • 注释里的 “Basic Singularities” 措辞不准:配置项针对的是 「从无限催化剂抽出的奇点总数」,与「基础/复合」之分无关 (singularityCount 就是抽出的奇点个数,行 83)。

相关条目