File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed
Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments