onComponentTypeCheck method
Defines whether the other
component should be able to collide with
this component.
If the hitboxParent is not CollisionCallbacks
but PositionComponent
,
there is no CollisionCallbacks.onComponentTypeCheck in that component.
As a result, it will always be able to collide with all other types.
Implementation
@override
@mustCallSuper
bool onComponentTypeCheck(PositionComponent other) {
final otherHitboxParent = (other as ShapeHitbox).hitboxParent;
final thisCanCollideWithOther = (hitboxParent is! CollisionCallbacks) ||
(hitboxParent as CollisionCallbacks)
.onComponentTypeCheck(otherHitboxParent);
final otherCanCollideWithThis =
(otherHitboxParent is! CollisionCallbacks) ||
(otherHitboxParent as CollisionCallbacks)
.onComponentTypeCheck(hitboxParent);
return thisCanCollideWithOther && otherCanCollideWithThis;
}