diff options
Diffstat (limited to 'src/Mobs/Cow.cpp')
-rw-r--r-- | src/Mobs/Cow.cpp | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/Mobs/Cow.cpp b/src/Mobs/Cow.cpp index 9736fe440..f3c5c821b 100644 --- a/src/Mobs/Cow.cpp +++ b/src/Mobs/Cow.cpp @@ -6,13 +6,15 @@ - - - - cCow::cCow(void) : - super("Cow", mtCow, "entity.cow.hurt", "entity.cow.death", 0.9, 1.3) + super("Cow", mtCow, "entity.cow.hurt", "entity.cow.death", 0.9, 1.3), + m_BehaviorItemReplacer(E_ITEM_BUCKET, E_ITEM_MILK) { + m_BehaviorBreeder.AttachToMonster(*this); + m_BehaviorCoward.AttachToMonster(*this); + m_BehaviorItemFollower.AttachToMonster(*this); + m_BehaviorWanderer.AttachToMonster(*this); + m_BehaviorItemReplacer.AttachToMonster(*this); } @@ -34,17 +36,22 @@ void cCow::GetDrops(cItems & a_Drops, cEntity * a_Killer) -void cCow::OnRightClicked(cPlayer & a_Player) + + + + + + +cBehaviorBreeder * cCow::GetBehaviorBreeder() { - super::OnRightClicked(a_Player); + return &m_BehaviorBreeder; +} - short HeldItem = a_Player.GetEquippedItem().m_ItemType; - if (HeldItem == E_ITEM_BUCKET) - { - if (!a_Player.IsGameModeCreative()) - { - a_Player.GetInventory().RemoveOneEquippedItem(); - a_Player.GetInventory().AddItem(E_ITEM_MILK); - } - } + + + + +const cBehaviorBreeder * cCow::GetBehaviorBreeder() const +{ + return static_cast<const cBehaviorBreeder *>(&m_BehaviorBreeder); } |