Skip to content

Commit 97c89c0

Browse files
committed
Server/Ships: Fix entry/exit collider tests
wasn't taking translating into account, see https://jrouwe.github.io/JoltPhysics/index.html#center-of-mass
1 parent 82f1540 commit 97c89c0

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/ServerLib/ServerShipEnvironment.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,10 @@ namespace tsom
299299
auto& shipEntry = m_proxyEntity.get<EnvironmentEnterTriggerComponent>();
300300
shipEntry.entryTrigger = m_combinedAreaColliders;
301301
if (shipEntry.entryTrigger)
302+
{
302303
shipEntry.aabb = m_combinedAreaColliders->GetBoundingBox();
304+
shipEntry.aabb.Translate(m_combinedAreaColliders->GetCenterOfMass());
305+
}
303306
}
304307
}
305308

@@ -322,6 +325,7 @@ namespace tsom
322325
continue;
323326

324327
Nz::Vector3f relativePos = playerPos - ship.GetChunkOffset(chunkIndices);
328+
relativePos -= chunkData.expandedAreaCollider->GetCenterOfMass(); //< https://jrouwe.github.io/JoltPhysics/index.html#center-of-mass
325329
if (chunkData.expandedAreaCollider->CollisionQuery(relativePos))
326330
return;
327331
}

src/ServerLib/Systems/EnvironmentSwitchSystem.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,12 @@ namespace tsom
3636
{
3737
Nz::Vector3f localPlayerPos = triggerNode.ToLocalPosition(playerPosition);
3838
// Use AABB as a cheap test
39-
if (enterTrigger.aabb.Contains(localPlayerPos) && enterTrigger.entryTrigger->CollisionQuery(localPlayerPos))
40-
player.MoveEntityToEnvironment(enterTrigger.targetEnvironment);
39+
if (enterTrigger.aabb.Contains(localPlayerPos))
40+
{
41+
localPlayerPos -= enterTrigger.entryTrigger->GetCenterOfMass(); //< https://jrouwe.github.io/JoltPhysics/index.html#center-of-mass
42+
if (enterTrigger.entryTrigger->CollisionQuery(localPlayerPos))
43+
player.MoveEntityToEnvironment(enterTrigger.targetEnvironment);
44+
}
4145
}
4246
});
4347
}

0 commit comments

Comments
 (0)