refactor: moved SpaceshipExitRail to pinball components

pull/130/head
RuiAlonso 4 years ago
parent 0285698e5c
commit 3e6a38f6a3

@ -9,5 +9,4 @@ export 'kicker.dart';
export 'launcher_ramp.dart'; export 'launcher_ramp.dart';
export 'plunger.dart'; export 'plunger.dart';
export 'score_points.dart'; export 'score_points.dart';
export 'spaceship_exit_rail.dart';
export 'wall.dart'; export 'wall.dart';

@ -21,11 +21,13 @@ extension PinballGameAssetsX on PinballGame {
images.load(components.Assets.images.dashBumper.b.inactive.keyName), 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.active.keyName),
images.load(components.Assets.images.dashBumper.main.inactive.keyName), images.load(components.Assets.images.dashBumper.main.inactive.keyName),
images.load(
components.Assets.images.spaceshipRamp.spaceshipDropTube.keyName,
),
images.load(Assets.images.components.background.path), images.load(Assets.images.components.background.path),
images.load(Assets.images.components.spaceshipRamp.path), images.load(Assets.images.components.spaceshipRamp.path),
images.load(Assets.images.components.spaceshipRailingBg.path), images.load(Assets.images.components.spaceshipRailingBg.path),
images.load(Assets.images.components.spaceshipRailingFg.path), images.load(Assets.images.components.spaceshipRailingFg.path),
images.load(Assets.images.components.spaceshipDropTube.path),
]); ]);
} }
} }

