mirror of
https://github.com/minetest/minetest.git
synced 2024-11-10 01:33:46 +01:00
Fix camera "jumping" when attached and the parent goes too fast
This commit is contained in:
parent
f85c1165c2
commit
c1bf6f9f7a
@ -218,6 +218,8 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize,
|
||||
// Smooth the movement when walking up stairs
|
||||
v3f old_player_position = m_playernode->getPosition();
|
||||
v3f player_position = player->getPosition();
|
||||
if (player->isAttached && player->parent)
|
||||
player_position = player->parent->getPosition();
|
||||
//if(player->touching_ground && player_position.Y > old_player_position.Y)
|
||||
if(player->touching_ground &&
|
||||
player_position.Y > old_player_position.Y)
|
||||
|
@ -1129,6 +1129,7 @@ public:
|
||||
{
|
||||
LocalPlayer *player = m_env->getLocalPlayer();
|
||||
player->overridePosition = getParent()->getPosition();
|
||||
m_env->getLocalPlayer()->parent = getParent();
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -35,6 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
LocalPlayer::LocalPlayer(IGameDef *gamedef):
|
||||
Player(gamedef),
|
||||
parent(0),
|
||||
isAttached(false),
|
||||
overridePosition(v3f(0,0,0)),
|
||||
last_position(v3f(0,0,0)),
|
||||
|
@ -25,6 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
class ClientEnvironment;
|
||||
|
||||
class ClientActiveObject;
|
||||
|
||||
class LocalPlayer : public Player
|
||||
{
|
||||
public:
|
||||
@ -36,6 +38,8 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
ClientActiveObject *parent;
|
||||
|
||||
bool isAttached;
|
||||
|
||||
v3f overridePosition;
|
||||
|
Loading…
Reference in New Issue
Block a user