diff --git a/packages/pinball_components/sandbox/lib/stories/dash_nest_bumper/stories.dart b/packages/pinball_components/sandbox/lib/stories/dash_nest_bumper/stories.dart deleted file mode 100644 index 22f792bc..00000000 --- a/packages/pinball_components/sandbox/lib/stories/dash_nest_bumper/stories.dart +++ /dev/null @@ -1,17 +0,0 @@ -import 'package:dashbook/dashbook.dart'; -import 'package:flame/game.dart'; -import 'package:sandbox/common/common.dart'; -import 'package:sandbox/stories/ball/basic_ball_game.dart'; -import 'package:sandbox/stories/dash_nest_bumper/big_dash_nest_bumper_game.dart'; - -void addDashNestBumperStories(Dashbook dashbook) { - dashbook.storiesOf('Dash Nest Bumpers').add( - 'Big', - (context) => GameWidget( - game: BigDashNestBumperGame() - ..trace = context.boolProperty('Trace', true), - ), - codeLink: buildSourceLink('dash_nest_bumper/big.dart'), - info: BasicBallGame.info, - ); -} diff --git a/packages/pinball_components/sandbox/lib/stories/dash_nest_bumper/big_dash_nest_bumper_game.dart b/packages/pinball_components/sandbox/lib/stories/flutter_forest/big_dash_nest_bumper_game.dart similarity index 66% rename from packages/pinball_components/sandbox/lib/stories/dash_nest_bumper/big_dash_nest_bumper_game.dart rename to packages/pinball_components/sandbox/lib/stories/flutter_forest/big_dash_nest_bumper_game.dart index 649256d8..c1407819 100644 --- a/packages/pinball_components/sandbox/lib/stories/dash_nest_bumper/big_dash_nest_bumper_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/flutter_forest/big_dash_nest_bumper_game.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'dart:ui'; +import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:pinball_components/pinball_components.dart'; import 'package:sandbox/common/common.dart'; import 'package:sandbox/stories/ball/basic_ball_game.dart'; @@ -11,19 +12,15 @@ class BigDashNestBumperGame extends BasicBallGame with Traceable { static const info = ''' Shows how a BigDashNestBumper is rendered. - Activate the "trace" parameter to overlay the body. + - Activate the "trace" parameter to overlay the body. '''; @override Future onLoad() async { await super.onLoad(); - - final center = screenToWorld(camera.viewport.canvasSize! / 2); - final bigDashNestBumper = BigDashNestBumper() - ..initialPosition = center - ..priority = 1; - await add(bigDashNestBumper); - + camera.followVector2(Vector2.zero()); + await add(BigDashNestBumper()..priority = 1); + await traceAllBodies(); await traceAllBodies(); } } diff --git a/packages/pinball_components/sandbox/lib/stories/flutter_forest/flutter_sign_post_game.dart b/packages/pinball_components/sandbox/lib/stories/flutter_forest/flutter_sign_post_game.dart new file mode 100644 index 00000000..f3ba7bda --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/flutter_forest/flutter_sign_post_game.dart @@ -0,0 +1,25 @@ +import 'dart:async'; +import 'dart:ui'; + +import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/ball/basic_ball_game.dart'; + +class FlutterSignPostGame extends BasicBallGame with Traceable { + FlutterSignPostGame() : super(color: const Color(0xFF0000FF)); + + static const info = ''' + Shows how a FlutterSignPost is rendered. + + - Activate the "trace" parameter to overlay the body. +'''; + + @override + Future onLoad() async { + await super.onLoad(); + camera.followVector2(Vector2.zero()); + await add(FlutterSignPost()..priority = 1); + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/flutter_forest/small_dash_nest_bumper_a_game.dart b/packages/pinball_components/sandbox/lib/stories/flutter_forest/small_dash_nest_bumper_a_game.dart new file mode 100644 index 00000000..a8499581 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/flutter_forest/small_dash_nest_bumper_a_game.dart @@ -0,0 +1,26 @@ +import 'dart:async'; +import 'dart:ui'; + +import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/ball/basic_ball_game.dart'; + +class SmallDashNestBumperAGame extends BasicBallGame with Traceable { + SmallDashNestBumperAGame() : super(color: const Color(0xFF0000FF)); + + static const info = ''' + Shows how a SmallDashNestBumper ("a") is rendered. + + - Activate the "trace" parameter to overlay the body. +'''; + + @override + Future onLoad() async { + await super.onLoad(); + camera.followVector2(Vector2.zero()); + await add(SmallDashNestBumper.a()..priority = 1); + await traceAllBodies(); + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/flutter_forest/small_dash_nest_bumper_b_game.dart b/packages/pinball_components/sandbox/lib/stories/flutter_forest/small_dash_nest_bumper_b_game.dart new file mode 100644 index 00000000..91b2a383 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/flutter_forest/small_dash_nest_bumper_b_game.dart @@ -0,0 +1,26 @@ +import 'dart:async'; +import 'dart:ui'; + +import 'package:flame_forge2d/flame_forge2d.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/ball/basic_ball_game.dart'; + +class SmallDashNestBumperBGame extends BasicBallGame with Traceable { + SmallDashNestBumperBGame() : super(color: const Color(0xFF0000FF)); + + static const info = ''' + Shows how a SmallDashNestBumper ("b") is rendered. + + - Activate the "trace" parameter to overlay the body. +'''; + + @override + Future onLoad() async { + await super.onLoad(); + camera.followVector2(Vector2.zero()); + await add(SmallDashNestBumper.b()..priority = 1); + await traceAllBodies(); + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/flutter_forest/stories.dart b/packages/pinball_components/sandbox/lib/stories/flutter_forest/stories.dart new file mode 100644 index 00000000..a625d174 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/flutter_forest/stories.dart @@ -0,0 +1,47 @@ +import 'package:dashbook/dashbook.dart'; +import 'package:flame/game.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/flutter_forest/big_dash_nest_bumper_game.dart'; +import 'package:sandbox/stories/flutter_forest/flutter_sign_post_game.dart'; +import 'package:sandbox/stories/flutter_forest/small_dash_nest_bumper_a_game.dart'; +import 'package:sandbox/stories/flutter_forest/small_dash_nest_bumper_b_game.dart'; + +void addDashNestBumperStories(Dashbook dashbook) { + dashbook.storiesOf('Flutter Forest') + ..add( + 'Flutter Sign Post', + (context) => GameWidget( + game: FlutterSignPostGame() + ..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('flutter_forest/flutter_sign_post.dart'), + info: FlutterSignPostGame.info, + ) + ..add( + 'Big Dash Nest Bumper', + (context) => GameWidget( + game: BigDashNestBumperGame() + ..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('flutter_forest/big_dash_nest_bumper.dart'), + info: BigDashNestBumperGame.info, + ) + ..add( + 'Small Dash Nest Bumper A', + (context) => GameWidget( + game: SmallDashNestBumperAGame() + ..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('flutter_forest/small_dash_nest_bumper_a.dart'), + info: SmallDashNestBumperAGame.info, + ) + ..add( + 'Small Dash Nest Bumper B', + (context) => GameWidget( + game: SmallDashNestBumperBGame() + ..trace = context.boolProperty('Trace', true), + ), + codeLink: buildSourceLink('flutter_forest/small_dash_nest_bumper_b.dart'), + info: SmallDashNestBumperBGame.info, + ); +} diff --git a/packages/pinball_components/sandbox/lib/stories/stories.dart b/packages/pinball_components/sandbox/lib/stories/stories.dart index d7409e87..09e06779 100644 --- a/packages/pinball_components/sandbox/lib/stories/stories.dart +++ b/packages/pinball_components/sandbox/lib/stories/stories.dart @@ -1,9 +1,9 @@ export 'ball/stories.dart'; export 'baseboard/stories.dart'; export 'chrome_dino/stories.dart'; -export 'dash_nest_bumper/stories.dart'; export 'effects/stories.dart'; export 'flipper/stories.dart'; +export 'flutter_forest/stories.dart'; export 'layer/stories.dart'; export 'slingshot/stories.dart'; export 'spaceship/stories.dart';