怪物
基本信息
| 属性 | 值 |
|---|---|
| 怪物实体类 | 14 个(活注册) |
| 刷怪蛋 meta | 15 个 |
| 实体类文件 | entity/mob/ 根目录 15 个类(14 个已注册 + 1 个未注册的 EntityMobSanctuaryOverseer),另有 ai/ 1 个 + util/ 3 个辅助类,共 19 个文件 |
| 刷怪蛋定义 | item/ItemSpawnEggs.java:43-… |
| 数据源 | init/EntityList.java:57-77 |
功能
本模组完整替换原版末影人:原版 EntityEnderman(ID 58)与末影水晶(ID 200)通过 GameRegistryUtil.replaceVanillaEntity 被本模组实体顶替(EntityList.java:57-58)。replaceVanillaEntity 的做法是取出 EntityList 中该 ID 的原名,删除旧映射,再以原名注册新类(system/util/GameRegistryUtil.java:56-65)。
此外 BiomeGenHardcoreEnd.overrideMobLists() 会在所有生物群系的怪物列表中,把 EntityEnderman.class 条目替换为 EntityMobEnderman.class(world/biome/BiomeGenHardcoreEnd.java:45-58)—— 主世界的末影人也因此被替换。
数值
实体注册表(14 个)
| 实体类 | 注册名 | ID | 追踪范围 | 刷怪蛋 meta | eggName | 位置 |
|---|---|---|---|---|---|---|
EntityMobEnderman |
Enderman |
51 | 256 | —(替换原版末影人) | — | EntityList.java:64 |
EntityMobAngryEnderman |
AngryEnderman |
1 | 256 | 0 | angryEnderman |
EntityList.java:65 |
EntityMobBabyEnderman |
BabyEnderman |
16 | 256 | 1 | babyEnderman |
EntityList.java:66 |
EntityMobParalyzedEnderman |
ParalyzedEnderman |
24 | 256 | 10 | brainlessEnderman |
EntityList.java:67 |
EntityMobHomelandEnderman |
HomelandEnderman |
39 | 256 | 13 | homelandEnderman |
EntityList.java:68 |
EntityMobEnderGuardian |
EnderGuardian |
22 | 256 | 2 | enderGuardian |
EntityList.java:69 |
EntityMobVampiricBat |
VampireBat |
10 | 256 | 3 | vampireBat |
EntityList.java:70 |
EntityMobInfestedBat |
InfestedBat |
12 | 128 | 4 | infestedBat |
EntityList.java:71 |
EntityMobForestGhost |
ForestGhost |
13 | 32 | — | — | EntityList.java:72 |
EntityMobLouse |
Louse |
34 | 256 | 11 | louse |
EntityList.java:73 |
EntityMobFireGolem |
FireGolem |
14 | 256 | 5 | fireGolem |
EntityList.java:74 |
EntityMobScorchingLens |
ScorchedLens |
15 | 256 | 6 | scorchingLens |
EntityList.java:75 |
EntityMobHauntedMiner |
HauntedMiner |
35 | 256 | 12 | hauntedMiner |
EntityList.java:76 |
EntityMobEndermage |
Endermage |
41 | 256 | 14 | endermage |
EntityList.java:77 |
15 个刷怪蛋 meta 的构成:12 个怪物类 + 3 个 Boss(enderEye / fireFiend / enderDemon,见 Boss)。14 个怪物类中只有 EntityMobForestGhost 与 EntityMobEnderman 没有刷怪蛋 —— 后者因为顶替了原版末影人,用原版刷怪蛋机制即可。
⚠️ EntityMobScorchingLens 的注册名是 ScorchedLens(带 d),刷怪蛋名是 scorchingLens,类名是 ScorchingLens —— 三者拼写不一致(EntityList.java:75)。
末地怪物列表
BiomeGenHardcoreEnd.overrideMobLists() 的两条分支(world/biome/BiomeGenHardcoreEnd.java:29-43):
配置 overrideBiomeMobs |
行为 |
|---|---|
true |
清空末地生物群系 4 个刷怪列表,再加入 new SpawnListEntry(EntityMobEnderman.class, 10, 4, 4)(权重 10,最少 4,最多 4) |
false(默认) |
保留原版列表,只把其中的 EntityEnderman.class 条目换成 EntityMobEnderman.class |
overrideMobLists() 无条件遍历所有生物群系(:45-58),把每群系怪物列表里第一条 EntityEnderman 条目替换为 EntityMobEnderman;若 overworldEndermanMultiplier != 1F,还把该条目的 itemWeight 乘以该系数后 Math.round(:53-54)。
能量价值(mechanics/energy/EnergyValues.java:62-68)
| 实体 | energyUnits |
|---|---|
EntityMobBabyEnderman |
0.40 |
EntityMobEnderman |
0.85 |
EntityMobAngryEnderman |
0.85 |
EntityMobHomelandEnderman |
0.85 |
EntityMobEndermage |
1.25 |
EntityMiniBossEnderEye |
6.50 |
EntityBossDragon |
24.00 |
交互
刷怪蛋(item/ItemSpawnEggs.java)
ItemSpawnEggs extends ItemMonsterPlacer(:41),15 个 EggData 常量(:43)。每个 EggData 带 4 个参数:lang 名、实体类、成年体颜色 {r,g,b}、幼年体颜色 {r,g,b}。
| meta | lang 名 | 实体类 | 成年体 RGB / 幼年体 RGB |
|---|---|---|---|
| 0 | angryEnderman |
EntityMobAngryEnderman |
{22,22,22} / {87,45,45} |
| 1 | babyEnderman |
EntityMobBabyEnderman |
{22,22,22} / {91,67,124} |
| 2 | enderGuardian |
EntityMobEnderGuardian |
{22,22,22} / {68,45,87} |
| 3 | vampireBat |
EntityMobVampiricBat |
{76,62,48} / {70,35,71} |
| 4 | infestedBat |
EntityMobInfestedBat |
{76,62,48} / {129,48,39} |
| 5 | fireGolem |
EntityMobFireGolem |
{68, 16, 0} / {210, 142, 50} |
| 6 | scorchingLens |
EntityMobScorchingLens |
{255, 112, 0} / {253, 9, 8} |
| 7 | enderEye |
EntityMiniBossEnderEye |
{22, 22, 22} / {255, 255, 255} |
| 8 | fireFiend |
EntityMiniBossFireFiend |
{68, 16, 0} / {33, 0, 0} |
| 9 | enderDemon |
EntityBossEnderDemon |
{22, 22, 22} / {86, 21, 111} |
| 10 | brainlessEnderman |
EntityMobParalyzedEnderman |
{22, 22, 22} / {190, 190, 190} |
| 11 | louse |
EntityMobLouse |
{45, 45, 45} / {80, 0, 140} |
| 12 | hauntedMiner |
EntityMobHauntedMiner |
{48, 23, 23} / {170, 72, 37} |
| 13 | homelandEnderman |
EntityMobHomelandEnderman |
{22, 22, 22} / {199, 44, 44} |
| 14 | endermage |
EntityMobEndermage |
{22, 22, 22} / {217, 210, 84} |
特殊机制常量
| 实体 | 常量 | 位置 |
|---|---|---|
EntityMobHauntedMiner |
ATTACK_TIMER = 80;攻击阶段 ATTACK_NONE=0 / ATTACK_PROJECTILES=1 / ATTACK_LAVA=2 / ATTACK_BLAST_WAVE=3 |
entity/mob/EntityMobHauntedMiner.java:44-45 |
EntityMobFireGolem |
属性修饰器 UUID 7107DE5E-7CE8-4030-940E-514C1F160890(cancelMovement) |
entity/mob/EntityMobFireGolem.java:34-35 |
EntityMobHomelandEnderman |
属性修饰器 UUID 020E0DFB-87AE-4653-9556-831010E291A0(attackingSpeedBoostModifier) |
entity/mob/EntityMobHomelandEnderman.java:72-73 |
EntityMobEnderGuardian |
dashModifier 属性修饰器 |
entity/mob/EntityMobEnderGuardian.java:34 |
寄生与侵染
infestation_remedy(ItemInfestationRemedy)用于解除侵染;对应成就BIOME_INFESTED_FORESTEntityMobInfestedBat、EntityMobHauntedMiner、EntityMobLouse都有「吸血蝙蝠」相关机制misc/HomelandEndermen.java处理家园末影人逻辑
合成配方
刷怪蛋没有 GameRegistry 合成配方(mechanics/RecipeList.java 的 37 个调用点无一条产出 spawn_eggs),只能靠玩家搜索获得。spawn_eggs 由 init/ItemList.java:357 显式 addItems(spawn_eggs) 加进主创造标签。
未注册内容
EntityMobSanctuaryOverseer(entity/mob/EntityMobSanctuaryOverseer.java,213 行)没有注册:init/EntityList.java:78-79 的注册调用被 // TODO SANCTUARY 注释掉。已核对:grep -rn EntityMobSanctuaryOverseer src/main/java 的全部非注释引用只出现在 TileEntitySanctuaryBrain.java 内部,而该 TileEntity 自身也未注册(init/BlockList.java:514 注释)。仓库有明确 intent evidence(8 个文件的 // TODO SANCTUARY 注释 + world/structure/sanctuary/ 整棵子树存在),故这是未完成功能,不是缺陷。