fix: non-local players hitboxes incorrect behaviour
This commit is contained in:
parent
149d095e6d
commit
21ff042aa3
@ -82,6 +82,17 @@ void Player::updateEntity() {
|
|||||||
"will be respawned";
|
"will be respawned";
|
||||||
eid = ENTITY_AUTO;
|
eid = ENTITY_AUTO;
|
||||||
}
|
}
|
||||||
|
auto hitbox = getHitbox();
|
||||||
|
if (hitbox == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hitbox->linearDamping = PLAYER_GROUND_DAMPING;
|
||||||
|
hitbox->verticalDamping = flight;
|
||||||
|
hitbox->gravityScale = flight ? 0.0f : 1.0f;
|
||||||
|
if (flight || !hitbox->grounded) {
|
||||||
|
hitbox->linearDamping = PLAYER_AIR_DAMPING;
|
||||||
|
}
|
||||||
|
hitbox->type = noclip ? BodyType::KINEMATIC : BodyType::DYNAMIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hitbox* Player::getHitbox() {
|
Hitbox* Player::getHitbox() {
|
||||||
@ -129,12 +140,7 @@ void Player::updateInput(PlayerInput& input, float delta) {
|
|||||||
dir = glm::normalize(dir);
|
dir = glm::normalize(dir);
|
||||||
hitbox->velocity += dir * speed * delta * 9.0f;
|
hitbox->velocity += dir * speed * delta * 9.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
hitbox->linearDamping = PLAYER_GROUND_DAMPING;
|
|
||||||
hitbox->verticalDamping = flight;
|
|
||||||
hitbox->gravityScale = flight ? 0.0f : 1.0f;
|
|
||||||
if (flight) {
|
if (flight) {
|
||||||
hitbox->linearDamping = PLAYER_AIR_DAMPING;
|
|
||||||
if (input.jump) {
|
if (input.jump) {
|
||||||
hitbox->velocity.y += speed * delta * 9;
|
hitbox->velocity.y += speed * delta * 9;
|
||||||
}
|
}
|
||||||
@ -142,15 +148,9 @@ void Player::updateInput(PlayerInput& input, float delta) {
|
|||||||
hitbox->velocity.y -= speed * delta * 9;
|
hitbox->velocity.y -= speed * delta * 9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!hitbox->grounded) {
|
|
||||||
hitbox->linearDamping = PLAYER_AIR_DAMPING;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (input.jump && hitbox->grounded) {
|
if (input.jump && hitbox->grounded) {
|
||||||
hitbox->velocity.y = JUMP_FORCE;
|
hitbox->velocity.y = JUMP_FORCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
hitbox->type = noclip ? BodyType::KINEMATIC : BodyType::DYNAMIC;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::updateSelectedEntity() {
|
void Player::updateSelectedEntity() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user