蜂群实体
基本信息
| 属性 | 值 |
|---|---|
| 实体名 | computronics:swarm |
| 实体类 | pl.asie.computronics.integration.forestry.entity.EntitySwarm(继承 EntityFlyingCreature,实现 IBeeHousing) |
| Entity ID | 9(IntegrationForestry.java:166) |
| 跟踪范围 | 64 |
| 更新频率 | 1 tick(IntegrationForestry.java:168) |
| 注册条件 | Forestry ≥ 4.2.0 且 加载 OpenComputers 且 enable.forestry.opencomputersBees(IntegrationOpenComputers.java:153-163) |
| 中文名 | entity.computronics.swarm.name = 蜂群(zh_CN.lang) |
注意 registerModEntity 的名字参数是 "swarm" 而非 "computronics.swarm"(IntegrationForestry.java:166)——Forge 会用调用方所在 mod 的 modid 补全,因此 lang 键仍是 entity.computronics.swarm.name,匹配正确。
功能
EntitySwarm 是一个双面实体:既是会攻击玩家的敌对生物,又实现 Forestry 的 IBeeHousing(EntitySwarm.java:49),即它本身就是一个蜂巢。
群体结构
| 概念 | 说明 | 源行 |
|---|---|---|
| 蜂后物品 | 构造函数收 ItemStack queen,存进 IBeeHousingInventory |
EntitySwarm.java:62、:534 |
| 成员上限 | memberCountMax,随受伤比例缩减:Math.max(Math.min(m, memberCountMax × (health/maxHealth)), 1) |
EntitySwarm.java:114 |
| 成员生成 | swarmMembers.size() < memberCountMax 时补员 |
EntitySwarm.java:104 附近 |
| 攻击修正 | 0.1D × (health / maxHealth) |
EntitySwarm.java:461 |
伤害源
自定义 EntitySwarm.BeeDamageSource(EntitySwarm.java:503),配合 zh_CN.lang 的 6 条 death.attack.computronics.sting.* 死亡信息(sting.1–sting.5 与 sting.self)。
生命周期
由纳米机器系统生成:SwarmProvider 注册到 Forge 事件总线并 Nanomachines.addProvider(provider)(IntegrationForestry.java:167-170)。SwarmBehavior 在满足条件时执行 new EntitySwarm(player.worldObj, x, y, z, queen)(SwarmBehavior.java:58)。
⚠️ IntegrationForestry.java:169 的 FMLCommonHandler.instance().bus().register(provider); 一行已被注释掉。实际生效的只有 Forge 总线注册这一条路径,provider 不会收到 FML 生命周期事件。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
enable.forestry.opencomputersBees |
true |
Config.java:328-332 |
实体自身的其它参数(血量、攻击力、成员数上限等)由源码在构造期计算,没有对应的配置项。
交互
| 触发 | 行为 |
|---|---|
| 玩家靠近 | 蜂群攻击玩家 |
| 玩家死亡 | 触发 sting.* 死亡信息之一 |
| 玩家携带蜂后物品 | 满足条件时生成新蜂群 |
相关条目
- Forestry 集成 - 蜂种注册与纳米机器提供者
- Forestry 零件 - 蜂群的酿造产物
- 设置:OpenComputers -
enable.forestry.opencomputersBees