diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 60aec95d4a69f88bf6393353ae6ea54dd59d4e95..524c6272ec51d00569abdca3c50deac351d519bc 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -622,3 +622,36 @@ v3s16 LocalPlayer::getStandingNodePos() return floatToInt(getPosition() - v3f(0, BS, 0), BS); } +// Horizontal acceleration (X and Z), Y direction is ignored +void LocalPlayer::accelerateHorizontal(const v3f &target_speed, const f32 max_increase) +{ + if (max_increase == 0) + return; + + v3f d_wanted = target_speed - m_speed; + d_wanted.Y = 0; + f32 dl = d_wanted.getLength(); + if (dl > max_increase) + dl = max_increase; + + v3f d = d_wanted.normalize() * dl; + + m_speed.X += d.X; + m_speed.Z += d.Z; +} + +// Vertical acceleration (Y), X and Z directions are ignored +void LocalPlayer::accelerateVertical(const v3f &target_speed, const f32 max_increase) +{ + if (max_increase == 0) + return; + + f32 d_wanted = target_speed.Y - m_speed.Y; + if (d_wanted > max_increase) + d_wanted = max_increase; + else if (d_wanted < -max_increase) + d_wanted = -max_increase; + + m_speed.Y += d_wanted; +} + diff --git a/src/localplayer.h b/src/localplayer.h index 40a7f089edf6ab1112a96ba9452d7e507b7b11ad..3ae0c4e51d29566ffa04af1e19638df7598767f4 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -45,7 +45,7 @@ class LocalPlayer : public Player bool isAttached; v3f overridePosition; - + void move(f32 dtime, Environment *env, f32 pos_max_d); void move(f32 dtime, Environment *env, f32 pos_max_d, std::vector<CollisionInfo> *collision_info); @@ -81,6 +81,9 @@ class LocalPlayer : public Player } private: + void accelerateHorizontal(const v3f &target_speed, const f32 max_increase); + void accelerateVertical(const v3f &target_speed, const f32 max_increase); + // This is used for determining the sneaking range v3s16 m_sneak_node; // Whether the player is allowed to sneak diff --git a/src/player.cpp b/src/player.cpp index dd5e045093c0660c6387ff9f7291989a8c131660..623dde230e929bde78f1016859392729e2c17e7e 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -111,41 +111,6 @@ Player::~Player() clearHud(); } -// Horizontal acceleration (X and Z), Y direction is ignored -void Player::accelerateHorizontal(v3f target_speed, f32 max_increase) -{ - if(max_increase == 0) - return; - - v3f d_wanted = target_speed - m_speed; - d_wanted.Y = 0; - f32 dl = d_wanted.getLength(); - if(dl > max_increase) - dl = max_increase; - - v3f d = d_wanted.normalize() * dl; - - m_speed.X += d.X; - m_speed.Z += d.Z; - -} - -// Vertical acceleration (Y), X and Z directions are ignored -void Player::accelerateVertical(v3f target_speed, f32 max_increase) -{ - if(max_increase == 0) - return; - - f32 d_wanted = target_speed.Y - m_speed.Y; - if(d_wanted > max_increase) - d_wanted = max_increase; - else if(d_wanted < -max_increase) - d_wanted = -max_increase; - - m_speed.Y += d_wanted; - -} - v3s16 Player::getLightPosition() const { return floatToInt(m_position + v3f(0,BS+BS/2,0), BS); diff --git a/src/player.h b/src/player.h index 0d99297cadece6b033c9d4a44b4c9275ae696f71..50267c72cb01d6b3365710fa10dfdb54c4618dc9 100644 --- a/src/player.h +++ b/src/player.h @@ -119,9 +119,6 @@ class Player m_speed = speed; } - void accelerateHorizontal(v3f target_speed, f32 max_increase); - void accelerateVertical(v3f target_speed, f32 max_increase); - v3f getPosition() { return m_position;