Tower Golem(高塔铁傀儡)
事实基准:
/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册实体名 | TwilightForest:Tower Golem |
TwilightForestMod.java:642 |
| 英文显示名 | Carminite Golem(entity.TwilightForest.Tower Golem.name) |
assets/twilightforest/lang/en_US.lang:603 |
| 实体 ID 常量 | idMobTowerGolem = 216 |
TwilightForestMod.java:1118(声明在 :154) |
| 蛋色 | 主 0x6b3d20 / 副 0xe2ddda |
TwilightForestMod.java:644-645 |
| 注册形式 | TFCreatures.registerTFCreature → 追踪 80 / 更新 3 |
entity/TFCreatures.java:23 |
| 类 | twilightforest.entity.EntityTFTowerGolem(216 行) |
entity/EntityTFTowerGolem.java:26 |
| 父类 | net.minecraft.entity.monster.EntityMob |
同上 :26 |
| 体型 | setSize(1.4F, 2.9F) |
同上 :34 |
| 所属结构 | 黑暗高塔(TFFeature.darkTower,特性 ID 14),权重 10、4~4 只 |
TFFeature.java:170 |
🚨 本条目不属于冰霜高塔。 类名里的
Tower指的是「塔内通用小怪」, 与 Tower Ghast、Tower Termite 同挂黑暗高塔刷怪表。 冰霜高塔(iceTower,特性 ID 7、size 2)的刷怪条目只有三个:EntityTFSnowGuardian/EntityTFIceShooter/EntityTFIceExploder(TFFeature.java:198-200),与本类无关。本类不在任何群系刷怪表中:全
src/main/java检索EntityTFTowerGolem, 命中仅TwilightForestMod(注册)、TFFeature:170(刷怪表)、TFClientProxy(渲染绑定)、ModelTFTowerGolem/RenderTFTowerGolem(客户端)四处。
数值
| 属性 | 值 | 来源 |
|---|---|---|
maxHealth |
40.0 | EntityTFTowerGolem.java:60 |
movementSpeed |
0.25 | 同上 :61 |
attackDamage |
9.0 | 同上 :62 |
| 击飞高度 | 命中成功后目标 motionY += 0.4 |
同上 :85 |
护甲值 getTotalArmorValue |
父类值 +2,上限 20 | 同上 :69-77 |
挥击动画计时 attackTimer |
10(每次挥击重置,onLivingUpdate 递减) |
同上 :80、:135-137、:177 |
单区块上限 getMaxSpawnedInChunk |
16 | 同上 :212-214 |
dropFewItems:铁锭 |
rand.nextInt(3) 枚 Items.iron_ingot(0~2) |
同上 :196-200 |
dropFewItems:高塔木 |
rand.nextInt(3) 个 TFBlocks.towerWood(0~2) |
同上 :202-206 |
experienceValue |
源码中未设置(本类与 EntityTFTowerGolem.java 全文检索 experienceValue 无命中),沿用 EntityMob 链上的父类默认 |
— |
AI 行为 / 特殊机制
任务表(:38-41):1 EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false);
2 EntityAIWander(this, 1.0F);3 EntityAIWatchClosest(this, EntityPlayer.class, 6.0F) 与
3 EntityAILookIdle(this)(优先级 3 被占用两次,后加入的覆盖前者)。
目标表(:42-43):1 EntityAIHurtByTarget(this, false)、
2 EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)。
getNavigator().setAvoidsWater(true)(:37);isAIEnabled() 恒 true(:50-52)。
命中反馈广播:attackEntityAsMob 每次挥击把 attackTimer 置 10 并
worldObj.setEntityState(this, (byte) 4)(:80-81);客户端 handleHealthUpdate 收到字节 4
时重置计时器并播放 mob.irongolem.throw(:176-178)。ModelTFTowerGolem:132 读取
getAttackTimer() 驱动手臂抬起动画。
顺手打怪:collideWithEntity 中若撞到 IMob 且 getRNG().nextInt(10) == 0,
会把它设为攻击目标(:120-126)。
粒子:onLivingUpdate 在水平速度平方 > 2.5e-7 且 rand.nextInt(5) == 0 时,
于脚下 0.2 格处生成 4 个 blockcrack 粒子(模拟踩碎方块,:139-158);
另有 50% 概率生成 1 个 reddust 粒子(:161-170)。
声音:存活音为字符串 "none"(:95-97)——即本类不播存活音;
受伤 / 死亡 / 脚步分别复用铁傀儡的 mob.irongolem.hit / mob.irongolem.death /
mob.irongolem.walk,func_145780_a 被覆写为无视方块类型直接播放(:102-118)。
死代码::32 的 // this.texture = ...carminitegolem.png 与
:35 的 // this.moveSpeed = 0.25F; 均为注释。移动速度的生效来源是
applyEntityAttributes(:61),不是那行注释。
相关条目
- Dark Tower(黑暗高塔) - 本类的唯一刷新区域
- Mini Ghast(迷你幽灵) - 同塔的空中小怪,注册名同为塔系
- Tower Ghast(高塔幽灵) - 同塔的屋顶怪
- Tower Termite(高塔蠹虫) - 同塔木材内活动的另一种小怪
- Carminite(砷铅铁) - 与显示名
Carminite Golem同源的方块材料 - Tower Stone(高塔石) - 黑暗高塔建材