Fixed collisions on inactive objects

This commit is contained in:
2026-03-29 14:02:28 +02:00
parent 7425d9a5b2
commit 7c344e2e37
3 changed files with 6 additions and 4 deletions

View File

@@ -165,7 +165,7 @@ void CollisionSystem::updateCollider(uint16_t gameObjectIndex, const psyqo::Vec3
}
}
int CollisionSystem::detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushBack) {
int CollisionSystem::detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushBack, SceneManager& scene) {
m_resultCount = 0;
const FP zero(0);
pushBack = psyqo::Vec3{zero, zero, zero};
@@ -173,7 +173,9 @@ int CollisionSystem::detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushB
// Rebuild spatial grid with all colliders
m_grid.clear();
for (int i = 0; i < m_colliderCount; i++) {
m_grid.insert(i, m_colliders[i].bounds);
if(scene.getGameObject(m_colliders[i].gameObjectIndex)->isActive()) {
m_grid.insert(i, m_colliders[i].bounds);
}
}
// Test player AABB against all colliders for push-back