summaryrefslogtreecommitdiffstats
path: root/src/Entities/Floater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Entities/Floater.cpp')
-rw-r--r--src/Entities/Floater.cpp21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/Entities/Floater.cpp b/src/Entities/Floater.cpp
index 1aa0413d9..ac7a82f91 100644
--- a/src/Entities/Floater.cpp
+++ b/src/Entities/Floater.cpp
@@ -1,14 +1,19 @@
+
#include "Globals.h"
#include "Floater.h"
#include "Player.h"
#include "../ClientHandle.h"
+
+
+
+
cFloater::cFloater(double a_X, double a_Y, double a_Z, Vector3d a_Speed, int a_PlayerID) :
cEntity(etFloater, a_X, a_Y, a_Z, 0.98, 0.98),
+ m_PickupCountDown(0),
m_PlayerID(a_PlayerID),
- m_CanPickupItem(false),
- m_PickupCountDown(0)
+ m_CanPickupItem(false)
{
SetSpeed(a_Speed);
}
@@ -29,9 +34,9 @@ void cFloater::SpawnOn(cClientHandle & a_Client)
void cFloater::Tick(float a_Dt, cChunk & a_Chunk)
{
HandlePhysics(a_Dt, a_Chunk);
- if (IsBlockWater(m_World->GetBlock((int) GetPosX(), (int) GetPosY(), (int) GetPosZ())))
+ if (IsBlockWater(m_World->GetBlock((int) GetPosX(), (int) GetPosY(), (int) GetPosZ())) && m_World->GetBlockMeta((int) GetPosX(), (int) GetPosY(), (int) GetPosZ()) == 0)
{
- if (m_World->GetTickRandomNumber(100) == 0)
+ if ((!m_CanPickupItem) && (m_World->GetTickRandomNumber(100) == 0))
{
SetPosY(GetPosY() - 1);
m_CanPickupItem = true;
@@ -40,7 +45,7 @@ void cFloater::Tick(float a_Dt, cChunk & a_Chunk)
}
else
{
- SetSpeedY(1);
+ SetSpeedY(0.7);
}
}
SetSpeedX(GetSpeedX() * 0.95);
@@ -55,4 +60,8 @@ void cFloater::Tick(float a_Dt, cChunk & a_Chunk)
}
}
BroadcastMovementUpdate();
-} \ No newline at end of file
+}
+
+
+
+