怪物

基本信息

属性 值
怪物实体类 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_FOREST
  • EntityMobInfestedBat、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/ 整棵子树存在),故这是未完成功能,不是缺陷。

相关条目

  • Boss - 3 个可刷怪蛋生成的 Boss
  • 诅咒系统 - ParalyzedEnderman(brainlessEnderman)与诅咒的关系
  • 末地维度覆盖 - 刷怪列表替换
  • 结构 - 刷怪笼逻辑 CustomSpawnerLogic / TowerEndermanSpawnerLogic
  • 配置 - overpoweredMobs / overworldEndermanMultiplier / overrideBiomeMobs