Seeker Arrow(追踪箭)
事实基准:
/Users/evlos/a/mirror/twilightforest(minecraftVersion = 1.7.10)逐行读源码。
基本信息
| 属性 | 值 | 来源 |
|---|---|---|
| 注册名 | TwilightForest:tfSeekerArrow |
TwilightForestMod.java:883 |
| 实体 ID 常量 | idVehicleSpawnSeekerArrow = 16 |
TwilightForestMod.java:192 |
| 注册形式 | EntityRegistry.registerModEntity 直调(无 registerTFCreature 包装,故没有刷怪蛋) |
TwilightForestMod.java:881-888 |
| 跟踪距离 / 更新频率 | 150 / 1 | TwilightForestMod.java:886-887 |
| 类 | twilightforest.entity.EntitySeekerArrow(163 行) |
entity/EntitySeekerArrow.java:14 |
| 父类 | net.minecraft.entity.projectile.EntityArrow |
entity/EntitySeekerArrow.java:14 |
| 产出方 | ItemTFSeekerBow(追踪弓) |
item/ItemTFSeekerBow.java:22 |
数值
| 属性 | 值 | 来源 |
|---|---|---|
索敌距离 seekDistance |
5.0 | EntitySeekerArrow.java:17 |
| 每 tick 下落增量 | motionY += 0.045F |
EntitySeekerArrow.java:150 |
| 发射速度倍率 | velocity * 0.5F(比普通弓慢一半) |
ItemTFSeekerBow.java:22 |
| 单 tick 转向修正上限 | X/Z ±2.0,Y ±1.0 | EntitySeekerArrow.java:128-130 |
| 飞行判定阈值 | 速度平方 > 1.0 | EntitySeekerArrow.java:158-161 |
生命值、攻击力、护甲等
SharedMonsterAttributes在本类中没有设置 —— 它是投射物, 不继承EntityLivingBase的生物属性表。
追踪机制
onUpdate(EntitySeekerArrow.java:29-156)是本实体的全部逻辑:
- 索敌:以当前位置为原点,把飞行方向左右各偏
π/6得到一个 5 格长的选择框, 上下各扩 3 格(EntitySeekerArrow.java:46-61)。 - 筛选目标:只锁定
EntityLivingBase且排除玩家(EntitySeekerArrow.java:70); 用方向向量点积取夹角最小者(EntitySeekerArrow.java:84-91)。 - 转向:目标在身后(点积 ≥ 0)时放弃目标(
EntitySeekerArrow.java:143-148); 在前方时按当前速度改写motionX/Y/Z(EntitySeekerArrow.java:115-142)。
相关条目
- Seeker Bow(追踪弓) - 本箭矢的唯一来源
- Snow Queen(雪之女王) - 掉落追踪弓的塔主