refactor: renamed SpaceshipExitRail to SpaceshipRail

pull/130/head
RuiAlonso 4 years ago
parent 0e21e43ef2
commit 66b0fc43c5

@ -21,15 +21,6 @@ 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),
<<<<<<< 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.spaceshipRamp.keyName),
images.load( images.load(
components.Assets.images.spaceshipRamp.spaceshipRailingBg.keyName, components.Assets.images.spaceshipRamp.spaceshipRailingBg.keyName,
@ -37,9 +28,10 @@ extension PinballGameAssetsX on PinballGame {
images.load( images.load(
components.Assets.images.spaceshipRamp.spaceshipRailingFg.keyName, 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.background.path),
images.load(Assets.images.components.spaceshipDropTube.path),
>>>>>>> main
]); ]);
} }
} }

@ -45,7 +45,7 @@ class PinballGame extends Forge2DGame
); );
unawaited( unawaited(
addFromBlueprint( addFromBlueprint(
SpaceshipExitRail(), SpaceshipRail(),
), ),
); );

@ -20,10 +20,6 @@ class $AssetsImagesComponentsGen {
/// File path: assets/images/components/background.png /// File path: assets/images/components/background.png
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');
} }
class Assets { class Assets {

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

@ -15,5 +15,5 @@ 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'; export 'spaceship_rail.dart';
export 'spaceship_ramp.dart'; export 'spaceship_ramp.dart';

@ -37,7 +37,7 @@ class Spaceship extends Forge2DBlueprint {
AndroidHead()..initialPosition = position, AndroidHead()..initialPosition = position,
SpaceshipHole( SpaceshipHole(
outsideLayer: Layer.spaceshipExitRail, outsideLayer: Layer.spaceshipExitRail,
outsidePriority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail, outsidePriority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail,
)..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,

@ -7,27 +7,27 @@ import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:pinball_components/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_rail}
/// A [Blueprint] for the spaceship drop tube. /// A [Blueprint] for the spaceship drop tube.
/// {@endtemplate} /// {@endtemplate}
class SpaceshipExitRail extends Forge2DBlueprint { class SpaceshipRail extends Forge2DBlueprint {
/// {@macro spaceship_exit_rail} /// {@macro spaceship_rail}
SpaceshipExitRail(); SpaceshipRail();
/// Base priority for ball while be in [_SpaceshipExitRailRamp]. /// Base priority for ball while be in [_SpaceshipRailRamp].
static const ballPriorityWhenOnSpaceshipExitRail = 2; static const ballPriorityWhenOnSpaceshipRail = 2;
@override @override
void build(_) { void build(_) {
addAllContactCallback([ addAllContactCallback([
SpaceshipExitRailEndBallContactCallback(), SpaceshipRailExitBallContactCallback(),
]); ]);
final exitRailRamp = _SpaceshipExitRailRamp(); final exitRailRamp = _SpaceshipRailRamp();
final exitRailEnd = SpaceshipExitRailEnd(); final exitRailEnd = SpaceshipRailExit();
final topBase = _SpaceshipExitRailBase(radius: 0.55) final topBase = _SpaceshipRailBase(radius: 0.55)
..initialPosition = Vector2(-26.15, 18.65); ..initialPosition = Vector2(-26.15, 18.65);
final bottomBase = _SpaceshipExitRailBase(radius: 0.8) final bottomBase = _SpaceshipRailBase(radius: 0.8)
..initialPosition = Vector2(-25.5, -12.9); ..initialPosition = Vector2(-25.5, -12.9);
addAll([ addAll([
@ -39,11 +39,11 @@ class SpaceshipExitRail extends Forge2DBlueprint {
} }
} }
class _SpaceshipExitRailRamp extends BodyComponent /// Represents the spaceship drop rail from the [Spaceship].
with InitialPosition, Layered { class _SpaceshipRailRamp extends BodyComponent with InitialPosition, Layered {
_SpaceshipExitRailRamp() _SpaceshipRailRamp()
: super( : super(
priority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail - 1, priority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail - 1,
) { ) {
renderBody = false; renderBody = false;
layer = Layer.spaceshipExitRail; layer = Layer.spaceshipExitRail;
@ -101,7 +101,7 @@ class _SpaceshipExitRailRamp extends BodyComponent
final middleRightCurveShape = BezierCurveShape( final middleRightCurveShape = BezierCurveShape(
controlPoints: [ controlPoints: [
Vector2(-27.2, 21.3), topRightStraightShape.vertex1,
Vector2(-16.5, 11.4), Vector2(-16.5, 11.4),
Vector2(-25.29, -1.7), Vector2(-25.29, -1.7),
], ],
@ -155,11 +155,11 @@ class _SpaceshipExitRailRamp extends BodyComponent
} }
} }
class _SpaceshipExitRailBase extends BodyComponent /// Represents the ground bases of the [_SpaceshipRailRamp].
with InitialPosition, Layered { class _SpaceshipRailBase extends BodyComponent with InitialPosition, Layered {
_SpaceshipExitRailBase({required this.radius}) _SpaceshipRailBase({required this.radius})
: super( : super(
priority: SpaceshipExitRail.ballPriorityWhenOnSpaceshipExitRail + 1, priority: SpaceshipRail.ballPriorityWhenOnSpaceshipRail + 1,
) { ) {
renderBody = false; renderBody = false;
layer = Layer.board; 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] /// A sensor [BodyComponent] responsible for sending the [Ball]
/// back to the board. /// back to the board.
/// {@endtemplate} /// {@endtemplate}
class SpaceshipExitRailEnd extends RampOpening { class SpaceshipRailExit extends RampOpening {
/// {@macro spaceship_exit_rail_end} /// {@macro spaceship_rail_exit}
SpaceshipExitRailEnd() SpaceshipRailExit()
: super( : super(
insideLayer: Layer.spaceshipExitRail, insideLayer: Layer.spaceshipExitRail,
orientation: RampOrientation.down, orientation: RampOrientation.down,
@ -209,14 +209,14 @@ class SpaceshipExitRailEnd extends RampOpening {
} }
/// [ContactCallback] that handles the contact between the [Ball] /// [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 /// It resets the [Ball] priority and filter data so it will "be back" on the
/// board. /// board.
class SpaceshipExitRailEndBallContactCallback class SpaceshipRailExitBallContactCallback
extends ContactCallback<SpaceshipExitRailEnd, Ball> { extends ContactCallback<SpaceshipRailExit, Ball> {
@override @override
void begin(SpaceshipExitRailEnd exitRail, Ball ball, _) { void begin(SpaceshipRailExit exitRail, Ball ball, _) {
ball ball
..sendTo(exitRail.outsidePriority) ..sendTo(exitRail.outsidePriority)
..layer = exitRail.outsideLayer; ..layer = exitRail.outsideLayer;

@ -17,7 +17,7 @@ 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 MockSpaceshipRailExit extends Mock implements SpaceshipRailExit {}
class MockContact extends Mock implements Contact {} class MockContact extends Mock implements Contact {}

@ -9,18 +9,18 @@ import 'package:pinball_components/pinball_components.dart';
import '../../helpers/helpers.dart'; import '../../helpers/helpers.dart';
void main() { void main() {
group('SpaceshipExitRail', () { group('SpaceshipRail', () {
TestWidgetsFlutterBinding.ensureInitialized(); TestWidgetsFlutterBinding.ensureInitialized();
final flameTester = FlameTester(TestGame.new); final flameTester = FlameTester(TestGame.new);
flameTester.test( flameTester.test(
'loads correctly', 'loads correctly',
(game) async { (game) async {
final spaceshipExitRail = SpaceshipExitRail(); final spaceshipRail = SpaceshipRail();
await game.addFromBlueprint(spaceshipExitRail); await game.addFromBlueprint(spaceshipRail);
await game.ready(); await game.ready();
for (final element in spaceshipExitRail.components) { for (final element in spaceshipRail.components) {
expect(game.contains(element), isTrue); expect(game.contains(element), isTrue);
} }
}, },
@ -29,9 +29,9 @@ void main() {
// TODO(alestiago): Make ContactCallback private and use `beginContact` // TODO(alestiago): Make ContactCallback private and use `beginContact`
// instead. // instead.
group('SpaceshipExitHoleBallContactCallback', () { group('SpaceshipRailExitBallContactCallback', () {
late Forge2DGame game; late Forge2DGame game;
late SpaceshipExitRailEnd exitRailEnd; late SpaceshipRailExit railExit;
late Ball ball; late Ball ball;
late Body body; late Body body;
late Fixture fixture; late Fixture fixture;
@ -40,7 +40,7 @@ void main() {
setUp(() { setUp(() {
game = MockGame(); game = MockGame();
exitRailEnd = MockSpaceshipExitRailEnd(); railExit = MockSpaceshipRailExit();
ball = MockBall(); ball = MockBall();
body = MockBody(); body = MockBody();
@ -55,28 +55,28 @@ void main() {
setUp(() { setUp(() {
when(() => ball.priority).thenReturn(1); when(() => ball.priority).thenReturn(1);
when(() => exitRailEnd.outsideLayer).thenReturn(Layer.board); when(() => railExit.outsideLayer).thenReturn(Layer.board);
when(() => exitRailEnd.outsidePriority).thenReturn(0); when(() => railExit.outsidePriority).thenReturn(0);
}); });
test('changes the ball priority on contact', () { test('changes the ball priority on contact', () {
SpaceshipExitRailEndBallContactCallback().begin( SpaceshipRailExitBallContactCallback().begin(
exitRailEnd, railExit,
ball, ball,
MockContact(), MockContact(),
); );
verify(() => ball.sendTo(exitRailEnd.outsidePriority)).called(1); verify(() => ball.sendTo(railExit.outsidePriority)).called(1);
}); });
test('changes the ball layer on contact', () { test('changes the ball layer on contact', () {
SpaceshipExitRailEndBallContactCallback().begin( SpaceshipRailExitBallContactCallback().begin(
exitRailEnd, railExit,
ball, ball,
MockContact(), MockContact(),
); );
verify(() => ball.layer = exitRailEnd.outsideLayer).called(1); verify(() => ball.layer = railExit.outsideLayer).called(1);
}); });
}); });
} }
Loading…
Cancel
Save