Universal Singularities
[!INFO] Git Commit:
113722d| Updated: 2026-10-01
Universal Singularities(modid universalsingularities)是 Minecraft 1.7.10 上的一个 Avaritia 附属模组,作者 Wealthyturtle、WanionCane。它的作用是把"把矿石压缩成奇点"这套 Avaritia 机制扩展到 17 个来源模组的 105 种材料上,并为每种材料提供独立的压缩配方、配色与开关。
它不注册任何方块、不注册实体、不开 GUI,只注册 17 个物品(合计 105 个 metadata 变体),并向 Avaritia 的压缩机/粉碎机注入配方。
核心结论
| 问题 | 答案 |
|---|---|
| 它注册了什么方块 | 没有任何方块 |
| 它注册了什么实体 / TileEntity | 没有 |
| 它注册了几个物品 | 默认 17 个(每分组一个),合计 105 个 meta 变体 |
| 它有自己的 GUI 吗 | 没有(不实现 IGuiHandler) |
| 它有热键吗 | 没有 |
| 它有自己的网络包吗 | 没有 |
| 它有指令吗 | 没有 |
| 它有 Forge 事件订阅吗 | 没有 |
| 它是 core mod 吗 | 不是(coreModClass = 空,usesMixins = false) |
| Java 文件数 | 8 |
modid 实读
Reference.java:5:
public static final String MOD_ID = "universalsingularities";
@Mod(modid = MOD_ID) 见 UniversalSingularityMod.java:19。
⚠️ 命名陷阱:Java 包名与资源目录是
wealthyturtle.uiesingularities/assets/uiesingularities,而 modid 是universalsingularities(uiesingularities只是遗留缩写)。实际游戏内 ID、资源前缀、配置文件名一律用后者。
依赖
| 模组 | 强度 | 声明位置 |
|---|---|---|
| Avaritia | required-after:Avaritia |
UniversalSingularityMod.java:23 |
| NotEnoughItems | 软依赖 | Loader.isModLoaded("NotEnoughItems")(CommonProxy.java:724),仅用于隐藏未启用奇点 |
Avaritia 是硬依赖且不可绕过:物品直接 extends ItemSingularity,配方直接调 CompressorManager / Grinder,渲染器直接用 FancyHaloRenderer。
三个数据结构
| 类 | 作用 |
|---|---|
UniversalSingularity |
一个分组(对应一个来源 mod / 一类材料),含 name + List<UniversalSingularityWrapper> |
UniversalSingularityWrapper |
一个变体,字段 name / oreName / recipeBaseValue / cColor / dColor / enabled |
UniversalSingularityItem |
一个注册物品,持有所属分组的完整变体 list,metadata 即变体下标 |
分组与物品是一一对应的:registerItem(item, "universal." + 分组名 + ".singularity")。
17 个分组
| 分组 | 变体数 | 来源 |
|---|---|---|
vanilla |
4 | 原版(煤、绿宝石、钻石、水) |
general |
33 | 非特定 mod 的通用金属 |
bigReactors |
5 | Big Reactors |
draconicEvolution |
2 | Draconic Evolution |
enderIO |
8 | Ender IO |
extraPlanets |
5 | Extra Planets |
extraTiC |
2 | Extra TiC |
extraUtilities |
1 | Extra Utilities |
utilitiesinexcess |
1 | Utilities in Excess |
mekanism |
2 | Mekanism |
metallurgy |
10 | Metallurgy |
redstoneArsenal |
1 | Redstone Arsenal |
tinkersConstruct |
7 | Tinkers’ Construct |
rubber |
6 | 各类橡胶衍生物 |
toxic |
1 | Toxic |
circuit |
10 | GregTech 电路(ULV–UHV) |
circuit2 |
7 | GregTech 高级电路(UEV–ERV、Computronium) |
开箱默认只有 25 个变体可用
105 个变体中 80 个默认关闭、25 个默认开启。默认开启的仅有:
| 分组 | 开启的变体 |
|---|---|
vanilla |
water |
general |
magnesium |
rubber |
全部 6 个 |
toxic |
contaminated |
circuit |
全部 10 个 |
circuit2 |
uev、uiv、umv、uxv、max、computronium(不含 erv) |
即未安装对应来源 mod 时全部不可得(矿辞不存在),且默认在 NEI 中被隐藏。
物品列表
- vanilla 奇点组 - 4 个变体,meta 0(煤)另有燃料处理
- general 奇点组 - 33 个变体,最大的一组
- bigReactors 奇点组 - 5 个变体
- draconicEvolution 奇点组 - 2 个变体
- enderIO 奇点组 - 8 个变体
- extraPlanets 奇点组 - 5 个变体
- extraTiC 奇点组 - 2 个变体
- extraUtilities 奇点组 - 1 个变体
- utilitiesinexcess 奇点组 - 1 个变体
- mekanism 奇点组 - 2 个变体
- metallurgy 奇点组 - 10 个变体
- redstoneArsenal 奇点组 - 1 个变体
- tinkersConstruct 奇点组 - 7 个变体
- rubber 奇点组 - 6 个变体
- toxic 奇点组 - 1 个变体
- circuit 奇点组 - 10 个变体,ULV–UHV
- circuit2 奇点组 - 7 个变体,UEV–ERV + Computronium
物品效果
无。本模组的物品没有右键行为、不消耗耐久、不附魔,全部效果来自父类 ItemSingularity 的光环渲染。
游戏设定
NEI 处理器
- NEI 隐藏禁用奇点 - 按 meta 粒度隐藏未启用/矿辞缺失的奇点
本 mod 没有的内容(附 grep 证据)
没有方块、多方块、TileEntity、实体
$ grep -rn "registerBlock\|registerTileEntity\|EntityRegistry" src/main/java
(无输出)
没有 GUI、热键、网络包、指令、Forge 事件
$ for kw in IGuiHandler "new KeyBinding" IMessage NetworkRegistry newSimpleChannel ICommand addChatCommand "@SubscribeEvent"; do ... done
每一个都是 0
没有附魔、药水、群系、结构、成就、世界生成
$ for kw in Enchantment Potion Achievement registerWorldGenerator EntityLiving; do ... done
每一个都是 0
不提供任何材质
$ find src/main/resources -type d
src/main/resources
src/main/resources/assets
src/main/resources/assets/uiesingularities
src/main/resources/assets/uiesingularities/lang
assets/ 下只有 lang/,没有 textures/ 或 models/。奇点外观完全继承 Avaritia 的 ItemSingularity(setTextureName("avaritia:singularity")),本模组只通过 getColorFromItemStack 改颜色。
不是 core mod、没有 Mixin、没有 AT
gradle.properties:coreModClass =、usesMixins = false、accessTransformersFile =。
源码缺陷
UniversalSingularityWrapper的 5 参构造函数隐式enabled = true(UniversalSingularityWrapper.java:21)。general.magnesium用的就是 5 参形式,与相邻显式传false的条目风格不一致,极易在后续编辑中被误读为"漏写"。生效代码中仅此 1 处用 5 参构造(另有 1 处salt出现在被注释的代码块里,不生效)。- 资源目录名与 modid 不一致——
assets/uiesingularities/vs modiduniversalsingularities。1.7.10 下 lang 文件按目录聚合加载,翻译仍生效;但任何后续加入的textures/都会落在错误 domainuiesingularities上而无法显示。当前无材质故未暴露。 getColorFromItemStack的cColor/dColor语义反直觉——renderPass == 0时返回dColor(UniversalSingularityItem.java:32-33),而字段命名暗示 0 应取亮色。属于易误读设计。- 配置在构造函数中读取(
CommonProxy.java:49起),无热重载;且config.save()在构造期即写盘。改配置必须重启。 - 大量
oreName是占位符——rubber、toxic、circuit、circuit2共 29 个变体全部使用blockArdite作矿辞,源码注释(:634)说明"配方会被核心 mod 改写",但对阅读者是隐藏耦合。 - 被注释掉的示例代码仍在源码中——
CommonProxy.java:717-720留有salt与red_aurum两个UniversalSingularityWrapper的注释块,lang 文件中也无对应键。 version = "GRADLETOKEN_VERSION"(Reference.java:7)是未被替换的构建期占位符,实际版本由 Gradle 令牌注入。