refactor: modified unlock method due to invalid cast

pull/15/head
alestiago 4 years ago
parent ab96a9ead8
commit 424776f2a4

@ -193,12 +193,9 @@ class FlipperAnchorRevoluteJointDef extends RevoluteJointDef {
/// its resting position.
// TODO(alestiago): consider refactor once the issue is solved:
// https://github.com/flame-engine/forge2d/issues/36
static void unlock(RevoluteJoint joint) {
assert(joint.bodyA is Flipper && joint.bodyB is Anchor, 'Invalid joint.');
final flipper = joint.bodyA as Flipper;
static void unlock(RevoluteJoint joint, BoardSide side) {
late final double upperLimit, lowerLimit;
switch (flipper.side) {
switch (side) {
case BoardSide.left:
lowerLimit = joint.lowerLimit * -1;
upperLimit = joint.upperLimit;

@ -81,8 +81,14 @@ class PinballGame extends Forge2DGame with FlameBloc, KeyboardEvents {
await _leftFlipper.hasMounted.future;
await _rightFlipper.hasMounted.future;
FlipperAnchorRevoluteJointDef.unlock(_leftFlipperRevoluteJoint);
FlipperAnchorRevoluteJointDef.unlock(_rightFlipperRevoluteJoint);
FlipperAnchorRevoluteJointDef.unlock(
_leftFlipperRevoluteJoint,
BoardSide.left,
);
FlipperAnchorRevoluteJointDef.unlock(
_rightFlipperRevoluteJoint,
BoardSide.right,
);
}
@override

Loading…
Cancel
Save