feat: made InitialPosition position the body

pull/50/head
alestiago 4 years ago
parent ffbf47d840
commit daede67b67

@ -40,7 +40,6 @@ class Ball extends BodyComponent<PinballGame> with InitialPosition {
final bodyDef = BodyDef()
..userData = this
..position = initialPosition
..type = BodyType.dynamic;
return world.createBody(bodyDef)..createFixture(fixtureDef);

@ -58,7 +58,6 @@ class Baseboard extends BodyComponent with InitialPosition {
const angle = math.pi / 7;
final bodyDef = BodyDef()
..position = initialPosition
..type = BodyType.static
..angle = _side.isLeft ? -angle : angle;

@ -130,7 +130,6 @@ class BonusLetter extends BodyComponent<PinballGame>
final bodyDef = BodyDef()
..userData = this
..position = initialPosition
..type = BodyType.static;
return world.createBody(bodyDef)..createFixture(fixtureDef);

@ -190,9 +190,7 @@ class Flipper extends BodyComponent with KeyboardHandler, InitialPosition {
Body createBody() {
final bodyDef = BodyDef()
..gravityScale = 0
..type = BodyType.dynamic
..position = initialPosition;
..type = BodyType.dynamic;
final body = world.createBody(bodyDef);
_createFixtureDefs().forEach(body.createFixture);

@ -9,9 +9,6 @@ mixin InitialPosition<T extends Forge2DGame> on BodyComponent<T> {
@override
Future<void> onLoad() async {
await super.onLoad();
assert(
body.position == initialPosition,
'Body position is not equal to initial position.',
);
body.position.setFrom(initialPosition);
}
}

@ -22,8 +22,6 @@ class JointAnchor extends BodyComponent with InitialPosition {
@override
Body createBody() {
final bodyDef = BodyDef()..position = initialPosition;
return world.createBody(bodyDef);
return world.createBody(BodyDef());
}
}

@ -148,10 +148,7 @@ class Pathway extends BodyComponent with InitialPosition {
@override
Body createBody() {
final bodyDef = BodyDef()
..type = BodyType.static
..position = initialPosition;
final bodyDef = BodyDef()..type = BodyType.static;
final body = world.createBody(bodyDef);
for (final path in _paths) {
final chain = ChainShape()

@ -26,7 +26,6 @@ class Plunger extends BodyComponent with KeyboardHandler, InitialPosition {
final bodyDef = BodyDef()
..userData = this
..position = initialPosition
..type = BodyType.dynamic
..gravityScale = 0;

@ -27,9 +27,7 @@ class RoundBumper extends BodyComponent with ScorePoints, InitialPosition {
final fixtureDef = FixtureDef(shape)..restitution = 1;
final bodyDef = BodyDef()
..position = initialPosition
..type = BodyType.static;
final bodyDef = BodyDef()..type = BodyType.static;
return world.createBody(bodyDef)..createFixture(fixtureDef);
}

@ -83,8 +83,7 @@ class SlingShot extends BodyComponent with InitialPosition {
@override
Body createBody() {
final bodyDef = BodyDef()..position = initialPosition;
final body = world.createBody(bodyDef);
final body = world.createBody(BodyDef());
_createFixtureDefs().forEach(body.createFixture);
return body;

@ -12,13 +12,6 @@ class TestBodyComponent extends BodyComponent with InitialPosition {
}
}
class TestPositionedBodyComponent extends BodyComponent with InitialPosition {
@override
Body createBody() {
return world.createBody(BodyDef()..position = initialPosition);
}
}
void main() {
final flameTester = FlameTester(Forge2DGame.new);
group('InitialPosition', () {
@ -35,32 +28,11 @@ void main() {
);
});
flameTester.test(
'returns normally '
'when the body sets the position to initial position',
(game) async {
final component = TestPositionedBodyComponent()
..initialPosition = Vector2.zero();
await expectLater(
() async => game.ensureAdd(component),
returnsNormally,
);
},
);
flameTester.test(
'throws AssertionError '
'when not setting initialPosition to body',
(game) async {
final component = TestBodyComponent()..initialPosition = Vector2.zero();
await game.ensureAdd(component);
await expectLater(
() async => game.ensureAdd(component),
throwsAssertionError,
);
},
);
flameTester.test('positions correctly', (game) async {
final position = Vector2.all(10);
final component = TestBodyComponent()..initialPosition = position;
await game.ensureAdd(component);
expect(component.body.position, equals(position));
});
});
}

Loading…
Cancel
Save