summaryrefslogtreecommitdiffstats
path: root/src/Mobs/PassiveMonster.h
diff options
context:
space:
mode:
authorSafwat Halaby <SafwatHalaby@users.noreply.github.com>2015-11-30 07:58:02 +0100
committerSafwat Halaby <SafwatHalaby@users.noreply.github.com>2015-11-30 07:58:02 +0100
commit1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9 (patch)
tree0da79374832cae75ae5d9e6822712b3b62cbdbe8 /src/Mobs/PassiveMonster.h
parentUpdated DumpInfo plugin (diff)
parentimplement breeding (diff)
downloadcuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.tar
cuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.tar.gz
cuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.tar.bz2
cuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.tar.lz
cuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.tar.xz
cuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.tar.zst
cuberite-1a9c023d6c69d5aa37ed0d3726e0f4af77b974f9.zip
Diffstat (limited to 'src/Mobs/PassiveMonster.h')
-rw-r--r--src/Mobs/PassiveMonster.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/Mobs/PassiveMonster.h b/src/Mobs/PassiveMonster.h
index a7e574a1d..ecce4ceb6 100644
--- a/src/Mobs/PassiveMonster.h
+++ b/src/Mobs/PassiveMonster.h
@@ -16,6 +16,7 @@ public:
cPassiveMonster(const AString & a_ConfigName, eMonsterType a_MobType, const AString & a_SoundHurt, const AString & a_SoundDeath, double a_Width, double a_Height);
virtual void Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override;
+ virtual void OnRightClicked(cPlayer & a_Player) override;
/** When hit by someone, run away */
virtual bool DoTakeDamage(TakeDamageInfo & a_TDI) override;
@@ -23,7 +24,22 @@ public:
/** Returns the items that the animal of this class follows when a player holds it in hand. */
virtual void GetFollowedItems(cItems & a_Items) { }
-} ;
+ /** Returns the items that make the animal breed - this is usually the same as the ones that make the animal follow, but not necessarily. */
+ virtual void GetBreedingItems(cItems & a_Items) { GetFollowedItems(a_Items); }
+
+ cPassiveMonster * GetPartner(void) const { return m_LovePartner; }
+ void EngageLoveMode(cPassiveMonster * a_Partner);
+ void ResetLoveMode();
+
+ bool IsInLove() const { return (m_LoveTimer > 0); }
+ bool IsInLoveCooldown() const { return (m_LoveCooldown > 0); }
+
+protected:
+ cPassiveMonster * m_LovePartner;
+ int m_LoveTimer;
+ int m_LoveCooldown;
+ int m_MatingTimer;
+};