diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index 913baa20..5d813ac4 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -21,15 +21,6 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.dashBumper.b.inactive.keyName), images.load(components.Assets.images.dashBumper.main.active.keyName), images.load(components.Assets.images.dashBumper.main.inactive.keyName), -<<<<<<< HEAD - images.load( - components.Assets.images.spaceshipRamp.spaceshipDropTube.keyName, - ), - images.load(Assets.images.components.background.path), - images.load(Assets.images.components.spaceshipRamp.path), - images.load(Assets.images.components.spaceshipRailingBg.path), - images.load(Assets.images.components.spaceshipRailingFg.path), -======= images.load(components.Assets.images.spaceshipRamp.spaceshipRamp.keyName), images.load( components.Assets.images.spaceshipRamp.spaceshipRailingBg.keyName, @@ -37,9 +28,10 @@ extension PinballGameAssetsX on PinballGame { images.load( components.Assets.images.spaceshipRamp.spaceshipRailingFg.keyName, ), + images.load( + components.Assets.images.spaceshipRamp.spaceshipDropTube.keyName, + ), images.load(Assets.images.components.background.path), - images.load(Assets.images.components.spaceshipDropTube.path), ->>>>>>> main ]); } } diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index bf121cd8..741aa799 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -45,7 +45,7 @@ class PinballGame extends Forge2DGame ); unawaited( addFromBlueprint( - SpaceshipExitRail(), + SpaceshipRail(), ), ); diff --git a/lib/gen/assets.gen.dart b/lib/gen/assets.gen.dart index 2fe23925..97be7f3e 100644 --- a/lib/gen/assets.gen.dart +++ b/lib/gen/assets.gen.dart @@ -20,10 +20,6 @@ class $AssetsImagesComponentsGen { /// File path: assets/images/components/background.png AssetGenImage get background => const AssetGenImage('assets/images/components/background.png'); - - /// File path: assets/images/components/spaceship-drop-tube.png - AssetGenImage get spaceshipDropTube => - const AssetGenImage('assets/images/components/spaceship-drop-tube.png'); } class Assets { diff --git a/packages/pinball_components/assets/images/spaceship_ramp/spaceship-drop-tube.png b/packages/pinball_components/assets/images/spaceship_ramp/spaceship_drop_tube.png similarity index 100% rename from packages/pinball_components/assets/images/spaceship_ramp/spaceship-drop-tube.png rename to packages/pinball_components/assets/images/spaceship_ramp/spaceship_drop_tube.png diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index fe9fe6be..2c935aaa 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -83,6 +83,10 @@ class $AssetsImagesFlipperGen { class $AssetsImagesSpaceshipRampGen { const $AssetsImagesSpaceshipRampGen(); + /// File path: assets/images/spaceship_ramp/spaceship_drop_tube.png + AssetGenImage get spaceshipDropTube => const AssetGenImage( + 'assets/images/spaceship_ramp/spaceship_drop_tube.png'); + /// File path: assets/images/spaceship_ramp/spaceship_railing_bg.png AssetGenImage get spaceshipRailingBg => const AssetGenImage( 'assets/images/spaceship_ramp/spaceship_railing_bg.png'); diff --git a/packages/pinball_components/lib/src/components/components.dart b/packages/pinball_components/lib/src/components/components.dart index aec5e287..2c868279 100644 --- a/packages/pinball_components/lib/src/components/components.dart +++ b/packages/pinball_components/lib/src/components/components.dart @@ -15,5 +15,5 @@ export 'layer.dart'; export 'ramp_opening.dart'; export 'shapes/shapes.dart'; export 'spaceship.dart'; -export 'spaceship_exit_rail.dart'; +export 'spaceship_rail.dart'; export 'spaceship_ramp.dart'; diff --git a/packages/pinball_components/lib/src/components/spaceship.dart b/packages/pinball_components/lib/src/components/spaceship.dart index 21ba690e..d9f50653 100644 --- a/packages/pinball_components/lib/src/components/spaceship.dart +++ b/packages/pinball_components/lib/src/components/spaceship.dart @@ -37,7 +37,7 @@ class Spaceship extends Forge2DBlueprint { AndroidHead()..initialPosition = position, SpaceshipHole( outsideLayer: Layer.spaceshipExitRail, - outsidePriority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail, + outsidePriority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail, )..initialPosition = position - Vector2(5.2, 4.8), SpaceshipHole()..initialPosition = position - Vector2(-7.2, 0.8), SpaceshipWall()..initialPosition = position, diff --git a/packages/pinball_components/lib/src/components/spaceship_exit_rail.dart b/packages/pinball_components/lib/src/components/spaceship_rail.dart similarity index 77% rename from packages/pinball_components/lib/src/components/spaceship_exit_rail.dart rename to packages/pinball_components/lib/src/components/spaceship_rail.dart index 92c43fb9..c881e8b3 100644 --- a/packages/pinball_components/lib/src/components/spaceship_exit_rail.dart +++ b/packages/pinball_components/lib/src/components/spaceship_rail.dart @@ -7,27 +7,27 @@ import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:pinball_components/gen/assets.gen.dart'; import 'package:pinball_components/pinball_components.dart' hide Assets; -/// {@template spaceship_exit_rail} +/// {@template spaceship_rail} /// A [Blueprint] for the spaceship drop tube. /// {@endtemplate} -class SpaceshipExitRail extends Forge2DBlueprint { - /// {@macro spaceship_exit_rail} - SpaceshipExitRail(); +class SpaceshipRail extends Forge2DBlueprint { + /// {@macro spaceship_rail} + SpaceshipRail(); - /// Base priority for ball while be in [_SpaceshipExitRailRamp]. - static const ballPriorityWhenOnSpaceshipExitRail = 2; + /// Base priority for ball while be in [_SpaceshipRailRamp]. + static const ballPriorityWhenOnSpaceshipRail = 2; @override void build(_) { addAllContactCallback([ - SpaceshipExitRailEndBallContactCallback(), + SpaceshipRailExitBallContactCallback(), ]); - final exitRailRamp = _SpaceshipExitRailRamp(); - final exitRailEnd = SpaceshipExitRailEnd(); - final topBase = _SpaceshipExitRailBase(radius: 0.55) + final exitRailRamp = _SpaceshipRailRamp(); + final exitRailEnd = SpaceshipRailExit(); + final topBase = _SpaceshipRailBase(radius: 0.55) ..initialPosition = Vector2(-26.15, 18.65); - final bottomBase = _SpaceshipExitRailBase(radius: 0.8) + final bottomBase = _SpaceshipRailBase(radius: 0.8) ..initialPosition = Vector2(-25.5, -12.9); addAll([ @@ -39,11 +39,11 @@ class SpaceshipExitRail extends Forge2DBlueprint { } } -class _SpaceshipExitRailRamp extends BodyComponent - with InitialPosition, Layered { - _SpaceshipExitRailRamp() +/// Represents the spaceship drop rail from the [Spaceship]. +class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered { + _SpaceshipRailRamp() : super( - priority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail - 1, + priority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail - 1, ) { renderBody = false; layer = Layer.spaceshipExitRail; @@ -101,7 +101,7 @@ class _SpaceshipExitRailRamp extends BodyComponent final middleRightCurveShape = BezierCurveShape( controlPoints: [ - Vector2(-27.2, 21.3), + topRightStraightShape.vertex1, Vector2(-16.5, 11.4), Vector2(-25.29, -1.7), ], @@ -155,11 +155,11 @@ class _SpaceshipExitRailRamp extends BodyComponent } } -class _SpaceshipExitRailBase extends BodyComponent - with InitialPosition, Layered { - _SpaceshipExitRailBase({required this.radius}) +/// Represents the ground bases of the [_SpaceshipRailRamp]. +class _SpaceshipRailBase extends BodyComponent with InitialPosition, Layered { + _SpaceshipRailBase({required this.radius}) : super( - priority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail + 1, + priority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail + 1, ) { renderBody = false; layer = Layer.board; @@ -181,13 +181,13 @@ class _SpaceshipExitRailBase extends BodyComponent } } -/// {@template spaceship_exit_rail_end} +/// {@template spaceship_rail_exit} /// A sensor [BodyComponent] responsible for sending the [Ball] /// back to the board. /// {@endtemplate} -class SpaceshipExitRailEnd extends RampOpening { - /// {@macro spaceship_exit_rail_end} - SpaceshipExitRailEnd() +class SpaceshipRailExit extends RampOpening { + /// {@macro spaceship_rail_exit} + SpaceshipRailExit() : super( insideLayer: Layer.spaceshipExitRail, orientation: RampOrientation.down, @@ -209,14 +209,14 @@ class SpaceshipExitRailEnd extends RampOpening { } /// [ContactCallback] that handles the contact between the [Ball] -/// and a [SpaceshipExitRailEnd]. +/// and a [SpaceshipRailExit]. /// /// It resets the [Ball] priority and filter data so it will "be back" on the /// board. -class SpaceshipExitRailEndBallContactCallback - extends ContactCallback { +class SpaceshipRailExitBallContactCallback + extends ContactCallback { @override - void begin(SpaceshipExitRailEnd exitRail, Ball ball, _) { + void begin(SpaceshipRailExit exitRail, Ball ball, _) { ball ..sendTo(exitRail.outsidePriority) ..layer = exitRail.outsideLayer; diff --git a/packages/pinball_components/test/helpers/mocks.dart b/packages/pinball_components/test/helpers/mocks.dart index dbe4d844..21d5d01a 100644 --- a/packages/pinball_components/test/helpers/mocks.dart +++ b/packages/pinball_components/test/helpers/mocks.dart @@ -17,7 +17,7 @@ class MockSpaceshipEntrance extends Mock implements SpaceshipEntrance {} class MockSpaceshipHole extends Mock implements SpaceshipHole {} -class MockSpaceshipExitRailEnd extends Mock implements SpaceshipExitRailEnd {} +class MockSpaceshipRailExit extends Mock implements SpaceshipRailExit {} class MockContact extends Mock implements Contact {} diff --git a/packages/pinball_components/test/src/components/spaceship_exit_rail_test.dart b/packages/pinball_components/test/src/components/spaceship_rail_test.dart similarity index 66% rename from packages/pinball_components/test/src/components/spaceship_exit_rail_test.dart rename to packages/pinball_components/test/src/components/spaceship_rail_test.dart index 1c7a0c70..6c5410b1 100644 --- a/packages/pinball_components/test/src/components/spaceship_exit_rail_test.dart +++ b/packages/pinball_components/test/src/components/spaceship_rail_test.dart @@ -9,18 +9,18 @@ import 'package:pinball_components/pinball_components.dart'; import '../../helpers/helpers.dart'; void main() { - group('SpaceshipExitRail', () { + group('SpaceshipRail', () { TestWidgetsFlutterBinding.ensureInitialized(); final flameTester = FlameTester(TestGame.new); flameTester.test( 'loads correctly', (game) async { - final spaceshipExitRail = SpaceshipExitRail(); - await game.addFromBlueprint(spaceshipExitRail); + final spaceshipRail = SpaceshipRail(); + await game.addFromBlueprint(spaceshipRail); await game.ready(); - for (final element in spaceshipExitRail.components) { + for (final element in spaceshipRail.components) { expect(game.contains(element), isTrue); } }, @@ -29,9 +29,9 @@ void main() { // TODO(alestiago): Make ContactCallback private and use `beginContact` // instead. - group('SpaceshipExitHoleBallContactCallback', () { + group('SpaceshipRailExitBallContactCallback', () { late Forge2DGame game; - late SpaceshipExitRailEnd exitRailEnd; + late SpaceshipRailExit railExit; late Ball ball; late Body body; late Fixture fixture; @@ -40,7 +40,7 @@ void main() { setUp(() { game = MockGame(); - exitRailEnd = MockSpaceshipExitRailEnd(); + railExit = MockSpaceshipRailExit(); ball = MockBall(); body = MockBody(); @@ -55,28 +55,28 @@ void main() { setUp(() { when(() => ball.priority).thenReturn(1); - when(() => exitRailEnd.outsideLayer).thenReturn(Layer.board); - when(() => exitRailEnd.outsidePriority).thenReturn(0); + when(() => railExit.outsideLayer).thenReturn(Layer.board); + when(() => railExit.outsidePriority).thenReturn(0); }); test('changes the ball priority on contact', () { - SpaceshipExitRailEndBallContactCallback().begin( - exitRailEnd, + SpaceshipRailExitBallContactCallback().begin( + railExit, ball, MockContact(), ); - verify(() => ball.sendTo(exitRailEnd.outsidePriority)).called(1); + verify(() => ball.sendTo(railExit.outsidePriority)).called(1); }); test('changes the ball layer on contact', () { - SpaceshipExitRailEndBallContactCallback().begin( - exitRailEnd, + SpaceshipRailExitBallContactCallback().begin( + railExit, ball, MockContact(), ); - verify(() => ball.layer = exitRailEnd.outsideLayer).called(1); + verify(() => ball.layer = railExit.outsideLayer).called(1); }); }); }