魔杖焦点弹幕(Wand Focus Projectiles)
法杖(WandCasting)装上各种焦点(focus)后,右击射出的实体。共 12 个魔杖专用弹幕实体 + 1 个通用投掷物 + 3 个被投掷的物品实体。
基本信息
| 属性 | 值 |
|---|---|
| 模组 | thaumcraft(mcmod.info "modid": "Thaumcraft",大写 T) |
| 版本 | 1.7.10-4.2.3.5(mcmod.info "version","mcversion": "1.7.10") |
| 源码 | /Users/evlos/a/mirror/thaumcraft4/(反编译 jar,无 gradle) |
| 注册代码 | common/config/ConfigEntities.java:77-95 |
| 注册类目录 | common/entities/projectile/(12 个) |
| 实体 ID | 0–16(ConfigEntities.java:74 int id = 0; 起 id++ 顺序分配) |
12 个魔杖弹幕实体
| 实体 ID | 注册名 | 类 | 继承 | 由哪个焦点射出 |
|---|---|---|---|---|
| 3 | AspectOrb |
EntityAspectOrb |
— | 所有焦点共用(WandManager 抛射时统一包一层) |
| 5 | Alumentum |
EntityAlumentum |
EntityThrowable |
无焦点:ItemResource.java:279 与 BehaviorDispenseAlumetum.java:43(投掷瓶/右键) |
| 6 | PrimalOrb |
EntityPrimalOrb |
EntityThrowable implements IEntityAdditionalSpawnData |
ItemFocusPrimal(原始) |
| 7 | FrostShard |
EntityFrostShard |
EntityThrowable implements IEntityAdditionalSpawnData |
ItemFocusFrost(冰霜) |
| 8 | Dart |
EntityDart |
EntityArrow implements IProjectile, IEntityAdditionalSpawnData |
傀儡远程攻击(EntityGolemBase.java:1329),非魔杖 |
| 9 | PrimalArrow |
EntityPrimalArrow |
EntityArrow implements IProjectile, IEntityAdditionalSpawnData |
EventHandlerEntity.java:639(箭袋) |
| 10 | PechBlast |
EntityPechBlast |
EntityThrowable |
ItemFocusPech(诅咒) |
| 11 | EldritchOrb |
EntityEldritchOrb |
EntityThrowable |
敌方:Eldritch Guardian(EntityEldritchGuardian.java:379)、Eldritch Warden(EntityEldritchWarden.java:438) |
| 12 | BottleTaint |
EntityBottleTaint |
EntityThrowable |
无焦点:ItemBottleTaint.java:52(右击污秽之瓶) |
| 13 | GolemOrb |
EntityGolemOrb |
EntityThrowable implements IEntityAdditionalSpawnData |
敌方:Eldritch Golem(:390)、Cultist Leader(:194)、Cultist Cleric(EntityCultistCleric.java:76) |
| 14 | ShockOrb |
EntityShockOrb |
EntityThrowable |
ItemFocusShock(激流) |
| 15 | ExplosiveOrb |
EntityExplosiveOrb |
EntityThrowable |
ItemFocusFire 升级为 alchemistsfire(ItemFocusFire.java:138) |
| 16 | Ember |
EntityEmber |
EntityThrowable implements IEntityAdditionalSpawnData |
ItemFocusFire(火焰,ItemFocusFire.java:122) |
与焦点的对应表(common/items/wands/foci/)
焦点物品共 10 个:ItemFocusExcavation、ItemFocusFire、ItemFocusFrost、ItemFocusHellbat、ItemFocusPech、ItemFocusPortableHole、ItemFocusPrimal、ItemFocusShock、ItemFocusTrade、ItemFocusWarding。
| 焦点 | 射出实体 | 证据 |
|---|---|---|
ItemFocusFire |
EntityEmber(散射模式)/ EntityExplosiveOrb(alchemistsfire 升级) |
ItemFocusFire.java:122, 138 |
ItemFocusFrost |
EntityFrostShard,三种威力::49 传 8.0F、:57 与 :65 传 1.0F |
ItemFocusFrost.java:49, 57, 65 |
ItemFocusPech |
EntityPechBlast,带 getFocusPotency / getFocusExtend / nightshade 升级判定 |
ItemFocusPech.java:55 |
ItemFocusPrimal |
EntityPrimalOrb,带 seeker 升级判定 |
ItemFocusPrimal.java:57 |
ItemFocusShock |
EntityShockOrb |
ItemFocusShock.java:117 |
ItemFocusExcavation / Hellbat / PortableHole / Trade / Warding |
不经由上表(分别是挖掘/蝙蝠/便携洞/交易/防护效果) | — |
ItemFocusHellbat/ItemFocusPortableHole/ItemFocusTrade/ItemFocusWarding/ItemFocusExcavation没有独立的弹幕实体——PortableHole走方块放置,Warding走防护场,其余走瞬时效果。
3 个被投掷的物品实体
| 实体 ID | 注册名 | 类 | update 频率 | 谁生成 |
|---|---|---|---|---|
| 0 | SpecialItem |
EntitySpecialItem |
64 tick / 20 | TileCrucible.java:264(坩埚吐物)、EntityUtils.java:292(通用掉落)、WandManager.java:443(投掷魔道书) |
| 1 | PermanentItem |
EntityPermanentItem |
64 tick / 20 | GenKeyRoom.java:78 —— 地下密室生成,固定掉落 ConfigItems.itemEldritchObject meta 2 |
| 2 | FollowItem |
EntityFollowingItem |
64 tick / 20,非 sendVelocityUpdates |
BlockUtils.java:66 —— 玩家右键把掉落物吸过来 |
污秽坠落物
| 实体 ID | 注册名 | 类 | update 频率 | 谁生成 |
|---|---|---|---|---|
| 4 | FallingTaint |
EntityFallingTaint |
64 tick / 3(其余弹幕都是 /20) | BlockTaint.java:337 —— 污秽方块破碎时,把污秽"倒"出来 |
FallingTaint的 update 间隔是 3 tick,是全部 50 个实体里最快的(仅AspectOrb的 20 tick 与常规弹幕同档)。渲染上它做的是污秽粒子下落。
数值
| 属性 | 值 | 来源 |
|---|---|---|
| 魔杖弹幕实体数 | 12 | ConfigEntities.java:84-95 |
| 被投掷物品实体数 | 3 | ConfigEntities.java:77-79 |
| 污秽坠落物 | 1 | ConfigEntities.java:81 |
| 合计本页覆盖 | 16 个实体(ID 0–16) | — |
AspectOrb update 频率 |
64 / 20 | ConfigEntities.java:80 |
| 常规弹幕 update 频率 | 64 / 20 | ConfigEntities.java:84-95 |
FallingTaint update 频率 |
64 / 3 | ConfigEntities.java:81 |
继承 EntityArrow 的 |
2(Dart、PrimalArrow) |
类声明 |
继承 EntityThrowable 的 |
9 | 类声明 |
| 不继承抛射物的 | 1(AspectOrb) |
— |
实现 IEntityAdditionalSpawnData 的 |
5(Dart、PrimalArrow、PrimalOrb、FrostShard、GolemOrb、Ember) |
类声明 |
交互
| 触发 | 行为 |
|---|---|
| 魔杖右击 | 按装的焦点生成对应弹幕,消耗 vis |
| 魔杖左击 | 生成 EntityAspectOrb(抽取 aspects 用的通用球) |
| 右键污秽之瓶 | ItemBottleTaint.java:52 射出 EntityBottleTaint |
| 右键/投掷炼金之瓶 | ItemResource.java:279 射出 EntityAlumentum;BehaviorDispenseAlumetum.java:43 让发射器也能打出 |
| 污秽方块被挖 | BlockTaint.java:337 生成 EntityFallingTaint |
| 玩家右键掉落物 | BlockUtils.java:66 生成 EntityFollowingItem 把物品吸过来 |
相关条目
- Aspect Orb - ID 3,已单独建条目
- Frenzy Golem - ID 17,其远程攻击用
EntityDart(ID 8) - Traveling Trunk - ID 18
- Eldritch Guardian - 远程攻击用
EntityEldritchOrb(ID 11) - Eldritch Warden - 同上
- Crimson Praetor - 远程攻击用
EntityGolemOrb(ID 13) - Crimson Cleric - 同上
- Pech - 远程攻击用
EntityPechBlast(ID 10)
源码
common/config/ConfigEntities.java:74-95;common/entities/projectile/*.java;common/items/wands/foci/*.java。
反编译产物,行号前缀 /* NNN */ 即原行号。