refactor: modified Flipper constructor

pull/47/head
alestiago 4 years ago
parent a25cea7e64
commit 3ce25f8534

@ -22,8 +22,7 @@ class Flipper extends BodyComponent with KeyboardHandler {
}) : _position = position, }) : _position = position,
_keys = keys; _keys = keys;
/// A left positioned [Flipper]. Flipper._left({
Flipper.left({
required Vector2 position, required Vector2 position,
}) : this._( }) : this._(
position: position, position: position,
@ -34,8 +33,7 @@ class Flipper extends BodyComponent with KeyboardHandler {
], ],
); );
/// A right positioned [Flipper]. Flipper._right({
Flipper.right({
required Vector2 position, required Vector2 position,
}) : this._( }) : this._(
position: position, position: position,
@ -46,15 +44,20 @@ class Flipper extends BodyComponent with KeyboardHandler {
], ],
); );
/// Constructs a [Flipper] from a [BoardSide].
///
/// A [Flipper._right] and [Flipper._left] besides being mirrored
/// horizontally, they also have different [LogicalKeyboardKey]s that
/// control them.
factory Flipper.fromSide({ factory Flipper.fromSide({
required BoardSide side, required BoardSide side,
required Vector2 position, required Vector2 position,
}) { }) {
switch (side) { switch (side) {
case BoardSide.left: case BoardSide.left:
return Flipper.left(position: position); return Flipper._left(position: position);
case BoardSide.right: case BoardSide.right:
return Flipper.right(position: position); return Flipper._right(position: position);
} }
} }

@ -20,8 +20,14 @@ void main() {
flameTester.test( flameTester.test(
'loads correctly', 'loads correctly',
(game) async { (game) async {
final leftFlipper = Flipper.left(position: Vector2.zero()); final leftFlipper = Flipper.fromSide(
final rightFlipper = Flipper.right(position: Vector2.zero()); side: BoardSide.left,
position: Vector2.zero(),
);
final rightFlipper = Flipper.fromSide(
side: BoardSide.right,
position: Vector2.zero(),
);
await game.ready(); await game.ready();
await game.ensureAddAll([leftFlipper, rightFlipper]); await game.ensureAddAll([leftFlipper, rightFlipper]);
@ -32,10 +38,17 @@ void main() {
group('constructor', () { group('constructor', () {
test('sets BoardSide', () { test('sets BoardSide', () {
final leftFlipper = Flipper.left(position: Vector2.zero()); final leftFlipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
expect(leftFlipper.side, equals(leftFlipper.side)); expect(leftFlipper.side, equals(leftFlipper.side));
final rightFlipper = Flipper.right(position: Vector2.zero()); final rightFlipper = Flipper.fromSide(
side: BoardSide.right,
position: Vector2.zero(),
);
expect(rightFlipper.side, equals(rightFlipper.side)); expect(rightFlipper.side, equals(rightFlipper.side));
}); });
}); });
@ -45,7 +58,10 @@ void main() {
'positions correctly', 'positions correctly',
(game) async { (game) async {
final position = Vector2.all(10); final position = Vector2.all(10);
final flipper = Flipper.left(position: position); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: position,
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
game.contains(flipper); game.contains(flipper);
@ -56,7 +72,10 @@ void main() {
flameTester.test( flameTester.test(
'is dynamic', 'is dynamic',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
expect(flipper.body.bodyType, equals(BodyType.dynamic)); expect(flipper.body.bodyType, equals(BodyType.dynamic));
@ -66,7 +85,10 @@ void main() {
flameTester.test( flameTester.test(
'ignores gravity', 'ignores gravity',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
expect(flipper.body.gravityScale, isZero); expect(flipper.body.gravityScale, isZero);
@ -76,7 +98,10 @@ void main() {
flameTester.test( flameTester.test(
'has greater mass than Ball', 'has greater mass than Ball',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
final ball = Ball(position: Vector2.zero()); final ball = Ball(position: Vector2.zero());
await game.ready(); await game.ready();
@ -94,7 +119,10 @@ void main() {
flameTester.test( flameTester.test(
'has three', 'has three',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
expect(flipper.body.fixtures.length, equals(3)); expect(flipper.body.fixtures.length, equals(3));
@ -104,7 +132,10 @@ void main() {
flameTester.test( flameTester.test(
'has density', 'has density',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final fixtures = flipper.body.fixtures; final fixtures = flipper.body.fixtures;
@ -132,7 +163,10 @@ void main() {
late Flipper flipper; late Flipper flipper;
setUp(() { setUp(() {
flipper = Flipper.left(position: Vector2.zero()); flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
}); });
testRawKeyDownEvents(leftKeys, (event) { testRawKeyDownEvents(leftKeys, (event) {
@ -196,7 +230,10 @@ void main() {
late Flipper flipper; late Flipper flipper;
setUp(() { setUp(() {
flipper = Flipper.right(position: Vector2.zero()); flipper = Flipper.fromSide(
side: BoardSide.right,
position: Vector2.zero(),
);
}); });
testRawKeyDownEvents(rightKeys, (event) { testRawKeyDownEvents(rightKeys, (event) {
@ -263,7 +300,10 @@ void main() {
flameTester.test( flameTester.test(
'position is at the left of the left Flipper', 'position is at the left of the left Flipper',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);
@ -276,7 +316,10 @@ void main() {
flameTester.test( flameTester.test(
'position is at the right of the right Flipper', 'position is at the right of the right Flipper',
(game) async { (game) async {
final flipper = Flipper.right(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.right,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);
@ -292,7 +335,10 @@ void main() {
flameTester.test( flameTester.test(
'limits enabled', 'limits enabled',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);
@ -311,7 +357,10 @@ void main() {
flameTester.test( flameTester.test(
'when Flipper is left', 'when Flipper is left',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);
@ -329,7 +378,10 @@ void main() {
flameTester.test( flameTester.test(
'when Flipper is right', 'when Flipper is right',
(game) async { (game) async {
final flipper = Flipper.right(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.right,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);
@ -352,7 +404,10 @@ void main() {
flameTester.test( flameTester.test(
'when Flipper is left', 'when Flipper is left',
(game) async { (game) async {
final flipper = Flipper.left(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.left,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);
@ -376,7 +431,10 @@ void main() {
flameTester.test( flameTester.test(
'when Flipper is right', 'when Flipper is right',
(game) async { (game) async {
final flipper = Flipper.right(position: Vector2.zero()); final flipper = Flipper.fromSide(
side: BoardSide.right,
position: Vector2.zero(),
);
await game.ensureAdd(flipper); await game.ensureAdd(flipper);
final flipperAnchor = FlipperAnchor(flipper: flipper); final flipperAnchor = FlipperAnchor(flipper: flipper);

Loading…
Cancel
Save