Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Move player collisionbox to player class
- Loading branch information
Showing
with
15 additions
and
19 deletions.
-
+7
−2
src/content_sao.cpp
-
+1
−16
src/localplayer.cpp
-
+2
−1
src/player.cpp
-
+5
−0
src/player.h
|
@@ -1472,6 +1472,11 @@ std::string PlayerSAO::getPropertyPacket() |
|
|
} |
|
|
|
|
|
bool PlayerSAO::getCollisionBox(aabb3f *toset) { |
|
|
//player collision handling is already done clientside no need to do it twice |
|
|
return false; |
|
|
//update collision box |
|
|
*toset = m_player->getCollisionbox(); |
|
|
|
|
|
toset->MinEdge += m_base_position; |
|
|
toset->MaxEdge += m_base_position; |
|
|
|
|
|
return true; |
|
|
} |
|
@@ -154,9 +154,6 @@ void LocalPlayer::move(f32 dtime, ClientEnvironment *env, f32 pos_max_d, |
|
|
// This should always apply, otherwise there are glitches |
|
|
assert(d > pos_max_d); |
|
|
|
|
|
float player_radius = BS*0.30; |
|
|
float player_height = BS*1.55; |
|
|
|
|
|
// Maximum distance over border for sneaking |
|
|
f32 sneak_max = BS*0.4; |
|
|
|
|
@@ -184,24 +181,12 @@ void LocalPlayer::move(f32 dtime, ClientEnvironment *env, f32 pos_max_d, |
|
|
} |
|
|
} |
|
|
|
|
|
/* |
|
|
Calculate player collision box (new and old) |
|
|
*/ |
|
|
core::aabbox3d<f32> playerbox( |
|
|
-player_radius, |
|
|
0.0, |
|
|
-player_radius, |
|
|
player_radius, |
|
|
player_height, |
|
|
player_radius |
|
|
); |
|
|
|
|
|
float player_stepheight = touching_ground ? (BS*0.6) : (BS*0.2); |
|
|
|
|
|
v3f accel_f = v3f(0,0,0); |
|
|
|
|
|
collisionMoveResult result = collisionMoveSimple(env, m_gamedef, |
|
|
pos_max_d, playerbox, player_stepheight, dtime, |
|
|
pos_max_d, m_collisionbox, player_stepheight, dtime, |
|
|
position, m_speed, accel_f); |
|
|
|
|
|
/* |
|
|
|
@@ -42,7 +42,8 @@ Player::Player(IGameDef *gamedef): |
|
|
m_pitch(0), |
|
|
m_yaw(0), |
|
|
m_speed(0,0,0), |
|
|
m_position(0,0,0) |
|
|
m_position(0,0,0), |
|
|
m_collisionbox(-BS*0.30,0.0,-BS*0.30,BS*0.30,BS*1.55,BS*0.30) |
|
|
{ |
|
|
updateName("<not set>"); |
|
|
inventory.clear(); |
|
|
|
@@ -180,6 +180,10 @@ class Player |
|
|
return m_name; |
|
|
} |
|
|
|
|
|
core::aabbox3d<f32> getCollisionbox() { |
|
|
return m_collisionbox; |
|
|
} |
|
|
|
|
|
virtual bool isLocal() const |
|
|
{ return false; } |
|
|
virtual PlayerSAO *getPlayerSAO() |
|
@@ -255,6 +259,7 @@ class Player |
|
|
f32 m_yaw; |
|
|
v3f m_speed; |
|
|
v3f m_position; |
|
|
core::aabbox3d<f32> m_collisionbox; |
|
|
}; |
|
|
|
|
|
|
|
|