Changed air drag units to 'interpolated ticks' per second
This commit is contained in:
parent
d315534b76
commit
45c84ea933
@ -51,7 +51,7 @@ cArrowEntity::cArrowEntity(cPlayer & a_Player, double a_Force) :
|
|||||||
m_PickupState = psInCreative;
|
m_PickupState = psInCreative;
|
||||||
}
|
}
|
||||||
SetGravity(-20.0f);
|
SetGravity(-20.0f);
|
||||||
SetAirDrag(0.2f);
|
SetAirDrag(0.01f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ cBoat::cBoat(double a_X, double a_Y, double a_Z) :
|
|||||||
{
|
{
|
||||||
SetMass(20.0f);
|
SetMass(20.0f);
|
||||||
SetGravity(-16.0f);
|
SetGravity(-16.0f);
|
||||||
SetAirDrag(1.0f);
|
SetAirDrag(0.05f);
|
||||||
SetMaxHealth(6);
|
SetMaxHealth(6);
|
||||||
SetHealth(6);
|
SetHealth(6);
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ cEntity::cEntity(eEntityType a_EntityType, double a_X, double a_Y, double a_Z, d
|
|||||||
m_bHasSentNoSpeed(true),
|
m_bHasSentNoSpeed(true),
|
||||||
m_bOnGround(false),
|
m_bOnGround(false),
|
||||||
m_Gravity(-9.81f),
|
m_Gravity(-9.81f),
|
||||||
m_AirDrag(0.4f),
|
m_AirDrag(0.02f),
|
||||||
m_LastPos(a_X, a_Y, a_Z),
|
m_LastPos(a_X, a_Y, a_Z),
|
||||||
m_IsInitialized(false),
|
m_IsInitialized(false),
|
||||||
m_WorldTravellingFrom(nullptr),
|
m_WorldTravellingFrom(nullptr),
|
||||||
@ -944,7 +944,7 @@ void cEntity::HandlePhysics(std::chrono::milliseconds a_Dt, cChunk & a_Chunk)
|
|||||||
{
|
{
|
||||||
// Normal gravity
|
// Normal gravity
|
||||||
fallspeed = m_Gravity * DtSec.count();
|
fallspeed = m_Gravity * DtSec.count();
|
||||||
NextSpeed -= NextSpeed * m_AirDrag * DtSec.count();
|
NextSpeed -= NextSpeed * (m_AirDrag * 20.0f) * DtSec.count();
|
||||||
}
|
}
|
||||||
NextSpeed.y += static_cast<float>(fallspeed);
|
NextSpeed.y += static_cast<float>(fallspeed);
|
||||||
}
|
}
|
||||||
|
@ -508,8 +508,10 @@ protected:
|
|||||||
For realistic effects, this should be negative. For spaaaaaaace, this can be zero or even positive */
|
For realistic effects, this should be negative. For spaaaaaaace, this can be zero or even positive */
|
||||||
float m_Gravity;
|
float m_Gravity;
|
||||||
|
|
||||||
/** Stores the air drag that is applied to the entity every tick, measured in speed ratio per second
|
/** Stores the air drag that is applied to the entity every tick, measured in speed ratio per tick
|
||||||
Acts as air friction and slows down flight */
|
Acts as air friction and slows down flight
|
||||||
|
Will be interpolated if the server tick rate varies
|
||||||
|
Data: http://minecraft.gamepedia.com/Entity#Motion_of_entities */
|
||||||
float m_AirDrag;
|
float m_AirDrag;
|
||||||
|
|
||||||
/** Last position sent to client via the Relative Move or Teleport packets (not Velocity)
|
/** Last position sent to client via the Relative Move or Teleport packets (not Velocity)
|
||||||
|
@ -17,7 +17,7 @@ cFallingBlock::cFallingBlock(const Vector3i & a_BlockPosition, BLOCKTYPE a_Block
|
|||||||
m_OriginalPosition(a_BlockPosition)
|
m_OriginalPosition(a_BlockPosition)
|
||||||
{
|
{
|
||||||
SetGravity(-16.0f);
|
SetGravity(-16.0f);
|
||||||
SetAirDrag(0.4f);
|
SetAirDrag(0.02f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ cMinecart::cMinecart(ePayload a_Payload, double a_X, double a_Y, double a_Z) :
|
|||||||
{
|
{
|
||||||
SetMass(20.0f);
|
SetMass(20.0f);
|
||||||
SetGravity(-16.0f);
|
SetGravity(-16.0f);
|
||||||
SetAirDrag(1.0f);
|
SetAirDrag(0.05f);
|
||||||
SetMaxHealth(6);
|
SetMaxHealth(6);
|
||||||
SetHealth(6);
|
SetHealth(6);
|
||||||
SetWidth(1);
|
SetWidth(1);
|
||||||
|
@ -14,7 +14,7 @@ cPawn::cPawn(eEntityType a_EntityType, double a_Width, double a_Height) :
|
|||||||
, m_EntityEffects(tEffectMap())
|
, m_EntityEffects(tEffectMap())
|
||||||
{
|
{
|
||||||
SetGravity(-32.0f);
|
SetGravity(-32.0f);
|
||||||
SetAirDrag(0.4f);
|
SetAirDrag(0.02f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ cProjectileEntity::cProjectileEntity(eKind a_Kind, cEntity * a_Creator, double a
|
|||||||
m_IsInGround(false)
|
m_IsInGround(false)
|
||||||
{
|
{
|
||||||
SetGravity(-12.0f);
|
SetGravity(-12.0f);
|
||||||
SetAirDrag(0.2f);
|
SetAirDrag(0.01f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -245,7 +245,7 @@ cProjectileEntity::cProjectileEntity(eKind a_Kind, cEntity * a_Creator, const Ve
|
|||||||
SetYawFromSpeed();
|
SetYawFromSpeed();
|
||||||
SetPitchFromSpeed();
|
SetPitchFromSpeed();
|
||||||
SetGravity(-12.0f);
|
SetGravity(-12.0f);
|
||||||
SetAirDrag(0.2f);
|
SetAirDrag(0.01f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -395,7 +395,7 @@ void cProjectileEntity::HandlePhysics(std::chrono::milliseconds a_Dt, cChunk & a
|
|||||||
// Add slowdown and gravity effect to the speed:
|
// Add slowdown and gravity effect to the speed:
|
||||||
Vector3d NewSpeed(GetSpeed());
|
Vector3d NewSpeed(GetSpeed());
|
||||||
NewSpeed.y += m_Gravity * DtSec.count();
|
NewSpeed.y += m_Gravity * DtSec.count();
|
||||||
NewSpeed -= NewSpeed * m_AirDrag * DtSec.count();
|
NewSpeed -= NewSpeed * (m_AirDrag * 20.0f) * DtSec.count();
|
||||||
SetSpeed(NewSpeed);
|
SetSpeed(NewSpeed);
|
||||||
SetYawFromSpeed();
|
SetYawFromSpeed();
|
||||||
SetPitchFromSpeed();
|
SetPitchFromSpeed();
|
||||||
|
@ -13,7 +13,7 @@ cTNTEntity::cTNTEntity(double a_X, double a_Y, double a_Z, int a_FuseTicks) :
|
|||||||
m_FuseTicks(a_FuseTicks)
|
m_FuseTicks(a_FuseTicks)
|
||||||
{
|
{
|
||||||
SetGravity(-16.0f);
|
SetGravity(-16.0f);
|
||||||
SetAirDrag(0.4f);
|
SetAirDrag(0.02f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
cBat::cBat(void) :
|
cBat::cBat(void) :
|
||||||
super("Bat", mtBat, "mob.bat.hurt", "mob.bat.death", 0.5, 0.9)
|
super("Bat", mtBat, "mob.bat.hurt", "mob.bat.death", 0.5, 0.9)
|
||||||
{
|
{
|
||||||
|
SetGravity(-2.0f);
|
||||||
|
SetAirDrag(0.05f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ cBlaze::cBlaze(void) :
|
|||||||
super("Blaze", mtBlaze, "mob.blaze.hit", "mob.blaze.death", 0.6, 1.8)
|
super("Blaze", mtBlaze, "mob.blaze.hit", "mob.blaze.death", 0.6, 1.8)
|
||||||
{
|
{
|
||||||
SetGravity(-8.0f);
|
SetGravity(-8.0f);
|
||||||
SetAirDrag(0.8f);
|
SetAirDrag(0.05f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user