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)
两个要点:
- 默认值随环境变化:基础奇点 ≤ 81 个时默认
false(直接用原始奇点做配方),81 个时默认
true(启用 9 合 1 分组)。 - 不可关闭:
|| 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)。
相关条目
- 复合奇点模式 - 分组算法与可合成性缺陷
- Compound Singularity - 条件注册的物品
- easyMode - 另一个 postInit 读取的开关
- 奇点物品类名单 - 决定
singularityCount的组成