diff --git a/lib/game/components/scoring_behaviour.dart b/lib/game/components/scoring_behaviour.dart index e51f6926..b645a8b2 100644 --- a/lib/game/components/scoring_behaviour.dart +++ b/lib/game/components/scoring_behaviour.dart @@ -25,13 +25,13 @@ class ScoringBehaviour extends Component // TODO(alestiago): Refactor once the following is merged: // https://github.com/flame-engine/flame/pull/1566 final parent = this.parent; - if (parent is BodyComponent) { - final userData = parent.body.userData; - if (userData is ContactCallbacks) { - userData.add(this); - } else { - parent.body.userData = this; - } + if (parent is! BodyComponent) return; + + final userData = parent.body.userData; + if (userData is ContactCallbacks) { + userData.add(this); + } else { + parent.body.userData = this; } } diff --git a/lib/game/components/sparky_fire_zone.dart b/lib/game/components/sparky_fire_zone.dart index 4f4b1b4b..a4c88e0f 100644 --- a/lib/game/components/sparky_fire_zone.dart +++ b/lib/game/components/sparky_fire_zone.dart @@ -62,9 +62,7 @@ class SparkyFireZone extends Blueprint { class SparkyComputerSensor extends BodyComponent with InitialPosition, ContactCallbacks { /// {@macro sparky_computer_sensor} - SparkyComputerSensor() { - renderBody = false; - } + SparkyComputerSensor() : super(renderBody: false); @override Body createBody() { diff --git a/packages/pinball_components/lib/src/components/alien_bumper.dart b/packages/pinball_components/lib/src/components/alien_bumper.dart index a8081d7a..219f99bb 100644 --- a/packages/pinball_components/lib/src/components/alien_bumper.dart +++ b/packages/pinball_components/lib/src/components/alien_bumper.dart @@ -27,9 +27,8 @@ class AlienBumper extends BodyComponent with InitialPosition { ), if (children != null) ...children, ], - ) { - renderBody = false; - } + renderBody: false, + ); /// {@macro alien_bumper} AlienBumper.a({ diff --git a/packages/pinball_components/lib/src/components/ball.dart b/packages/pinball_components/lib/src/components/ball.dart index b1e2703b..2eaca4b8 100644 --- a/packages/pinball_components/lib/src/components/ball.dart +++ b/packages/pinball_components/lib/src/components/ball.dart @@ -19,6 +19,7 @@ class Ball extends BodyComponent children: [ _BallSpriteComponent()..tint(baseColor.withOpacity(0.5)), ], + renderBody: false, ) { // TODO(ruimiguel): while developing Ball can be launched by clicking mouse, // and default layer is Layer.all. But on final game Ball will be always be @@ -26,7 +27,6 @@ class Ball extends BodyComponent // We need to see what happens if Ball appears from other place like nest // bumper, it will need to explicit change layer to Layer.board then. layer = Layer.board; - renderBody = false; } /// The size of the [Ball]. diff --git a/packages/pinball_components/lib/src/components/baseboard.dart b/packages/pinball_components/lib/src/components/baseboard.dart index 07f39070..d7016605 100644 --- a/packages/pinball_components/lib/src/components/baseboard.dart +++ b/packages/pinball_components/lib/src/components/baseboard.dart @@ -14,9 +14,8 @@ class Baseboard extends BodyComponent with InitialPosition { }) : _side = side, super( children: [_BaseboardSpriteComponent(side: side)], - ) { - renderBody = false; - } + renderBody: false, + ); /// Whether the [Baseboard] is on the left or right side of the board. final BoardSide _side; diff --git a/packages/pinball_components/lib/src/components/boundaries.dart b/packages/pinball_components/lib/src/components/boundaries.dart index 86e1844e..63087f9d 100644 --- a/packages/pinball_components/lib/src/components/boundaries.dart +++ b/packages/pinball_components/lib/src/components/boundaries.dart @@ -28,9 +28,8 @@ class _BottomBoundary extends BodyComponent with InitialPosition { : super( priority: RenderPriority.bottomBoundary, children: [_BottomBoundarySpriteComponent()], - ) { - renderBody = false; - } + renderBody: false, + ); List _createFixtureDefs() { final bottomLeftCurve = BezierCurveShape( @@ -93,12 +92,9 @@ class _OuterBoundary extends BodyComponent with InitialPosition { _OuterBoundary() : super( priority: RenderPriority.outerBoundary, - children: [ - _OuterBoundarySpriteComponent(), - ], - ) { - renderBody = false; - } + children: [_OuterBoundarySpriteComponent()], + renderBody: false, + ); List _createFixtureDefs() { final topWall = EdgeShape() diff --git a/packages/pinball_components/lib/src/components/dash_nest_bumper.dart b/packages/pinball_components/lib/src/components/dash_nest_bumper.dart index 75de002d..213ded5d 100644 --- a/packages/pinball_components/lib/src/components/dash_nest_bumper.dart +++ b/packages/pinball_components/lib/src/components/dash_nest_bumper.dart @@ -29,9 +29,8 @@ class DashNestBumper extends BodyComponent with InitialPosition { ), if (children != null) ...children, ], - ) { - renderBody = false; - } + renderBody: false, + ); /// {@macro dash_nest_bumper} DashNestBumper.main({ diff --git a/packages/pinball_components/lib/src/components/dino_walls.dart b/packages/pinball_components/lib/src/components/dino_walls.dart index 0654d038..0e0e2efa 100644 --- a/packages/pinball_components/lib/src/components/dino_walls.dart +++ b/packages/pinball_components/lib/src/components/dino_walls.dart @@ -29,9 +29,8 @@ class _DinoTopWall extends BodyComponent with InitialPosition { : super( priority: RenderPriority.dinoTopWall, children: [_DinoTopWallSpriteComponent()], - ) { - renderBody = false; - } + renderBody: false, + ); List _createFixtureDefs() { final topStraightShape = EdgeShape() @@ -128,9 +127,8 @@ class _DinoBottomWall extends BodyComponent with InitialPosition { : super( priority: RenderPriority.dinoBottomWall, children: [_DinoBottomWallSpriteComponent()], - ) { - renderBody = false; - } + renderBody: false, + ); List _createFixtureDefs() { const restitution = 1.0; diff --git a/packages/pinball_components/lib/src/components/flipper.dart b/packages/pinball_components/lib/src/components/flipper.dart index bd826668..bc597fbf 100644 --- a/packages/pinball_components/lib/src/components/flipper.dart +++ b/packages/pinball_components/lib/src/components/flipper.dart @@ -15,9 +15,8 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition { required this.side, }) : super( children: [_FlipperSpriteComponent(side: side)], - ) { - renderBody = false; - } + renderBody: false, + ); /// The size of the [Flipper]. static final size = Vector2(13.5, 4.3); diff --git a/packages/pinball_components/lib/src/components/kicker.dart b/packages/pinball_components/lib/src/components/kicker.dart index f6963d7c..12cd638d 100644 --- a/packages/pinball_components/lib/src/components/kicker.dart +++ b/packages/pinball_components/lib/src/components/kicker.dart @@ -19,9 +19,8 @@ class Kicker extends BodyComponent with InitialPosition { }) : _side = side, super( children: [_KickerSpriteComponent(side: side)], - ) { - renderBody = false; - } + renderBody: false, + ); /// The size of the [Kicker] body. static final Vector2 size = Vector2(4.4, 15); diff --git a/packages/pinball_components/lib/src/components/launch_ramp.dart b/packages/pinball_components/lib/src/components/launch_ramp.dart index 6d6144d7..68cabadb 100644 --- a/packages/pinball_components/lib/src/components/launch_ramp.dart +++ b/packages/pinball_components/lib/src/components/launch_ramp.dart @@ -36,9 +36,9 @@ class _LaunchRampBase extends BodyComponent with Layered { _LaunchRampBackgroundRailingSpriteComponent(), _LaunchRampBaseSpriteComponent(), ], + renderBody: false, ) { layer = Layer.launcher; - renderBody = false; } // TODO(ruimiguel): final asset differs slightly from the current shape. We @@ -150,9 +150,8 @@ class _LaunchRampForegroundRailing extends BodyComponent { : super( priority: RenderPriority.launchRampForegroundRailing, children: [_LaunchRampForegroundRailingSpriteComponent()], - ) { - renderBody = false; - } + renderBody: false, + ); List _createFixtureDefs() { final fixturesDef = []; @@ -211,9 +210,8 @@ class _LaunchRampForegroundRailingSpriteComponent extends SpriteComponent } class _LaunchRampCloseWall extends BodyComponent with InitialPosition, Layered { - _LaunchRampCloseWall() { + _LaunchRampCloseWall() : super(renderBody: false) { layer = Layer.board; - renderBody = false; } @override @@ -245,7 +243,6 @@ class _LaunchRampExit extends LayerSensor { outsidePriority: RenderPriority.ballOnBoard, ) { layer = Layer.launcher; - renderBody = false; } static final Vector2 _size = Vector2(1.6, 0.1); diff --git a/packages/pinball_components/lib/src/components/layer_sensor.dart b/packages/pinball_components/lib/src/components/layer_sensor.dart index a3af2c26..7a749357 100644 --- a/packages/pinball_components/lib/src/components/layer_sensor.dart +++ b/packages/pinball_components/lib/src/components/layer_sensor.dart @@ -17,9 +17,6 @@ enum LayerEntranceOrientation { /// {@template layer_sensor} /// [BodyComponent] located at the entrance and exit of a [Layer]. /// -/// [LayerSensorBallContactCallback] detects when a [Ball] passes -/// through this sensor. -/// /// By default the base [layer] is set to [Layer.board] and the /// [outsidePriority] is set to the lowest possible [Layer]. /// {@endtemplate} @@ -35,7 +32,8 @@ abstract class LayerSensor extends BodyComponent }) : _insideLayer = insideLayer, _outsideLayer = outsideLayer ?? Layer.board, _insidePriority = insidePriority, - _outsidePriority = outsidePriority ?? RenderPriority.ballOnBoard { + _outsidePriority = outsidePriority ?? RenderPriority.ballOnBoard, + super(renderBody: false) { layer = Layer.opening; } final Layer _insideLayer; diff --git a/packages/pinball_components/lib/src/components/plunger.dart b/packages/pinball_components/lib/src/components/plunger.dart index 295c799d..735a5490 100644 --- a/packages/pinball_components/lib/src/components/plunger.dart +++ b/packages/pinball_components/lib/src/components/plunger.dart @@ -14,9 +14,11 @@ class Plunger extends BodyComponent with InitialPosition, Layered { required this.compressionDistance, // TODO(ruimiguel): set to priority +1 over LaunchRamp once all priorities // are fixed. - }) : super(priority: RenderPriority.plunger) { + }) : super( + priority: RenderPriority.plunger, + renderBody: false, + ) { layer = Layer.launcher; - renderBody = false; } /// Distance the plunger can lower. diff --git a/packages/pinball_components/lib/src/components/signpost.dart b/packages/pinball_components/lib/src/components/signpost.dart index cc6de9ea..9bbaea2b 100644 --- a/packages/pinball_components/lib/src/components/signpost.dart +++ b/packages/pinball_components/lib/src/components/signpost.dart @@ -54,9 +54,8 @@ class Signpost extends BodyComponent with InitialPosition { _SignpostSpriteComponent(), if (children != null) ...children, ], - ) { - renderBody = false; - } + renderBody: false, + ); /// Forwards the sprite to the next [SignpostSpriteState]. /// diff --git a/packages/pinball_components/lib/src/components/slingshot.dart b/packages/pinball_components/lib/src/components/slingshot.dart index 35346584..b48bf2f9 100644 --- a/packages/pinball_components/lib/src/components/slingshot.dart +++ b/packages/pinball_components/lib/src/components/slingshot.dart @@ -40,9 +40,8 @@ class Slingshot extends BodyComponent with InitialPosition { super( priority: RenderPriority.slingshot, children: [_SlinghsotSpriteComponent(spritePath, angle: angle)], - ) { - renderBody = false; - } + renderBody: false, + ); final double _length; diff --git a/packages/pinball_components/lib/src/components/spaceship.dart b/packages/pinball_components/lib/src/components/spaceship.dart index 24b07c66..941e0940 100644 --- a/packages/pinball_components/lib/src/components/spaceship.dart +++ b/packages/pinball_components/lib/src/components/spaceship.dart @@ -45,9 +45,9 @@ class SpaceshipSaucer extends BodyComponent with InitialPosition, Layered { children: [ _SpaceshipSaucerSpriteComponent(), ], + renderBody: false, ) { layer = Layer.spaceship; - renderBody = false; } @override @@ -95,8 +95,8 @@ class AndroidHead extends BodyComponent with InitialPosition, Layered { : super( priority: RenderPriority.androidHead, children: [_AndroidHeadSpriteAnimation()], + renderBody: false, ) { - renderBody = false; layer = Layer.spaceship; } @@ -151,7 +151,6 @@ class _SpaceshipEntrance extends LayerSensor { @override Shape get shape { - renderBody = false; final radius = Spaceship.size.y / 2; return PolygonShape() ..setAsEdge( @@ -176,7 +175,6 @@ class _SpaceshipHole extends LayerSensor { insidePriority: RenderPriority.ballOnSpaceship, outsidePriority: outsidePriority, ) { - renderBody = false; layer = Layer.spaceship; } @@ -224,14 +222,16 @@ class _SpaceshipWallShape extends ChainShape { /// {@endtemplate} class SpaceshipWall extends BodyComponent with InitialPosition, Layered { /// {@macro spaceship_wall} - SpaceshipWall() : super(priority: RenderPriority.spaceshipSaucerWall) { + SpaceshipWall() + : super( + priority: RenderPriority.spaceshipSaucerWall, + renderBody: false, + ) { layer = Layer.spaceship; } @override Body createBody() { - renderBody = false; - final shape = _SpaceshipWallShape(); final fixtureDef = FixtureDef(shape); diff --git a/packages/pinball_components/lib/src/components/spaceship_rail.dart b/packages/pinball_components/lib/src/components/spaceship_rail.dart index d76e8e25..84de1742 100644 --- a/packages/pinball_components/lib/src/components/spaceship_rail.dart +++ b/packages/pinball_components/lib/src/components/spaceship_rail.dart @@ -30,9 +30,9 @@ class _SpaceshipRailRamp extends BodyComponent with Layered { : super( priority: RenderPriority.spaceshipRail, children: [_SpaceshipRailRampSpriteComponent()], + renderBody: false, ) { layer = Layer.spaceshipExitRail; - renderBody = false; } List _createFixtureDefs() { @@ -152,9 +152,7 @@ class _SpaceshipRailForeground extends SpriteComponent with HasGameRef { /// Represents the ground bases of the [_SpaceshipRailRamp]. class _SpaceshipRailBase extends BodyComponent with InitialPosition { - _SpaceshipRailBase({required this.radius}) { - renderBody = false; - } + _SpaceshipRailBase({required this.radius}) : super(renderBody: false); final double radius; @@ -177,7 +175,6 @@ class _SpaceshipRailExit extends LayerSensor { insideLayer: Layer.spaceshipExitRail, insidePriority: RenderPriority.ballOnSpaceshipRail, ) { - renderBody = false; layer = Layer.spaceshipExitRail; } diff --git a/packages/pinball_components/lib/src/components/spaceship_ramp.dart b/packages/pinball_components/lib/src/components/spaceship_ramp.dart index a1c3d289..3f20153f 100644 --- a/packages/pinball_components/lib/src/components/spaceship_ramp.dart +++ b/packages/pinball_components/lib/src/components/spaceship_ramp.dart @@ -101,9 +101,9 @@ class _SpaceshipRampBackground extends BodyComponent children: [ _SpaceshipRampBackgroundRampSpriteComponent(), ], + renderBody: false, ) { layer = Layer.spaceshipEntranceRamp; - renderBody = false; } /// Width between walls of the ramp. @@ -248,9 +248,9 @@ class _SpaceshipRampForegroundRailing extends BodyComponent : super( priority: RenderPriority.spaceshipRampForegroundRailing, children: [_SpaceshipRampForegroundRailingSpriteComponent()], + renderBody: false, ) { layer = Layer.spaceshipEntranceRamp; - renderBody = false; } List _createFixtureDefs() { @@ -313,8 +313,7 @@ class _SpaceshipRampForegroundRailingSpriteComponent extends SpriteComponent } class _SpaceshipRampBase extends BodyComponent with InitialPosition, Layered { - _SpaceshipRampBase() { - renderBody = false; + _SpaceshipRampBase() : super(renderBody: false) { layer = Layer.board; } @@ -355,9 +354,7 @@ class _SpaceshipRampOpening extends LayerSensor { orientation: LayerEntranceOrientation.down, insidePriority: RenderPriority.ballOnSpaceshipRamp, outsidePriority: outsidePriority, - ) { - renderBody = false; - } + ); final double _rotation; diff --git a/packages/pinball_components/lib/src/components/sparky_bumper.dart b/packages/pinball_components/lib/src/components/sparky_bumper.dart index 51a1e81e..7ef98541 100644 --- a/packages/pinball_components/lib/src/components/sparky_bumper.dart +++ b/packages/pinball_components/lib/src/components/sparky_bumper.dart @@ -29,9 +29,8 @@ class SparkyBumper extends BodyComponent with InitialPosition { ), if (children != null) ...children, ], - ) { - renderBody = false; - } + renderBody: false, + ); /// {@macro sparky_bumper} SparkyBumper.a({ @@ -74,8 +73,6 @@ class SparkyBumper extends BodyComponent with InitialPosition { @override Body createBody() { - renderBody = false; - final shape = EllipseShape( center: Vector2.zero(), majorRadius: _majorRadius, diff --git a/packages/pinball_components/lib/src/components/sparky_computer.dart b/packages/pinball_components/lib/src/components/sparky_computer.dart index 481de63d..183c5c32 100644 --- a/packages/pinball_components/lib/src/components/sparky_computer.dart +++ b/packages/pinball_components/lib/src/components/sparky_computer.dart @@ -24,9 +24,8 @@ class _ComputerBase extends BodyComponent with InitialPosition { : super( priority: RenderPriority.computerBase, children: [_ComputerBaseSpriteComponent()], - ) { - renderBody = false; - } + renderBody: false, + ); List _createFixtureDefs() { final leftEdge = EdgeShape()