Boats drop a boat pickup when destroyed by hand. You can now actualy use boats.
This commit is contained in:
parent
459d636948
commit
199123d4f2
@ -39,6 +39,15 @@ void cBoat::DoTakeDamage(TakeDamageInfo & TDI)
|
|||||||
|
|
||||||
if (GetHealth() == 0)
|
if (GetHealth() == 0)
|
||||||
{
|
{
|
||||||
|
if (TDI.Attacker != NULL)
|
||||||
|
{
|
||||||
|
if (TDI.Attacker->IsPlayer())
|
||||||
|
{
|
||||||
|
cItems Pickups;
|
||||||
|
Pickups.Add(cItem(E_ITEM_BOAT));
|
||||||
|
m_World->SpawnItemPickups(Pickups, GetPosX(), GetPosY(), GetPosZ(), 0, 0, 0, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
Destroy(true);
|
Destroy(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,12 +85,32 @@ void cBoat::OnRightClicked(cPlayer & a_Player)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void cBoat::HandlePhysics(float a_Dt, cChunk & a_Chunk)
|
void cBoat::Tick(float a_Dt, cChunk & a_Chunk)
|
||||||
{
|
{
|
||||||
super::HandlePhysics(a_Dt, a_Chunk);
|
super::Tick(a_Dt, a_Chunk);
|
||||||
BroadcastMovementUpdate();
|
BroadcastMovementUpdate();
|
||||||
|
SetSpeed(GetSpeed() * 0.97); // Slowly decrease the speed.
|
||||||
|
if (IsBlockWater(m_World->GetBlock((int) GetPosX(), (int) GetPosY(), (int) GetPosZ())))
|
||||||
|
{
|
||||||
|
SetSpeedY(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void cBoat::HandleSpeedFromAttachee(float a_Forward, float a_Sideways)
|
||||||
|
{
|
||||||
|
if (GetSpeed().Length() > 7)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3d ToAddSpeed(m_Attachee->GetLookVector() * (a_Sideways * 1.5));
|
||||||
|
ToAddSpeed.y = 0;
|
||||||
|
|
||||||
|
AddSpeed(ToAddSpeed);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -27,7 +27,8 @@ public:
|
|||||||
virtual void SpawnOn(cClientHandle & a_ClientHandle) override;
|
virtual void SpawnOn(cClientHandle & a_ClientHandle) override;
|
||||||
virtual void OnRightClicked(cPlayer & a_Player) override;
|
virtual void OnRightClicked(cPlayer & a_Player) override;
|
||||||
virtual void DoTakeDamage(TakeDamageInfo & TDI) override;
|
virtual void DoTakeDamage(TakeDamageInfo & TDI) override;
|
||||||
virtual void HandlePhysics(float a_Dt, cChunk & a_Chunk) override;
|
virtual void Tick(float a_Dt, cChunk & a_Chunk) override;
|
||||||
|
virtual void HandleSpeedFromAttachee(float a_Forward, float a_Sideways) override;
|
||||||
|
|
||||||
cBoat(double a_X, double a_Y, double a_Z);
|
cBoat(double a_X, double a_Y, double a_Z);
|
||||||
} ;
|
} ;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user