refactor: move to components package

pull/106/head
Allison Ryan 4 years ago
parent 4db897196a
commit f031359439

@ -1,5 +1,6 @@
import 'package:flame/components.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart';
/// {@template board}
/// The main flat surface of the [PinballGame].

@ -1,7 +1,5 @@
export 'ball.dart';
export 'baseboard.dart';
export 'board.dart';
export 'board_side.dart';
export 'bonus_word.dart';
export 'chrome_dino.dart';
export 'flipper.dart';

@ -10,8 +10,8 @@ extension PinballGameAssetsX on PinballGame {
images.load(components.Assets.images.ball.keyName),
images.load(Assets.images.components.flipper.path),
images.load(Assets.images.components.background.path),
images.load(Assets.images.components.baseboards.leftBaseboard.path),
images.load(Assets.images.components.baseboards.rightBaseboard.path),
images.load(components.Assets.images.baseboard.left.keyName),
images.load(components.Assets.images.baseboard.right.keyName),
images.load(Assets.images.components.spaceship.androidTop.path),
images.load(Assets.images.components.spaceship.androidBottom.path),
images.load(Assets.images.components.spaceship.lower.path),

@ -21,9 +21,6 @@ class $AssetsImagesComponentsGen {
AssetGenImage get background =>
const AssetGenImage('assets/images/components/background.png');
$AssetsImagesComponentsBaseboardsGen get baseboards =>
const $AssetsImagesComponentsBaseboardsGen();
/// File path: assets/images/components/flipper.png
AssetGenImage get flipper =>
const AssetGenImage('assets/images/components/flipper.png');
@ -32,18 +29,6 @@ class $AssetsImagesComponentsGen {
const $AssetsImagesComponentsSpaceshipGen();
}
class $AssetsImagesComponentsBaseboardsGen {
const $AssetsImagesComponentsBaseboardsGen();
/// File path: assets/images/components/baseboards/left-baseboard.png
AssetGenImage get leftBaseboard => const AssetGenImage(
'assets/images/components/baseboards/left-baseboard.png');
/// File path: assets/images/components/baseboards/right-baseboard.png
AssetGenImage get rightBaseboard => const AssetGenImage(
'assets/images/components/baseboards/right-baseboard.png');
}
class $AssetsImagesComponentsSpaceshipGen {
const $AssetsImagesComponentsSpaceshipGen();

@ -9,6 +9,16 @@ class $AssetsImagesGen {
const $AssetsImagesGen();
AssetGenImage get ball => const AssetGenImage('assets/images/ball.png');
$AssetsImagesBaseboardGen get baseboard => const $AssetsImagesBaseboardGen();
}
class $AssetsImagesBaseboardGen {
const $AssetsImagesBaseboardGen();
AssetGenImage get left =>
const AssetGenImage('assets/images/baseboard/left.png');
AssetGenImage get right =>
const AssetGenImage('assets/images/baseboard/right.png');
}
class Assets {

@ -2,9 +2,11 @@ import 'dart:math' as math;
import 'package:flame/components.dart';
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball/gen/assets.gen.dart';
import 'package:pinball_components/pinball_components.dart' hide Assets;
import 'package:pinball_components/pinball_components.dart';
// ignore_for_file: comment_references
// TODO(allisonryan0002): Revisit ignore lint rule once Flipper is moved to this
// package.
/// {@template baseboard}
/// Wing-shaped board piece to corral the [Ball] towards the [Flipper]s.
@ -90,8 +92,8 @@ class Baseboard extends BodyComponent with InitialPosition {
final sprite = await gameRef.loadSprite(
(_side.isLeft)
? Assets.images.components.baseboards.leftBaseboard.path
: Assets.images.components.baseboards.rightBaseboard.path,
? Assets.images.baseboard.left.keyName
: Assets.images.baseboard.right.keyName,
);
await add(

@ -1,4 +1,6 @@
import 'package:pinball/game/game.dart';
// ignore_for_file: comment_references
// TODO(allisonryan0002): Revisit ignore lint rule once Kicker is moved to this
// package.
/// Indicates a side of the board.
///

@ -1,4 +1,6 @@
export 'ball.dart';
export 'baseboard.dart';
export 'board_side.dart';
export 'fire_effect.dart';
export 'initial_position.dart';
export 'layer.dart';

@ -26,6 +26,8 @@ flutter:
generate: true
assets:
- assets/images/
- assets/images/baseboard/
flutter_gen:
line_length: 80

@ -6,7 +6,6 @@
// https://opensource.org/licenses/MIT.
import 'package:dashbook/dashbook.dart';
import 'package:flutter/material.dart';
import 'package:sandbox/stories/effects/effects.dart';
import 'package:sandbox/stories/stories.dart';
void main() {
@ -15,5 +14,6 @@ void main() {
addBallStories(dashbook);
addLayerStories(dashbook);
addEffectsStories(dashbook);
addBaseboardStories(dashbook);
runApp(dashbook);
}

@ -0,0 +1,15 @@
import 'package:dashbook/dashbook.dart';
import 'package:flame/game.dart';
import 'package:sandbox/common/common.dart';
import 'package:sandbox/stories/baseboard/basic.dart';
void addBaseboardStories(Dashbook dashbook) {
dashbook.storiesOf('Baseboard').add(
'Basic',
(context) => GameWidget(
game: BasicBaseboardGame(),
),
codeLink: buildSourceLink('baseboard/basic.dart'),
info: BasicBaseboardGame.info,
);
}

@ -0,0 +1,26 @@
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:pinball_components/pinball_components.dart';
import 'package:sandbox/common/common.dart';
class BasicBaseboardGame extends BasicGame {
static const info = '''
Basic example of how a Baseboard works.
''';
@override
Future<void> onLoad() async {
await super.onLoad();
final center = screenToWorld(camera.viewport.canvasSize! / 2);
final leftBaseboard = Baseboard(side: BoardSide.left)
..initialPosition = center - Vector2(Baseboard.size.x, 0);
final rightBaseboard = Baseboard(side: BoardSide.right)
..initialPosition = center + Vector2(Baseboard.size.x, 0);
await addAll([
leftBaseboard,
rightBaseboard,
]);
}
}

@ -1,2 +1,4 @@
export 'ball/ball.dart';
export 'baseboard/baseboard.dart';
export 'effects/effects.dart';
export 'layer/layer.dart';

@ -3,12 +3,16 @@
import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart';
import '../../helpers/helpers.dart';
void main() {
group('Baseboard', () {
// TODO(allisonryan0002): Add golden tests.
TestWidgetsFlutterBinding.ensureInitialized();
final flameTester = FlameTester(Forge2DGame.new);
final flameTester = FlameTester(TestGame.new);
flameTester.test(
'loads correctly',
@ -61,14 +65,14 @@ void main() {
group('fixtures', () {
flameTester.test(
'has six',
'has seven',
(game) async {
final baseboard = Baseboard(
side: BoardSide.left,
);
await game.ensureAdd(baseboard);
expect(baseboard.body.fixtures.length, equals(6));
expect(baseboard.body.fixtures.length, equals(7));
},
);
});

@ -1,5 +1,5 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart';
void main() {
group(

@ -43,7 +43,6 @@ flutter:
assets:
- assets/images/components/
- assets/images/components/baseboards/
- assets/images/components/spaceship/
flutter_gen:

@ -3,6 +3,7 @@
import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart';
import '../../helpers/helpers.dart';

@ -4,6 +4,7 @@ import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:pinball/game/game.dart';
import 'package:pinball_components/pinball_components.dart';
void main() {
group('Kicker', () {

Loading…
Cancel
Save