refactor: improved ramp contact callback

pull/40/head
RuiAlonso 4 years ago
parent 99a394ca18
commit 425e5292b9

@ -132,12 +132,8 @@ class RampOpeningBallContactCallback<Opening extends RampOpening>
final _ballsInside = <Ball>{};
@override
void begin(
Ball ball,
Opening opening,
Contact _,
) {
Layer layer;
void begin(Ball ball, Opening opening, Contact _) {
late final Layer layer;
if (!_ballsInside.contains(ball)) {
layer = opening.pathwayLayer;
_ballsInside.add(ball);
@ -150,24 +146,11 @@ class RampOpeningBallContactCallback<Opening extends RampOpening>
}
@override
void end(Ball ball, Opening opening, Contact contact) {
Layer? layer;
switch (opening.orientation) {
case RampOrientation.up:
if (ball.body.position.y > opening.body.position.y) {
layer = Layer.board;
}
break;
case RampOrientation.down:
if (ball.body.position.y < opening.body.position.y) {
layer = Layer.board;
}
break;
}
void end(Ball ball, Opening opening, Contact _) {
final isBallOutsideOpening = opening.orientation == RampOrientation.up
? ball.body.position.y > opening.body.position.y
: ball.body.position.y < opening.body.position.y;
if (layer != null) {
ball.layer = layer;
}
if (isBallOutsideOpening) ball.layer = Layer.board;
}
}

Loading…
Cancel
Save