Forest Bunny(兔子)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:Forest Bunny TwilightForestMod.java:535
实体 ID 常量 idMobBunny = 196 TwilightForestMod.java:1099
蛋色 主 0xfefeee / 副 0xccaa99 TwilightForestMod.java:537-538
类 twilightforest.entity.passive.EntityTFBunny(173 行) entity/passive/EntityTFBunny.java:23
父类 EntityCreature,实现 IAnimals(不是原版兔子 EntityRabbit) EntityTFBunny.java:23
体型 setSize(0.3F, 0.7F),渲染缩放 0.3F EntityTFBunny.java:29, 129-131
所在群系 暮色森林基础群系刷怪表,权重 10、4~5 只 biomes/TFBiomeBase.java:123

数值

属性 值 来源
maxHealth 3 EntityTFBunny.java:56
movementSpeed 0.3 EntityTFBunny.java:57
attackDamage 源码中未设置 —— 它不是 EntityMob,没有攻击属性 EntityTFBunny.java:54-58
台阶高度 stepHeight 1(便于跳跃) EntityTFBunny.java:32
回避随机色 rand.nextInt(4)(0~3 共 4 种) EntityTFBunny.java:46
地形偏好:草方块 权重 10.0 EntityTFBunny.java:155-157
地形偏好:树叶 / 原木 -1.0(不生成) EntityTFBunny.java:149-154

AI 行为

EntityTFBunny.java:35-43(注释明确写着借用松鼠的 AI):

槽位 Goal 说明
0 EntityAISwimming 涉水
1 EntityAIPanic(2.0F) 逃跑
2 EntityAITempt(1.0F, Items.wheat_seeds, true) 被小麦种子引诱
3 EntityAIAvoidEntity(EntityPlayer, 2.0F, 0.8F, 1.33F) 避开玩家
5 EntityAIWander(0.8F) 慢速游荡
6 EntityAIWander(1.0F) 快速游荡(两档速度)
7 EntityAIWatchClosest(EntityPlayer, 6F) 注视玩家
8 EntityAILookIdle 待机

getNavigator().setAvoidsWater(true)(EntityTFBunny.java:35)—— 路径规划主动避水。

特殊机制

  • 永不消失:canDespawn() 覆写为 false(EntityTFBunny.java:136-139), 兔子不会因为离玩家太远而被清除。
  • 体型存档:BunnyType 写入 NBT(EntityTFBunny.java:102-123)。 源码里 4 种类型对应的贴图选择逻辑整段被注释(EntityTFBunny.java:74-97), 渲染器 RenderTFBunny 直接处理,当前随机色不改变外观。
  • 成就:在暮色森林维度内被玩家击杀触发 twilightHunter(EntityTFBunny.java:165-172)。

暮色森林的「兔子」与原版 EntityRabbit 无关:它继承 EntityCreature 而非 EntityPassive(兔子基类),因此没有洞穴刷怪 AI、繁殖 AI,也没有胡萝卜偏好。

相关条目