add Hitbox.gravityMultiplier

This commit is contained in:
MihailRis 2024-07-09 02:14:14 +03:00
parent f3201b7742
commit f52a435aea
6 changed files with 4 additions and 5 deletions

View File

@ -307,7 +307,6 @@ void Entities::updatePhysics(float delta) {
delta,
substeps,
false,
1.0f,
true,
eid.uid
);

View File

@ -65,7 +65,6 @@ struct Rigidbody {
bool enabled = true;
Hitbox hitbox;
std::vector<Trigger> triggers;
float gravityMultiplier = 1.0f;
};
struct UserComponent {

View File

@ -97,6 +97,7 @@ void Player::updateInput(PlayerInput& input, float delta) {
hitbox->linearDamping = PLAYER_GROUND_DAMPING;
hitbox->verticalDamping = flight;
hitbox->gravityMultiplier = flight ? 0.0f : 1.0f;
if (flight){
hitbox->linearDamping = PLAYER_AIR_DAMPING;
if (input.jump){
@ -118,7 +119,7 @@ void Player::updateInput(PlayerInput& input, float delta) {
(input.noclip && flight == noclip)){
flight = !flight;
if (flight){
hitbox->grounded = false;
hitbox->velocity.y += 1.0f;
}
}
if (input.noclip) {

View File

@ -43,6 +43,7 @@ struct Hitbox {
float linearDamping;
bool verticalDamping = false;
bool grounded = false;
float gravityMultiplier = 1.0f;
Hitbox(glm::vec3 position, glm::vec3 halfsize);
};

View File

@ -22,7 +22,6 @@ void PhysicsSolver::step(
float delta,
uint substeps,
bool shifting,
float gravityScale,
bool collisions,
entityid_t entity
) {
@ -33,6 +32,7 @@ void PhysicsSolver::step(
const glm::vec3& half = hitbox->halfsize;
glm::vec3& pos = hitbox->position;
glm::vec3& vel = hitbox->velocity;
float gravityScale = hitbox->gravityMultiplier;
bool prevGrounded = hitbox->grounded;
hitbox->grounded = false;

View File

@ -24,7 +24,6 @@ public:
float delta,
uint substeps,
bool shifting,
float gravityScale,
bool collisions,
entityid_t entity
);