Ice Snowball(寒冰雪球)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:tficesnowball(全小写,无空格) TwilightForestMod.java:889-896
实体 ID 常量 idVehicleSpawnIceSnowball = 17 TwilightForestMod.java:193
注册形式 EntityRegistry.registerModEntity 直调(不经 TFCreatures) TwilightForestMod.java:889
追踪距离 / 更新频率 150 / 3 TwilightForestMod.java:893-894
类 twilightforest.entity.EntityTFIceSnowball entity/EntityTFIceSnowball.java(93 行)
父类 net.minecraft.entity.projectile.EntityThrowable 同上 :9

数值

属性 值 来源
DAMAGE 常量 8 —— 但伤害代码被注释,实际不生效 EntityTFIceSnowball.java:11;注释见 :60-65
重力 getGravityVelocity 0.006F 同上 :30-32
飞行拖尾粒子 每 tick 2 个 snowballpoof 同上 :36-41
爆散粒子 8 个 snowballpoof 同上 :73-82

AI 行为 / 特殊机制

发射者:EntityTFIceShooter.attackEntityWithRangedAttack (EntityTFIceShooter.java:131、:138-140)——本实体只有这一个发射来源。

⚠️ 本投射物不造成伤害。 onImpact 中本应调用 entityHit.attackEntityFrom(DamageSource.causeThrownDamage(...), DAMAGE) 的整段代码 被注释掉(:58-67),实际只剩一句 pop():

// if (par1MovingObjectPosition.entityHit != null && ... ) {
//     if (par1MovingObjectPosition.entityHit.attackEntityFrom(
//         DamageSource.causeThrownDamage(this, this.getThrower()), DAMAGE)) { ... } }
pop();

因此 DAMAGE = 8 这个常量在 1.7.10 中是死代码。 Stable Ice Core 的 attackDamage 3.0 只在近身接触时生效。

可被击落:attackEntityFrom 覆写为「一碰就 setBeenAttacked() + pop() + 返回 true」 (:45-52)——玩家可以打掉雪球,但打掉它并不会对攻击者造成任何伤害(不反弹)。

pop() 行为(:72-91):在原位置放 8 个 snowballpoof 粒子, 注释掉的 mob.slime.big 音效(:85-86)不生效,服务端 setDead()。 本类没有任何 explode() / 伤害结算方法。

刷怪蛋:走 EntityRegistry.registerModEntity 直调,不进入 TFCreatures.entityEggs,无刷怪蛋。

相关条目