From 3d9c8310516f29fa1d83daa7c668e3a15b62af41 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 16 Jun 2026 19:17:15 +0300 Subject: [PATCH 1/2] fix PhysicsSolver::calcCollisionNegY --- src/physics/PhysicsSolver.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/physics/PhysicsSolver.cpp b/src/physics/PhysicsSolver.cpp index 5fb959670..d2757844b 100644 --- a/src/physics/PhysicsSolver.cpp +++ b/src/physics/PhysicsSolver.cpp @@ -151,7 +151,10 @@ bool PhysicsSolver::calcCollisionNegY( continue; } auto aabb = AABB(pos - half, pos + half); - aabb.scale(glm::vec3(1.0f - E * 4.0f, 1.0f - E * 2, 1.0f - E * 4.0f)); + glm::vec3 scale(1.0f); + scale.x = 1.0f - E * 4.0f; + scale.z = 1.0f - E * 4.0f; + aabb.scale(scale); auto boxhalf = box->getHalfSize(); if (box->position.y < pos.y && box->getAABB().intersects(aabb)) { From 625a5caeccbce1d06a0ad1c743e56995d9b42343 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Tue, 16 Jun 2026 20:49:21 +0300 Subject: [PATCH 2/2] fix ceiling collision --- src/physics/PhysicsSolver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/physics/PhysicsSolver.cpp b/src/physics/PhysicsSolver.cpp index d2757844b..7ecc07f05 100644 --- a/src/physics/PhysicsSolver.cpp +++ b/src/physics/PhysicsSolver.cpp @@ -244,7 +244,7 @@ void PhysicsSolver::calcCollisions( float x = (pos.x - half.x + E) + ix; for (int iz = 0; iz <= glm::ceil((half.z - E) * 2); iz++) { float z = (pos.z - half.z + E) + iz; - float y = (pos.y + half.y + E) + 0.5f; + float y = (pos.y + half.y + E) - E; if (auto aabb = chunks.isObstacleAt(x, y, z, boxAABB)) { float newy = std::floor(y) - half.y + aabb->min().y - E; if (pos.y >= newy) {