Merge pull request #461 from mc-server/repeaters
Repeaters, pressure plates, and others
This commit is contained in:
@@ -252,6 +252,11 @@ void cPlayer::Tick(float a_Dt, cChunk & a_Chunk)
|
||||
m_World->SendPlayerList(this);
|
||||
m_LastPlayerListTime = t1.GetNowTime();
|
||||
}
|
||||
|
||||
if (IsFlying())
|
||||
{
|
||||
m_LastGroundHeight = (float)GetPosY();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -452,10 +457,16 @@ void cPlayer::SetTouchGround(bool a_bTouchGround)
|
||||
if (m_LastJumpHeight > m_LastGroundHeight) Damage++;
|
||||
m_LastJumpHeight = (float)GetPosY();
|
||||
|
||||
if ((Damage > 0) && (!IsGameModeCreative()))
|
||||
if (Damage > 0)
|
||||
{
|
||||
TakeDamage(dtFalling, NULL, Damage, Damage, 0);
|
||||
}
|
||||
if (!IsGameModeCreative())
|
||||
{
|
||||
TakeDamage(dtFalling, NULL, Damage, Damage, 0);
|
||||
}
|
||||
|
||||
// Mojang uses floor() to get X and Z positions, instead of just casting it to an (int)
|
||||
GetWorld()->BroadcastSoundParticleEffect(2006, (int)floor(GetPosX()), (int)GetPosY() - 1, (int)floor(GetPosZ()), Damage /* Used as particle effect speed modifier */);
|
||||
}
|
||||
|
||||
m_LastGroundHeight = (float)GetPosY();
|
||||
}
|
||||
@@ -979,6 +990,12 @@ void cPlayer::SetGameMode(eGameMode a_GameMode)
|
||||
|
||||
m_GameMode = a_GameMode;
|
||||
m_ClientHandle->SendGameMode(a_GameMode);
|
||||
|
||||
if (!IsGameModeCreative())
|
||||
{
|
||||
SetFlying(false);
|
||||
SetCanFly(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user