SpecialMobs

[!INFO] Git Commit: a32b8c4 | Updated: 2026-10-02 modid: SpecialMobs | 资源域: specialmobs | Forge 10.13.4.1614 / MC 1.7.10

Special Mobs(特殊生物)由 FatherToast 维护,主类 toast.specialMobs._SpecialMobs(类名以下划线开头,用于规避某些排序问题)。

[!IMPORTANT] 它不添加任何新生物,而是把 12 种原版敌对生物各扩展为 1 个替换种 + N 个亚种变体,共 109 个注册实体(106 个来自双层循环 + 3 个单独注册)。没有方块、物品或 TileEntity。

核心机制

registerMobs() 用 MONSTER_KEY[](12 个原版生物)与 MONSTER_TYPES[][](94 个亚种名)两个字符串数组驱动双层循环 + 反射加载类名:

toast.specialMobs.entity.<key小写>.Entity_Special<Key>   → "Special<Key>"
toast.specialMobs.entity.<key小数>.Entity<变体><Key>      → "<变体><Key>"

[!WARNING] 统计陷阱:循环体内只有 1 处 EntityRegistry.registerModEntity 调用,但实际注册 106 个实体。 naive grep 计数会得到 1-4,远少于真实值。mcmod.info 的 ${modId} 是占位符,真实 modid 来自 gradle.properties:10 modId = SpecialMobs。

依赖

mcmod.info 中 dependencies: [] —— 无硬依赖。

软兼容(全部为运行时 Class.forName 探测或 IMC,可缺失):

目标 方式
WAILIA IMC FMLInterModComms.sendMessage("Waila", "register", ...)
Spice of Life / AppleCore 软依赖,方法体内 instanceof
Advanced Genetics 反射 com.advGenetics.API.RegistrationHelper

内容规模

类别 数量
注册实体 109(12 替换种 + 94 亚种 + FishHook + Spitball + LavaMonster)
渲染器 16(12 基种 + FishHook + Spitball + LavaMonster)
方块 / 物品 / TileEntity 0 / 0 / 0
网络消息 2(均为 S→C)
刷怪蛋 由反射抢占 id 生成,最多 109 个
语言文件 2
多方块结构 0

条目列表

生物

  • 特殊生物总表 - 12 原版生物 × 94 亚种,含逐种变体名清单与 109 实体计数推导
  • 渲染与生成 - 16 个渲染器按基类共享;刷怪蛋反射抢占;LavaMonster 群系白名单

机制

  • 配置项 - 6 个分类,14 个读取点
  • 兼容适配 - WAILIA / Spice of Life / Advanced Genetics,含一处语义写反
  • 网络消息 - 2 个 S→C 消息,服务端权威设计

跨分类引用

  • Forbidden Magic —— 后者通过 Config.special 兼容本 mod,为 WrathCage 生成特殊生物(单向依赖)