特殊生物总表
[!INFO] 注册真源:
_SpecialMobs.java:161registerMobs()数据源:_SpecialMobs.java:65MONSTER_KEY[]、:68MONSTER_TYPES[][]
Special Mobs 不添加全新生物,而是为 12 种原版敌对生物各提供 1 个替换种 + N 个亚种变体。
[!IMPORTANT] 注册是双层循环 + 反射加载类名,不能用 grep
registerModEntity计数。循环体内只有 1 处EntityRegistry.registerModEntity调用(_SpecialMobs.java:240与:269),但实际注册 106 个实体。类名由字符串拼接而成:
toast.specialMobs.entity.<key小写>.Entity_Special<Key>与Entity<变体名><Key>。任一类缺失只会静默ClassNotFoundException跳过(:252打印 debug),不报错。
完整清单(106 个)
| 原版生物 | MONSTER_KEY |
亚种数 | 实体总数 | 亚种名 |
|---|---|---|---|---|
| 烈焰人 | Blaze |
8 | 9 | Cinder, Conflagration, Ember, Hellfire, Inferno, Jolt, Smolder, Wildfire |
| 洞穴蜘蛛 | CaveSpider |
6 | 7 | Baby, Flying, Mother, Tough, Web, Witch |
| 苦力怕 | Creeper |
14 | 15 | Armor, Dark, Death, Dirt, Doom, Drowning, Ender, Fire, Gravel, Gravity, Jumping, Lightning, Mini, Splitting |
| 末影人 | Enderman |
7 | 8 | Blinding, Cursed, Icy, Lightning, Mini, Mirage, Thief |
| 恶魂 | Ghast |
7 | 8 | Baby, Faint, Fighter, King, Mini, Queen, Unholy |
| 猪灵 | PigZombie |
6 | 7 | Brutish, Fishing, Giant, Hungry, Plague, Vampire |
| 蠹虫 | Silverfish |
5 | 6 | Blinding, Fishing, Flying, Poison, Tough |
| 骷髅 | Skeleton |
9 | 10 | Brutish, Fire, Gatling, Giant, Ninja, Poison, Sniper, Spitfire, Thief |
| 史莱姆 | Slime |
7 | 8 | Blackberry, Blueberry, Caramel, Grape, Lemon, Strawberry, Watermelon |
| 蜘蛛 | Spider |
13 | 14 | Baby, Desert, Flying, Ghost, Giant, Hungry, Mother, Pale, Poison, Small, Tough, Web, Witch |
| 女巫 | Witch |
6 | 7 | Domination, Rage, Shadows, Undead, Wilds, Wind |
| 僵尸 | Zombie |
6 | 7 | Brutish, Fire, Fishing, Giant, Hungry, Plague |
| 合计 | 12 | 94 | 106 |
亚种最多的三种:Creeper 14 种、Spider 13 种、Skeleton / Blaze 各 8–9 种。
命名规则
- 替换种:注册名
Special<Key>,类Entity_Special<Key>(如SpecialCreeper) - 亚种:注册名
<变体名><Key>,类Entity<变体名><Key>(如JumpingCreeper、PoisonSpider)
额外注册实体(3 个)
在双层循环之外单独注册:
| 注册名 | 类 | 位置 |
|---|---|---|
SMFishHook |
EntitySpecialFishHook |
_SpecialMobs.java:308 |
SMSpitball |
EntitySpecialSpitball |
_SpecialMobs.java:309 |
LavaMonster |
EntityLavaMonster |
_SpecialMobs.java:357 |
实体注册总计 109 个。
[!WARNING] 源缺陷:
_SpecialMobs.java:311有一行被注释掉的注册// EntityRegistry.registerModEntity(EntitySpecialFireball.class, "SMFireball", id++, this, 64, 10, true);,而EntitySpecialFireball类在仓库中根本不存在。这是「注释掉的示例代码」与「引用不存在的类」叠加 —— 统计实体数时若把它算进去会多出 1 个既未注册也无实现的幽灵实体。
辅助类(非独立实体)
entity/ 下另有 4 个不单独注册的类:
| 类 | 继承 | 用途 |
|---|---|---|
EntityAILavaMonsterAttack |
EntityAIBase |
LavaMonster 的 AI 目标 |
EntityAINinja |
EntityAIBase |
Ninja 骷髅的 AI 目标 |
EntityMeleeGhast |
Entity_SpecialGhast |
Ghast 变体的近战行为混入 |
EntityMountGhast |
Entity_SpecialGhast |
Ghast 变体的骑乘行为混入 |
这解释了「文件数 113 > 注册数 106」的差额:entity/ 下 Entity*.java 共 113 个 = 106 注册实体 + 3 额外注册 + 4 辅助类。