From 5c89202f3f6e54c0a57bac98bbf4fd01a35d7674 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 27 Jan 2024 04:51:57 +0300 Subject: [PATCH] step height > 0 top collision fix --- src/physics/PhysicsSolver.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/physics/PhysicsSolver.cpp b/src/physics/PhysicsSolver.cpp index 38fe1544..4f63fd8c 100644 --- a/src/physics/PhysicsSolver.cpp +++ b/src/physics/PhysicsSolver.cpp @@ -86,6 +86,17 @@ void PhysicsSolver::colisionCalc( // step size (smaller - more accurate, but slower) float s = 2.0f/BLOCK_AABB_GRID; + if (stepHeight > 0.0f) { + for (float x = (pos.x-half.x+E); x <= (pos.x+half.x-E); x+=s){ + for (float z = (pos.z-half.z+E); z <= (pos.z+half.z-E); z+=s){ + if (chunks->isObstacleAt(x, pos.y+half.y+stepHeight, z)) { + stepHeight = 0.0f; + break; + } + } + } + } + const AABB* aabb; if (vel.x < 0.0f){