diff --git a/lib/game/components/bottom_group.dart b/lib/game/components/bottom_group.dart index f50e022a..d0184d33 100644 --- a/lib/game/components/bottom_group.dart +++ b/lib/game/components/bottom_group.dart @@ -1,7 +1,6 @@ import 'package:flame/components.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball_components/pinball_components.dart'; -import 'package:pinball_flame/pinball_flame.dart'; /// {@template bottom_group} /// Grouping of the board's symmetrical bottom [Component]s. @@ -9,11 +8,11 @@ import 'package:pinball_flame/pinball_flame.dart'; /// The [BottomGroup] consists of [Flipper]s, [Baseboard]s and [Kicker]s. /// {@endtemplate} // TODO(allisonryan0002): Consider renaming. -class BottomGroup extends Blueprint { +class BottomGroup extends Component { /// {@macro bottom_group} BottomGroup() : super( - components: [ + children: [ _BottomGroupSide(side: BoardSide.right), _BottomGroupSide(side: BoardSide.left), ], diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index e4155087..a5d0a622 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -45,7 +45,7 @@ class PinballGame extends Forge2DGame unawaited(add(CameraController(this))); unawaited(add(Backboard.waiting(position: Vector2(0, -88)))); await add(Drain()); - await addFromBlueprint(BottomGroup()); + await add(BottomGroup()); unawaited(addFromBlueprint(Boundaries())); unawaited(addFromBlueprint(LaunchRamp())); diff --git a/test/game/components/bottom_group_test.dart b/test/game/components/bottom_group_test.dart index fed9a7c9..3254f155 100644 --- a/test/game/components/bottom_group_test.dart +++ b/test/game/components/bottom_group_test.dart @@ -4,7 +4,6 @@ import 'package:flame_test/flame_test.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pinball/game/game.dart'; import 'package:pinball_components/pinball_components.dart'; -import 'package:pinball_flame/pinball_flame.dart'; import '../../helpers/helpers.dart'; @@ -24,8 +23,10 @@ void main() { flameTester.test( 'loads correctly', (game) async { - await game.addFromBlueprint(BottomGroup()); - await game.ready(); + final bottomGroup = BottomGroup(); + await game.ensureAdd(bottomGroup); + + expect(game.contains(bottomGroup), isTrue); }, ); @@ -33,12 +34,13 @@ void main() { flameTester.test( 'one left flipper', (game) async { - await game.addFromBlueprint(BottomGroup()); - await game.ready(); + final bottomGroup = BottomGroup(); + await game.ensureAdd(bottomGroup); - final leftFlippers = game.descendants().whereType().where( - (flipper) => flipper.side.isLeft, - ); + final leftFlippers = + bottomGroup.descendants().whereType().where( + (flipper) => flipper.side.isLeft, + ); expect(leftFlippers.length, equals(1)); }, ); @@ -46,12 +48,13 @@ void main() { flameTester.test( 'one right flipper', (game) async { - await game.addFromBlueprint(BottomGroup()); - await game.ready(); + final bottomGroup = BottomGroup(); + await game.ensureAdd(bottomGroup); - final rightFlippers = game.descendants().whereType().where( - (flipper) => flipper.side.isRight, - ); + final rightFlippers = + bottomGroup.descendants().whereType().where( + (flipper) => flipper.side.isRight, + ); expect(rightFlippers.length, equals(1)); }, ); @@ -59,10 +62,11 @@ void main() { flameTester.test( 'two Baseboards', (game) async { - await game.addFromBlueprint(BottomGroup()); - await game.ready(); + final bottomGroup = BottomGroup(); + await game.ensureAdd(bottomGroup); - final basebottomGroups = game.descendants().whereType(); + final basebottomGroups = + bottomGroup.descendants().whereType(); expect(basebottomGroups.length, equals(2)); }, ); @@ -70,10 +74,10 @@ void main() { flameTester.test( 'two Kickers', (game) async { - await game.addFromBlueprint(BottomGroup()); - await game.ready(); + final bottomGroup = BottomGroup(); + await game.ensureAdd(bottomGroup); - final kickers = game.descendants().whereType(); + final kickers = bottomGroup.descendants().whereType(); expect(kickers.length, equals(2)); }, ); diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index ee9560da..effa1a56 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -80,6 +80,18 @@ void main() { }, ); + flameTester.test( + 'has only one BottomGroup', + (game) async { + await game.ready(); + + expect( + game.children.whereType().length, + equals(1), + ); + }, + ); + flameTester.test( 'has only one Plunger', (game) async {