public override void UpdateCollision(float dt)
{
if (!suppressEvents)
{
CollidableA.EventTriggerer.OnPairUpdated(CollidableB, this);
CollidableB.EventTriggerer.OnPairUpdated(CollidableA, this);
}
UpdateContacts(dt);
if (contactCount > 0)
{
if (!suppressEvents)
{
CollidableA.EventTriggerer.OnPairTouching(CollidableB, this);
CollidableB.EventTriggerer.OnPairTouching(CollidableA, this);
}
if (previousContactCount == 0)
{
//collision started!
CollidableA.EventTriggerer.OnInitialCollisionDetected(CollidableB, this);
CollidableB.EventTriggerer.OnInitialCollisionDetected(CollidableA, this);
//No solver updateable addition in this method since it's handled by the "AddSolverUpdateable" method.
}
}
else if (previousContactCount > 0 && !suppressEvents)
{
//collision ended!
CollidableA.EventTriggerer.OnCollisionEnded(CollidableB, this);
CollidableB.EventTriggerer.OnCollisionEnded(CollidableA, this);
//No solver updateable removal in this method since it's handled by the "RemoveSolverUpdateable" method.
}
previousContactCount = contactCount;
}