HydraHead(九头蛇头颅)

事实基准:/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。

基本信息

属性 值 来源
注册实体名 TwilightForest:HydraHead TwilightForestMod.java:768-775
实体 ID 硬编码字面量 11,没有对应的 idMobXxx 常量 TwilightForestMod.java:771
注册形式 EntityRegistry.registerModEntity 直调(不经 TFCreatures) TwilightForestMod.java:768
追踪距离 / 更新频率 150 / 3 TwilightForestMod.java:773-774
类 twilightforest.entity.boss.EntityTFHydraHead entity/boss/EntityTFHydraHead.java(71 行)
父类 twilightforest.entity.boss.EntityTFHydraPart → net.minecraft.entity.EntityLiving 同上 :5;EntityTFHydraPart.java:11
尺寸 3F × 3F(由 Hydra 传入) EntityTFHydra.java:126
所属结构 九头蛇巢穴(Hydra Lair,hydraLair 特性 ID 12) TFFeature.java:95

⚠️ 注册名是 HydraHead(无空格),与 TwilightForest:Hydra(TwilightForestMod.java:497-502) 是两个不同的注册实体。查实体时用 TwilightForest:HydraHead。

数值

属性 值 来源
maxHealth 源码中未设置(本类不覆写 applyEntityAttributes) —
movementSpeed 源码中未设置 —
attackDamage 源码中未设置 —
垂直脸转速 getVerticalFaceSpeed 500 EntityTFHydraHead.java:23-25

AI 行为 / 特殊机制

它是 Hydra 的可渲染部件,不是独立战斗单位。 生命值、攻击、AI 全部由 EntityTFHydra 通过 HydraHeadContainer 驱动,本类只负责头部模型与张嘴动画。

生成:EntityTFHydra.onLivingUpdate 在 shouldSpawnHeads() && !worldObj.isRemote 时为每条头生成 new EntityTFHydraHead(this, "head" + i, 3F, 3F) 并 spawnEntityInWorld (EntityTFHydra.java:126-129);多人游戏时不生成(:124 注释 don't spawn if we're connected in multiplayer),改由 HydraHeadContainer 负责重连 (HydraHeadContainer.java:912-924)。

无视视锥剔除:构造函数强制 this.ignoreFrustumCheck = true (EntityTFHydraHead.java:12),注释说明脖子由头部一起绘制,所以头部永远绘制。

永不真正死亡:覆写 onDeathUpdate() 只做 ++this.deathTime(:31-34), 源码注释明确写它「不会死亡、消失、掉经验球」。

数据观察器(:36-49):

下标 含义 访问器 行号
18 张嘴程度 0–255(setMouthOpen 会夹在 0.0F–1.0F) getMouthOpen() :43-45、:51-64
19 头部状态(& 0xFF) getState() / setState() :47-49、:66-69

免疫火:父类 EntityTFHydraPart 构造时置 isImmuneToFire = true (EntityTFHydraPart.java:17、:28)。

掉落:本类没有任何掉落覆写,且因永不真正死亡,实际不掉落物品。

没有刷怪蛋条目:注册走 EntityRegistry.registerModEntity 直调, 不经过 TFCreatures.registerTFCreature,所以不会进入 TFCreatures.entityEggs —— 即使开创造模式也拿不到刷怪蛋。

相关条目