summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Cow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Mobs/Cow.cpp')
-rw-r--r--src/Mobs/Cow.cpp39
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);
}