diff options
author | STRWarrior <niels.breuker@hotmail.nl> | 2013-11-10 20:12:30 +0100 |
---|---|---|
committer | STRWarrior <niels.breuker@hotmail.nl> | 2013-11-10 20:12:30 +0100 |
commit | e62858ec3d027de8c5c4605913ab6261ec19d624 (patch) | |
tree | d1e3427af68ac13f35af69bf53bff2005a21e664 | |
parent | The owner object isn't stored anymore. Instead we use the name of the player. (diff) | |
download | cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.tar cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.tar.gz cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.tar.bz2 cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.tar.lz cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.tar.xz cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.tar.zst cuberite-e62858ec3d027de8c5c4605913ab6261ec19d624.zip |
-rw-r--r-- | source/Mobs/Wolf.cpp | 15 | ||||
-rw-r--r-- | source/Mobs/Wolf.h | 10 | ||||
-rw-r--r-- | source/Protocol/Protocol17x.cpp | 2 |
3 files changed, 20 insertions, 7 deletions
diff --git a/source/Mobs/Wolf.cpp b/source/Mobs/Wolf.cpp index 6d1c5565c..9880a3442 100644 --- a/source/Mobs/Wolf.cpp +++ b/source/Mobs/Wolf.cpp @@ -16,7 +16,8 @@ cWolf::cWolf(void) : m_bIsTame(false), m_bIsSitting(false), m_bIsBegging(false), - m_bOwner("") + m_bOwner(""), + m_bCollar(14) { } @@ -66,7 +67,15 @@ void cWolf::OnRightClicked(cPlayer & a_Player) { if (a_Player.GetName() == m_bOwner) // Is the player the owner of the dog? { - if (IsSitting()) + if (a_Player.GetEquippedItem().m_ItemType == E_ITEM_DYE) + { + m_bCollar = 15 - a_Player.GetEquippedItem().m_ItemDamage; + if (!a_Player.IsGameModeCreative()) + { + a_Player.GetInventory().RemoveOneEquippedItem(); + } + } + else if (IsSitting()) { SetIsSitting(false); } @@ -144,7 +153,7 @@ void cWolf::Tick(float a_Dt, cChunk & a_Chunk) Vector3f OwnerCoords; } ; cCallback Callback; - m_World->FindAndDoWithPlayer(m_bOwner, Callback); + m_World->DoWithPlayer(m_bOwner, Callback); Vector3f OwnerCoords = Callback.OwnerCoords; if (IsTame()) diff --git a/source/Mobs/Wolf.h b/source/Mobs/Wolf.h index fb6bb2355..2afca8086 100644 --- a/source/Mobs/Wolf.h +++ b/source/Mobs/Wolf.h @@ -28,6 +28,7 @@ public: bool IsBegging(void) const { return m_bIsBegging; } bool IsAngry(void) const { return m_bIsAngry; } AString GetOwner(void) const { return m_bOwner; } + int GetCollarColor(void) const { return m_bCollar; } // Set functions void SetIsSitting(bool a_IsSitting) { m_bIsSitting = a_IsSitting; } @@ -38,11 +39,12 @@ public: private: - bool m_bIsSitting; - bool m_bIsTame; - bool m_bIsBegging; - bool m_bIsAngry; + bool m_bIsSitting; + bool m_bIsTame; + bool m_bIsBegging; + bool m_bIsAngry; AString m_bOwner; + int m_bCollar; } ; diff --git a/source/Protocol/Protocol17x.cpp b/source/Protocol/Protocol17x.cpp index ebf8f6c33..5022d6dbc 100644 --- a/source/Protocol/Protocol17x.cpp +++ b/source/Protocol/Protocol17x.cpp @@ -1752,6 +1752,8 @@ void cProtocol172::cPacketizer::WriteMobMetadata(const cMonster & a_Mob) WriteFloat((float)(a_Mob.GetHealth())); WriteByte(0x13); WriteByte(Wolf.IsBegging() ? 1 : 0); + WriteByte(0x14); + WriteByte(Wolf.GetCollarColor()); break; } |