@ -21,10 +21,6 @@ class $AssetsImagesComponentsGen {
AssetGenImage get background => AssetGenImage get background =>
const AssetGenImage('assets/images/components/background.png'); 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');
/// File path: assets/images/components/spaceship_railing_bg.png /// File path: assets/images/components/spaceship_railing_bg.png
AssetGenImage get spaceshipRailingBg => AssetGenImage get spaceshipRailingBg =>
const AssetGenImage('assets/images/components/spaceship_railing_bg.png'); const AssetGenImage('assets/images/components/spaceship_railing_bg.png');

@ -27,6 +27,9 @@ class $AssetsImagesGen {
AssetGenImage get spaceshipBridge => AssetGenImage get spaceshipBridge =>
const AssetGenImage('assets/images/spaceship_bridge.png'); const AssetGenImage('assets/images/spaceship_bridge.png');
$AssetsImagesSpaceshipRampGen get spaceshipRamp =>
const $AssetsImagesSpaceshipRampGen();
/// File path: assets/images/spaceship_saucer.png /// File path: assets/images/spaceship_saucer.png
AssetGenImage get spaceshipSaucer => AssetGenImage get spaceshipSaucer =>
const AssetGenImage('assets/images/spaceship_saucer.png'); const AssetGenImage('assets/images/spaceship_saucer.png');
@ -77,6 +80,14 @@ class $AssetsImagesFlipperGen {
const AssetGenImage('assets/images/flipper/right.png'); const AssetGenImage('assets/images/flipper/right.png');
} }
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');
}
class $AssetsImagesDashBumperAGen { class $AssetsImagesDashBumperAGen {
const $AssetsImagesDashBumperAGen(); const $AssetsImagesDashBumperAGen();

@ -13,3 +13,4 @@ export 'layer.dart';
export 'ramp_opening.dart'; export 'ramp_opening.dart';
export 'shapes/shapes.dart'; export 'shapes/shapes.dart';
export 'spaceship.dart'; export 'spaceship.dart';
export 'spaceship_exit_rail.dart';

@ -37,7 +37,7 @@ class Spaceship extends Forge2DBlueprint {
AndroidHead()..initialPosition = position, AndroidHead()..initialPosition = position,
SpaceshipHole( SpaceshipHole(
outsideLayer: Layer.spaceshipExitRail, outsideLayer: Layer.spaceshipExitRail,
outsidePriority: 2, outsidePriority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail,
)..initialPosition = position - Vector2(5.2, 4.8), )..initialPosition = position - Vector2(5.2, 4.8),
SpaceshipHole()..initialPosition = position - Vector2(-7.2, 0.8), SpaceshipHole()..initialPosition = position - Vector2(-7.2, 0.8),
SpaceshipWall()..initialPosition = position, SpaceshipWall()..initialPosition = position,

@ -4,7 +4,7 @@ import 'dart:math' as math;
import 'package:flame/components.dart'; import 'package:flame/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:pinball/gen/assets.gen.dart'; import 'package:pinball_components/gen/assets.gen.dart';
import 'package:pinball_components/pinball_components.dart' hide Assets; import 'package:pinball_components/pinball_components.dart' hide Assets;
/// {@template spaceship_exit_rail} /// {@template spaceship_exit_rail}
@ -14,7 +14,7 @@ class SpaceshipExitRail extends Forge2DBlueprint {
/// {@macro spaceship_exit_rail} /// {@macro spaceship_exit_rail}
SpaceshipExitRail(); SpaceshipExitRail();
/// Base priority for wall while be on jetpack ramp. /// Base priority for ball while be in [_SpaceshipExitRailRamp].
static const ballPriorityWhenOnSpaceshipExitRail = 2; static const ballPriorityWhenOnSpaceshipExitRail = 2;
@override @override
@ -73,7 +73,7 @@ class _SpaceshipExitRailRamp extends BodyComponent
final middleLeftCurveShape = BezierCurveShape( final middleLeftCurveShape = BezierCurveShape(
controlPoints: [ controlPoints: [
Vector2(-30.93, 18.2), topLeftCurveShape.vertices.last,
Vector2(-22.6, 10.3), Vector2(-22.6, 10.3),
Vector2(-30, 0.2), Vector2(-30, 0.2),
], ],
@ -83,7 +83,7 @@ class _SpaceshipExitRailRamp extends BodyComponent
final bottomLeftCurveShape = BezierCurveShape( final bottomLeftCurveShape = BezierCurveShape(
controlPoints: [ controlPoints: [
Vector2(-30, 0.2), middleLeftCurveShape.vertices.last,
Vector2(-36, -8.6), Vector2(-36, -8.6),
Vector2(-32.04, -18.3), Vector2(-32.04, -18.3),
], ],
@ -111,7 +111,7 @@ class _SpaceshipExitRailRamp extends BodyComponent
final bottomRightCurveShape = BezierCurveShape( final bottomRightCurveShape = BezierCurveShape(
controlPoints: [ controlPoints: [
Vector2(-25.29, -1.7), middleRightCurveShape.vertices.last,
Vector2(-29.91, -8.5), Vector2(-29.91, -8.5),
Vector2(-26.8, -15.7), Vector2(-26.8, -15.7),
], ],
@ -142,7 +142,7 @@ class _SpaceshipExitRailRamp extends BodyComponent
Future<void> _loadSprite() async { Future<void> _loadSprite() async {
final sprite = await gameRef.loadSprite( final sprite = await gameRef.loadSprite(
Assets.images.components.spaceshipDropTube.path, Assets.images.spaceshipRamp.spaceshipDropTube.keyName,
); );
final spriteComponent = SpriteComponent( final spriteComponent = SpriteComponent(
sprite: sprite, sprite: sprite,

@ -32,6 +32,7 @@ flutter:
- assets/images/dash_bumper/a/ - assets/images/dash_bumper/a/
- assets/images/dash_bumper/b/ - assets/images/dash_bumper/b/
- assets/images/dash_bumper/main/ - assets/images/dash_bumper/main/
- assets/images/spaceship_ramp/
flutter_gen: flutter_gen:
line_length: 80 line_length: 80

@ -17,6 +17,8 @@ class MockSpaceshipEntrance extends Mock implements SpaceshipEntrance {}
class MockSpaceshipHole extends Mock implements SpaceshipHole {} class MockSpaceshipHole extends Mock implements SpaceshipHole {}
class MockSpaceshipExitRailEnd extends Mock implements SpaceshipExitRailEnd {}
class MockContact extends Mock implements Contact {} class MockContact extends Mock implements Contact {}
class MockContactCallback extends Mock class MockContactCallback extends Mock

@ -1,14 +1,13 @@
import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart'; import 'package:mocktail/mocktail.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_components/pinball_components.dart';
import '../../helpers/helpers.dart'; import '../../helpers/helpers.dart';
void main() { void main() {
group('SpaceshipExitRail', () { group('SpaceshipExitRail', () {
late PinballGame game; late Forge2DGame game;
late SpaceshipExitRailEnd exitRailEnd; late SpaceshipExitRailEnd exitRailEnd;
late Ball ball; late Ball ball;
late Body body; late Body body;
@ -16,7 +15,7 @@ void main() {
late Filter filterData; late Filter filterData;
setUp(() { setUp(() {
game = MockPinballGame(); game = MockGame();
exitRailEnd = MockSpaceshipExitRailEnd(); exitRailEnd = MockSpaceshipExitRailEnd();

@ -66,8 +66,6 @@ class MockFilter extends Mock implements Filter {}
class MockFixture extends Mock implements Fixture {} class MockFixture extends Mock implements Fixture {}
class MockSpaceshipExitRailEnd extends Mock implements SpaceshipExitRailEnd {}
class MockComponentSet extends Mock implements ComponentSet {} class MockComponentSet extends Mock implements ComponentSet {}
class MockDashNestBumper extends Mock implements DashNestBumper {} class MockDashNestBumper extends Mock implements DashNestBumper {}

Loading…
Cancel
Save