summaryrefslogtreecommitdiffstats
path: root/src/Mobs/Behaviors
diff options
context:
space:
mode:
authorLogicParrot <LogicParrot@users.noreply.github.com>2017-08-24 22:21:25 +0200
committerLogicParrot <LogicParrot@users.noreply.github.com>2017-08-24 22:21:25 +0200
commit810230b5466f1363d69763670fc9b85fa385c99a (patch)
treea9d4dcfd43ac28ef2fb9e61e73a34f7246a695bb /src/Mobs/Behaviors
parentMerge branch 'master' into mobs2 (diff)
downloadcuberite-810230b5466f1363d69763670fc9b85fa385c99a.tar
cuberite-810230b5466f1363d69763670fc9b85fa385c99a.tar.gz
cuberite-810230b5466f1363d69763670fc9b85fa385c99a.tar.bz2
cuberite-810230b5466f1363d69763670fc9b85fa385c99a.tar.lz
cuberite-810230b5466f1363d69763670fc9b85fa385c99a.tar.xz
cuberite-810230b5466f1363d69763670fc9b85fa385c99a.tar.zst
cuberite-810230b5466f1363d69763670fc9b85fa385c99a.zip
Diffstat (limited to '')
-rw-r--r--src/Mobs/Behaviors/Behavior.h2
-rw-r--r--src/Mobs/Behaviors/BehaviorAggressive.h2
-rw-r--r--src/Mobs/Behaviors/BehaviorBreeder.cpp4
-rw-r--r--src/Mobs/Behaviors/BehaviorBreeder.h2
-rw-r--r--src/Mobs/Behaviors/BehaviorChaser.cpp5
-rw-r--r--src/Mobs/Behaviors/BehaviorChaser.h3
-rw-r--r--src/Mobs/Behaviors/BehaviorCoward.cpp5
-rw-r--r--src/Mobs/Behaviors/BehaviorCoward.h2
-rw-r--r--src/Mobs/Behaviors/BehaviorDayLightBurner.h2
-rw-r--r--src/Mobs/Behaviors/BehaviorItemFollower.cpp2
-rw-r--r--src/Mobs/Behaviors/BehaviorItemFollower.h2
-rw-r--r--src/Mobs/Behaviors/BehaviorWanderer.cpp2
-rw-r--r--src/Mobs/Behaviors/BehaviorWanderer.h2
13 files changed, 22 insertions, 13 deletions
diff --git a/src/Mobs/Behaviors/Behavior.h b/src/Mobs/Behaviors/Behavior.h
index 0b554ec62..1bfefbf8d 100644
--- a/src/Mobs/Behaviors/Behavior.h
+++ b/src/Mobs/Behaviors/Behavior.h
@@ -9,8 +9,6 @@ class cMonster;
class cBehavior
{
public:
- virtual void AttachToMonster(cMonster & a_Parent) = 0;
-
// Tick-related
virtual bool IsControlDesired(std::chrono::milliseconds a_Dt, cChunk & a_Chunk);
virtual bool ControlStarting(std::chrono::milliseconds a_Dt, cChunk & a_Chunk);
diff --git a/src/Mobs/Behaviors/BehaviorAggressive.h b/src/Mobs/Behaviors/BehaviorAggressive.h
index 7dc7060c7..8905b7341 100644
--- a/src/Mobs/Behaviors/BehaviorAggressive.h
+++ b/src/Mobs/Behaviors/BehaviorAggressive.h
@@ -19,7 +19,7 @@ class cBehaviorAggressive : public cBehavior
{
public:
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent);
// cBehaviorAggressive(cMonster * a_Parent, bool a_HatesPlayer);
// TODO agression toward specific players, and specific mobtypes, etc
diff --git a/src/Mobs/Behaviors/BehaviorBreeder.cpp b/src/Mobs/Behaviors/BehaviorBreeder.cpp
index b32fafc8c..bc0c8d3ea 100644
--- a/src/Mobs/Behaviors/BehaviorBreeder.cpp
+++ b/src/Mobs/Behaviors/BehaviorBreeder.cpp
@@ -23,6 +23,7 @@ cBehaviorBreeder::cBehaviorBreeder() :
void cBehaviorBreeder::AttachToMonster(cMonster & a_Parent)
{
+ LOGD("mobDebug - Behavior Breeder: Attach");
m_Parent = &a_Parent;
m_Parent->AttachTickBehavior(this);
m_Parent->AttachPostTickBehavior(this);
@@ -36,6 +37,7 @@ void cBehaviorBreeder::AttachToMonster(cMonster & a_Parent)
void cBehaviorBreeder::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
{
+ LOGD("mobDebug - Behavior Breeder: Tick");
UNUSED(a_Dt);
UNUSED(a_Chunk);
cWorld * World = m_Parent->GetWorld();
@@ -88,6 +90,7 @@ void cBehaviorBreeder::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
void cBehaviorBreeder::PostTick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
{
+ LOGD("mobDebug - Behavior Breeder: PostTick");
UNUSED(a_Dt);
UNUSED(a_Chunk);
if (m_MatingTimer > 0)
@@ -179,6 +182,7 @@ bool cBehaviorBreeder::IsControlDesired(std::chrono::milliseconds a_Dt, cChunk &
void cBehaviorBreeder::Destroyed()
{
+ LOGD("mobDebug - Behavior Breeder: Destroyed");
if (m_LovePartner != nullptr)
{
m_LovePartner->GetBehaviorBreeder()->ResetLoveMode();
diff --git a/src/Mobs/Behaviors/BehaviorBreeder.h b/src/Mobs/Behaviors/BehaviorBreeder.h
index 576234066..94830c42b 100644
--- a/src/Mobs/Behaviors/BehaviorBreeder.h
+++ b/src/Mobs/Behaviors/BehaviorBreeder.h
@@ -19,7 +19,7 @@ class cBehaviorBreeder : public cBehavior
public:
cBehaviorBreeder();
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent);
// Functions our host Monster should invoke:
bool IsControlDesired(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override;
diff --git a/src/Mobs/Behaviors/BehaviorChaser.cpp b/src/Mobs/Behaviors/BehaviorChaser.cpp
index 8e2a70bd4..dd9f193d6 100644
--- a/src/Mobs/Behaviors/BehaviorChaser.cpp
+++ b/src/Mobs/Behaviors/BehaviorChaser.cpp
@@ -23,9 +23,10 @@ cBehaviorChaser::cBehaviorChaser() :
-void cBehaviorChaser::AttachToMonster(cMonster & a_Parent)
+void cBehaviorChaser::AttachToMonster(cMonster & a_Parent, cBehaviorStriker & a_ParentStriker)
{
m_Parent = &a_Parent;
+ m_ParentStriker = &a_ParentStriker;
m_Parent->AttachTickBehavior(this);
m_Parent->AttachDestroyBehavior(this);
m_Parent->AttachPostTickBehavior(this);
@@ -245,7 +246,7 @@ void cBehaviorChaser::StrikeTarget()
{
if (m_AttackCoolDownTicksLeft != 0)
{
- cBehaviorStriker * Striker = m_Parent->GetBehaviorStriker();
+ cBehaviorStriker * Striker = m_ParentStriker;
if (Striker != nullptr)
{
// Striker->Strike(m_Target); //mobTodo
diff --git a/src/Mobs/Behaviors/BehaviorChaser.h b/src/Mobs/Behaviors/BehaviorChaser.h
index a40be6aba..1c64c7b07 100644
--- a/src/Mobs/Behaviors/BehaviorChaser.h
+++ b/src/Mobs/Behaviors/BehaviorChaser.h
@@ -18,7 +18,7 @@ class cBehaviorChaser : public cBehavior
public:
cBehaviorChaser();
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent, cBehaviorStriker & a_ParentStriker);
// Functions our host Monster should invoke:
bool IsControlDesired(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override;
@@ -44,6 +44,7 @@ private:
/** Our parent */
cMonster * m_Parent;
+ cBehaviorStriker * m_ParentStriker;
// The mob we want to attack
cPawn * m_Target;
diff --git a/src/Mobs/Behaviors/BehaviorCoward.cpp b/src/Mobs/Behaviors/BehaviorCoward.cpp
index d23da5ac6..94997f065 100644
--- a/src/Mobs/Behaviors/BehaviorCoward.cpp
+++ b/src/Mobs/Behaviors/BehaviorCoward.cpp
@@ -16,10 +16,9 @@ cBehaviorCoward::cBehaviorCoward() :
void cBehaviorCoward::AttachToMonster(cMonster & a_Parent)
{
+ LOGD("mobDebug - Behavior Coward: Attach");
m_Parent = &a_Parent;
m_Parent->AttachTickBehavior(this);
- m_Parent->AttachDestroyBehavior(this);
- m_Parent->AttachPostTickBehavior(this);
m_Parent->AttachDoTakeDamageBehavior(this);
}
@@ -40,6 +39,7 @@ bool cBehaviorCoward::IsControlDesired(std::chrono::milliseconds a_Dt, cChunk &
void cBehaviorCoward::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
{
+ LOGD("mobDebug - Behavior Coward: Tick");
UNUSED(a_Dt);
UNUSED(a_Chunk);
if (m_Attacker == nullptr)
@@ -66,6 +66,7 @@ void cBehaviorCoward::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
void cBehaviorCoward::DoTakeDamage(TakeDamageInfo & a_TDI)
{
+ LOGD("mobDebug - Behavior Coward: DoTakeDamage");
if ((a_TDI.Attacker != m_Parent) && (a_TDI.Attacker != nullptr))
{
m_Attacker = a_TDI.Attacker;
diff --git a/src/Mobs/Behaviors/BehaviorCoward.h b/src/Mobs/Behaviors/BehaviorCoward.h
index b72dbaf41..f33ab38c8 100644
--- a/src/Mobs/Behaviors/BehaviorCoward.h
+++ b/src/Mobs/Behaviors/BehaviorCoward.h
@@ -14,7 +14,7 @@ class cBehaviorCoward : cBehavior
{
public:
cBehaviorCoward();
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent);
// Functions our host Monster should invoke:
bool IsControlDesired(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override;
diff --git a/src/Mobs/Behaviors/BehaviorDayLightBurner.h b/src/Mobs/Behaviors/BehaviorDayLightBurner.h
index 0acdeea40..d1299c0c6 100644
--- a/src/Mobs/Behaviors/BehaviorDayLightBurner.h
+++ b/src/Mobs/Behaviors/BehaviorDayLightBurner.h
@@ -12,7 +12,7 @@ class cChunk;
class cBehaviorDayLightBurner : cBehavior
{
public:
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent);
void PostTick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override;
bool WouldBurnAt(Vector3d a_Location, cChunk & a_Chunk);
diff --git a/src/Mobs/Behaviors/BehaviorItemFollower.cpp b/src/Mobs/Behaviors/BehaviorItemFollower.cpp
index d10b46776..421334455 100644
--- a/src/Mobs/Behaviors/BehaviorItemFollower.cpp
+++ b/src/Mobs/Behaviors/BehaviorItemFollower.cpp
@@ -8,6 +8,7 @@
void cBehaviorItemFollower::AttachToMonster(cMonster & a_Parent)
{
+ LOGD("mobDebug - Behavior ItemFollower: Attach");
m_Parent = &a_Parent;
m_Parent->AttachTickBehavior(this);
}
@@ -43,6 +44,7 @@ bool cBehaviorItemFollower::IsControlDesired(std::chrono::milliseconds a_Dt, cCh
void cBehaviorItemFollower::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
{
+ LOGD("mobDebug - Behavior ItemFollower: Tick");
UNUSED(a_Dt);
UNUSED(a_Chunk);
cItems FollowedItems;
diff --git a/src/Mobs/Behaviors/BehaviorItemFollower.h b/src/Mobs/Behaviors/BehaviorItemFollower.h
index 277323ab1..c84779a5e 100644
--- a/src/Mobs/Behaviors/BehaviorItemFollower.h
+++ b/src/Mobs/Behaviors/BehaviorItemFollower.h
@@ -12,7 +12,7 @@ class cItems;
class cBehaviorItemFollower : public cBehavior
{
public:
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent);
void GetBreedingItems(cItems & a_Items);
diff --git a/src/Mobs/Behaviors/BehaviorWanderer.cpp b/src/Mobs/Behaviors/BehaviorWanderer.cpp
index 44dda077b..39fde8373 100644
--- a/src/Mobs/Behaviors/BehaviorWanderer.cpp
+++ b/src/Mobs/Behaviors/BehaviorWanderer.cpp
@@ -15,6 +15,7 @@ cBehaviorWanderer::cBehaviorWanderer() : m_IdleInterval(0)
void cBehaviorWanderer::AttachToMonster(cMonster & a_Parent)
{
+ LOGD("mobDebug - Behavior Wanderer: Attach");
m_Parent = &a_Parent;
m_Parent->AttachTickBehavior(this);
}
@@ -38,6 +39,7 @@ bool cBehaviorWanderer::IsControlDesired(std::chrono::milliseconds a_Dt, cChunk
void cBehaviorWanderer::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
{
+ LOGD("mobDebug - Behavior Wanderer: Tick");
if (m_Parent->IsPathFinderActivated())
{
return; // Still getting there
diff --git a/src/Mobs/Behaviors/BehaviorWanderer.h b/src/Mobs/Behaviors/BehaviorWanderer.h
index 90dddcebc..577881c2f 100644
--- a/src/Mobs/Behaviors/BehaviorWanderer.h
+++ b/src/Mobs/Behaviors/BehaviorWanderer.h
@@ -13,7 +13,7 @@ class cBehaviorWanderer : cBehavior
public:
cBehaviorWanderer();
- void AttachToMonster(cMonster & a_Parent) override;
+ void AttachToMonster(cMonster & a_Parent);
// Functions our host Monster should invoke:
bool IsControlDesired(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) override;