Wild Deer(野鹿)

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

基本信息

属性 值 来源
注册实体名 TwilightForest:Wild Deer TwilightForestMod.java:450
实体 ID 常量 idMobWildDeer = 179 TwilightForestMod.java:1083
蛋色 主 0x7b4d2e / 副 0x4b241d TwilightForestMod.java:452-453
类 twilightforest.entity.passive.EntityTFDeer(121 行) entity/passive/EntityTFDeer.java:24
父类 net.minecraft.entity.passive.EntityCow EntityTFDeer.java:24
体型 setSize(0.7F, 2.3F) EntityTFDeer.java:29
所在群系 暮色森林基础群系刷怪表,权重 15、4~5 只(三类食草动物里权重最高) biomes/TFBiomeBase.java:118

类上的 javadoc 写「Deer are like quiet, non-milkable cows!」 (EntityTFDeer.java:16-23)—— 确实继承的是奶牛 EntityCow。

数值

属性 值 来源
maxHealth 源码中未设置 —— 完全沿用 EntityCow 的原版值 EntityTFDeer.java 全文无 applyEntityAttributes
movementSpeed 源码中未设置 —— 沿用 EntityCow 同上
体型宽 / 高 0.7 / 2.3 EntityTFDeer.java:29
皮革掉落数 rand.nextInt(3) + rand.nextInt(1 + looting) EntityTFDeer.java:83
鹿肉掉落数 rand.nextInt(3) + 1 + rand.nextInt(1 + looting)(至少 1 块) EntityTFDeer.java:90

构造函数里 31-40 行是一整段被注释掉的 AI 覆写(含 EntityAITFPanicOnFlockDeath、EntityAIMate、EntityAITempt(Items.wheat))。 因此它用的是原版奶牛的 AI —— 会被小麦吸引、跟随小牛犊、会挤奶。 唯一被真正禁掉的是挤奶(见下)。

机制

  • 不可挤奶:interact 覆写 —— 手持桶时直接 return false (EntityTFDeer.java:67-76),其它情况才走 super.interact。 ⚠️ 但 EntityCow.interact 的挤奶判定用的是 Items.bucket, 而原版 EntityCow 还会在桶里得到 Items.milk_bucket;本类只是把入口关掉。
  • 完全静音:getLivingSound() 返回 null(EntityTFDeer.java:51-54), 脚步声 func_145780_a 是空方法体(第 60-62 行,播放语句被注释)—— 鹿是暮色森林里唯一没有待机音也没有脚步声的大型动物。
  • 肉随燃烧状态变:dropFewItems 里若 isBurning() 掉 TFItems.venisonCooked(熟鹿肉),否则掉 TFItems.venisonRaw(生鹿肉) (EntityTFDeer.java:93-97)。皮革则无论是否燃烧都掉。
  • 繁殖:createChild 返回新的 EntityTFDeer(EntityTFDeer.java:104-107)。
  • 成就:在暮色森林维度内被玩家击杀触发 twilightHunter(EntityTFDeer.java:113-118)。

相关条目