Broken runtime
This commit is contained in:
@@ -156,32 +156,22 @@ void CollisionSystem::reset() {
|
||||
|
||||
void CollisionSystem::registerCollider(uint16_t gameObjectIndex, const AABB& localBounds,
|
||||
CollisionType type, CollisionMask mask) {
|
||||
if (m_colliderCount >= MAX_COLLIDERS) {
|
||||
// Out of collider slots
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_colliderCount >= MAX_COLLIDERS) return;
|
||||
|
||||
CollisionData& data = m_colliders[m_colliderCount++];
|
||||
data.bounds = localBounds; // Will be transformed in updateCollider
|
||||
data.localBounds = localBounds;
|
||||
data.bounds = localBounds;
|
||||
data.type = type;
|
||||
data.layerMask = mask;
|
||||
data.flags = 0;
|
||||
data.gridCell = 0;
|
||||
data.gameObjectIndex = gameObjectIndex;
|
||||
}
|
||||
|
||||
void CollisionSystem::updateCollider(uint16_t gameObjectIndex, const psyqo::Vec3& position,
|
||||
const psyqo::Matrix33& rotation) {
|
||||
// Find the collider for this object
|
||||
for (int i = 0; i < m_colliderCount; i++) {
|
||||
if (m_colliders[i].gameObjectIndex == gameObjectIndex) {
|
||||
// For now, just translate the AABB (no rotation support for AABBs)
|
||||
// TODO: Compute rotated AABB if needed
|
||||
|
||||
// Store original local bounds somewhere if we need to recalculate
|
||||
// For now, assume bounds are already world-relative
|
||||
m_colliders[i].bounds.min = m_colliders[i].bounds.min + position;
|
||||
m_colliders[i].bounds.max = m_colliders[i].bounds.max + position;
|
||||
m_colliders[i].bounds.min = m_colliders[i].localBounds.min + position;
|
||||
m_colliders[i].bounds.max = m_colliders[i].localBounds.max + position;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user