diff --git a/src/objects/Entities.cpp b/src/objects/Entities.cpp index d9e80e9d..4c8f5871 100644 --- a/src/objects/Entities.cpp +++ b/src/objects/Entities.cpp @@ -405,9 +405,9 @@ void Entities::render(Assets* assets, ModelBatch& batch, const Frustum& frustum, } bool Entities::hasBlockingInside(AABB aabb) { - auto view = registry.view(); - for (auto [entity, eid, transform] : view.each()) { - if (eid.def.blocking && aabb.contains(transform.pos)) { + auto view = registry.view(); + for (auto [entity, eid, transform, body] : view.each()) { + if (eid.def.blocking && aabb.intersect(body.hitbox.getAABB())) { return true; } } diff --git a/src/physics/Hitbox.hpp b/src/physics/Hitbox.hpp index 18351c29..df0fef29 100644 --- a/src/physics/Hitbox.hpp +++ b/src/physics/Hitbox.hpp @@ -57,6 +57,10 @@ struct Hitbox { bool crouching = false; Hitbox(BodyType type, glm::vec3 position, glm::vec3 halfsize); + + AABB getAABB() const { + return AABB(position-halfsize, position+halfsize); + } }; #endif // PHYSICS_HITBOX_HPP_