diff options
author | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-04-23 22:06:46 +0200 |
---|---|---|
committer | Tiger Wang <ziwei.tiger@hotmail.co.uk> | 2014-04-23 22:06:46 +0200 |
commit | 7f5cf417de5e83641e6aa0998cc9dc8b377346b6 (patch) | |
tree | eb33b435797e5b23675fd9bb625f4c54bbbdd9a2 /src/Entities/Player.cpp | |
parent | Small changes (diff) | |
download | cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.tar cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.tar.gz cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.tar.bz2 cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.tar.lz cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.tar.xz cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.tar.zst cuberite-7f5cf417de5e83641e6aa0998cc9dc8b377346b6.zip |
Diffstat (limited to '')
-rw-r--r-- | src/Entities/Player.cpp | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp index 2df0711b4..ba4353478 100644 --- a/src/Entities/Player.cpp +++ b/src/Entities/Player.cpp @@ -76,11 +76,8 @@ cPlayer::cPlayer(cClientHandle* a_Client, const AString & a_PlayerName) cTimer t1; m_LastPlayerListTime = t1.GetNowTime(); - - m_TimeLastTeleportPacket = 0; m_PlayerName = a_PlayerName; - m_bDirtyPosition = true; // So chunks are streamed to player at spawn if (!LoadFromDisk()) { @@ -208,25 +205,22 @@ void cPlayer::Tick(float a_Dt, cChunk & a_Chunk) m_BowCharge += 1; } - //handle updating experience + // Handle updating experience if (m_bDirtyExperience) { SendExperience(); } - if (m_bDirtyPosition) + if ((GetPosition() - m_LastPos).SqrLength() != 0.0) // Change in position from last tick? { // Apply food exhaustion from movement: ApplyFoodExhaustionFromMovement(); cRoot::Get()->GetPluginManager()->CallHookPlayerMoving(*this); - BroadcastMovementUpdate(m_ClientHandle); m_ClientHandle->StreamChunks(); } - else - { - BroadcastMovementUpdate(m_ClientHandle); - } + + BroadcastMovementUpdate(m_ClientHandle); if (m_Health > 0) // make sure player is alive { @@ -1592,10 +1586,7 @@ bool cPlayer::LoadFromDisk() SetPosX(JSON_PlayerPosition[(unsigned int)0].asDouble()); SetPosY(JSON_PlayerPosition[(unsigned int)1].asDouble()); SetPosZ(JSON_PlayerPosition[(unsigned int)2].asDouble()); - m_LastPosX = GetPosX(); - m_LastPosY = GetPosY(); - m_LastPosZ = GetPosZ(); - m_LastFoodPos = GetPosition(); + m_LastPos = GetPosition(); } Json::Value & JSON_PlayerRotation = root["rotation"]; @@ -1858,9 +1849,8 @@ void cPlayer::ApplyFoodExhaustionFromMovement() } // Calculate the distance travelled, update the last pos: - Vector3d Movement(GetPosition() - m_LastFoodPos); + Vector3d Movement(GetPosition() - m_LastPos); Movement.y = 0; // Only take XZ movement into account - m_LastFoodPos = GetPosition(); // If riding anything, apply no food exhaustion if (m_AttachedTo != NULL) |