on entity collider we have both subject.collides(candidate) and candidate.collides(subject) and entity nested loops cause every subject != candidate pair go to this.
As result, on collision, for example mario.collides(goomba) is called with subject === mario and candidate == goomba and then with subject === goomba and candidate === mario.
With such a loop nesting calling only subject.collides(candidate) is enough.
on entity collider we have both
subject.collides(candidate)
andcandidate.collides(subject)
and entity nested loops cause everysubject != candidate
pair go to this. As result, on collision, for examplemario.collides(goomba)
is called withsubject === mario
andcandidate == goomba
and then withsubject === goomba
andcandidate === mario
.With such a loop nesting calling only
subject.collides(candidate)
is enough.