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 中被隐藏。

物品列表

物品效果

无。本模组的物品没有右键行为、不消耗耐久、不附魔,全部效果来自父类 ItemSingularity 的光环渲染。

游戏设定

NEI 处理器

本 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 =。

源码缺陷

  1. UniversalSingularityWrapper 的 5 参构造函数隐式 enabled = true(UniversalSingularityWrapper.java:21)。general.magnesium 用的就是 5 参形式,与相邻显式传 false 的条目风格不一致,极易在后续编辑中被误读为"漏写"。生效代码中仅此 1 处用 5 参构造(另有 1 处 salt 出现在被注释的代码块里,不生效)。
  2. 资源目录名与 modid 不一致——assets/uiesingularities/ vs modid universalsingularities。1.7.10 下 lang 文件按目录聚合加载,翻译仍生效;但任何后续加入的 textures/ 都会落在错误 domain uiesingularities 上而无法显示。当前无材质故未暴露。
  3. getColorFromItemStack 的 cColor / dColor 语义反直觉——renderPass == 0 时返回 dColor(UniversalSingularityItem.java:32-33),而字段命名暗示 0 应取亮色。属于易误读设计。
  4. 配置在构造函数中读取(CommonProxy.java:49 起),无热重载;且 config.save() 在构造期即写盘。改配置必须重启。
  5. 大量 oreName 是占位符——rubber、toxic、circuit、circuit2 共 29 个变体全部使用 blockArdite 作矿辞,源码注释(:634)说明"配方会被核心 mod 改写",但对阅读者是隐藏耦合。
  6. 被注释掉的示例代码仍在源码中——CommonProxy.java:717-720 留有 salt 与 red_aurum 两个 UniversalSingularityWrapper 的注释块,lang 文件中也无对应键。
  7. version = "GRADLETOKEN_VERSION"(Reference.java:7)是未被替换的构建期占位符,实际版本由 Gradle 令牌注入。

相关条目