EntityButterfly
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | Forestry:butterflyGE(EntityUtil.registerEntity(EntityButterfly.class, "butterflyGE", ...)) |
| 类 | forestry.lepidopterology.entities.EntityButterfly extends EntityCreature |
| 生命值 | 无法核实(EntityButterfly 未调用 setHealth/setMaxHealth) |
| 护甲 | 无 |
| 碰撞箱 | setSize(size, 0.4f) —— 宽度由基因 size 决定,高度固定 0.4(EntityButterfly.java:308) |
| 材质纹理 | 由物种 species.getEntityTexture() 决定 |
| 火焰抗性 | isImmuneToFire = genome.getFireResist()(EntityButterfly.setIndividual) |
[!WARNING] 已订正(源码回核)
- 注册名原文写
forestry.butterfly—— 错。真实注册名Forestry:butterflyGE(PluginLepidopterology.java:108)。butterfly是包名lepidopterology的误写。- 碰撞箱原文写「0.5×0.5」—— 错。源码是
setSize(size, 0.4f)(EntityButterfly.java:308),高度恒为 0.4,宽度是基因值(默认DEFAULT_BUTTERFLY_SIZE = 0.75)。- 生命值原文写「继承 EntityCreature 默认(通常 20)」—— 无法核实,
EntityButterfly中无相关赋值,已改为「无法核实」。- 「死亡后实体消失」表述含糊 —— 实际有寿命机制:
isDead判定为ticksExisted > MAX_LIFESPAN(EntityButterfly.java:375)。
常量(全部核对通过)
| 常量 | 值 | 证据 |
|---|---|---|
COOLDOWNS |
1500 | EntityButterfly.java:58 |
EXHAUSTION_REST |
1000 | EntityButterfly.java:67 |
EXHAUSTION_CONSUMPTION |
100000(100 * EXHAUSTION_REST) |
EntityButterfly.java:68 |
MAX_LIFESPAN |
168000 tick(24000 * 7) |
EntityButterfly.java:69 |
DATAWATCHER_ID_SPECIES |
16 | EntityButterfly.java:60 |
DATAWATCHER_ID_SIZE |
17 | EntityButterfly.java:61 |
DATAWATCHER_ID_STATE |
18 | EntityButterfly.java:62 |
DEFAULT_BUTTERFLY_SIZE |
0.75 | EntityButterfly.java:64 |
maximumHomeDistance |
64 | EntityButterfly.java:70 |
生成
- 生成方式:本身不在世界生成。玩家用捕虫网捕获野生蝴蝶/蛾后得到对应物品;
ButterflyManager负责模板与基因 - 物品:
Forestry:butterflyGE(ItemButterflyGE(EnumFlutterType.BUTTERFLY))、Forestry:serumGE(SERUM)、Forestry:caterpillarGE(CATERPILLAR),见ItemRegistryLepidopterology.java:23-25 - 类型:
EnumFlutterType
属性
| 属性 | 值 |
|---|---|
| 所含蝴蝶 | IButterfly,携带完整基因组 |
| 物种 | IAlleleButterflySpecies 决定外观与行为 |
| 大小 | 基因 size 决定,同步到 DATAWATCHER_ID_SIZE(size * 100) |
| 状态 | EnumButterflyState |
| 活动范围 | 距家 maximumHomeDistance = 64 格(平方距离比较,EntityButterfly.java:246) |
AI 行为(EntityButterfly.setDefaults,EntityButterfly.java:107-114)
| 优先级 | Task |
|---|---|
| 8 | AIButterflyFlee - 逃离危险 |
| 9 | AIButterflyMate - 寻找配偶交配 |
| 10 | AIButterflyPollinate - 采集花粉 |
| 11 | AIButterflyRest - 休息 |
| 12 | AIButterflyRise - 从休息状态起飞 |
| 12 | AIButterflyWander - 随机游荡 |
状态机
EnumButterflyState:DEFAULT_STATE(默认值)、FLYING、RESTING、TAKEOFF、LANDING、FLEEING、MATING 等,具体枚举值以源码 EnumButterflyState 为准。
基因组系统
| 基因 | 作用 |
|---|---|
IAlleleButterflySpecies |
物种、外观、理想温湿度 |
| Speed / Lifespan / Fertility / Pollination | 速度、寿命、繁殖、授粉 |
| Tolerance / Nocturnal | 温湿度耐受、夜行性 |
FireResist |
火焰抗性 |
Size |
体型(影响碰撞箱宽度) |
掉落
无法核实(EntityButterfly 中未见掉落表相关实现)。
第三方 mod 集成
- Genetics:完整蝴蝶基因遗传系统
- Arboriculture:花粉与树木互动(
TreeManager) - IC2 / BuildCraft:无直接集成
相关条目
- EntityBee - 蜜蜂(注意:并非世界实体,而是物品)