From 07e2fe8b3ba9e5aa97d337f3d68267ed90269793 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 6 Mar 2022 02:38:20 +0300 Subject: [PATCH] Fixed 'onground' && turning-off flight mode if onground --- src/physics/PhysicsSolver.cpp | 2 +- src/voxel_engine.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/physics/PhysicsSolver.cpp b/src/physics/PhysicsSolver.cpp index 11dc1f8a..1549b112 100644 --- a/src/physics/PhysicsSolver.cpp +++ b/src/physics/PhysicsSolver.cpp @@ -11,6 +11,7 @@ PhysicsSolver::PhysicsSolver(vec3 gravity) : gravity(gravity) { } void PhysicsSolver::step(Chunks* chunks, Hitbox* hitbox, float delta, unsigned substeps, bool shifting, float gravityScale) { + hitbox->grounded = false; for (unsigned i = 0; i < substeps; i++){ float dt = delta / (float)substeps; float linear_damping = hitbox->linear_damping; @@ -75,7 +76,6 @@ void PhysicsSolver::step(Chunks* chunks, Hitbox* hitbox, float delta, unsigned s } } - hitbox->grounded = false; if (vel.y < 0.0){ for (int x = floor(pos.x-half.x+E); x <= floor(pos.x+half.x-E); x++){ bool broken = false; diff --git a/src/voxel_engine.cpp b/src/voxel_engine.cpp index 0b2e3b30..50552026 100644 --- a/src/voxel_engine.cpp +++ b/src/voxel_engine.cpp @@ -117,6 +117,8 @@ void update_controls(PhysicsSolver* physics, camera->position.y = hitbox->position.y + 0.5f; camera->position.z = hitbox->position.z; + if (player->flight && hitbox->grounded) + player->flight = false; // Camera shaking player->interpVel = player->interpVel * (1.0f - delta * 5) + hitbox->velocity * delta * 0.1f; if (hitbox->grounded && player->interpVel.y < 0.0f){ @@ -132,6 +134,10 @@ void update_controls(PhysicsSolver* physics, if (Events::jpressed(GLFW_KEY_F)){ player->flight = !player->flight; + if (player->flight){ + hitbox->velocity.y += 1; + hitbox->grounded = false; + } } // Field of view manipulations