diff --git a/lib/game/game_assets.dart b/lib/game/game_assets.dart index d95be7a4..d7a5d8b9 100644 --- a/lib/game/game_assets.dart +++ b/lib/game/game_assets.dart @@ -101,14 +101,14 @@ extension PinballGameAssetsX on PinballGame { images.load(components.Assets.images.googleWord.letter5.keyName), images.load(components.Assets.images.googleWord.letter6.keyName), images.load(components.Assets.images.backboard.display.keyName), - images.load(components.Assets.images.multiball.a.active.keyName), - images.load(components.Assets.images.multiball.a.inactive.keyName), - images.load(components.Assets.images.multiball.b.active.keyName), - images.load(components.Assets.images.multiball.b.inactive.keyName), - images.load(components.Assets.images.multiball.c.active.keyName), - images.load(components.Assets.images.multiball.c.inactive.keyName), - images.load(components.Assets.images.multiball.d.active.keyName), - images.load(components.Assets.images.multiball.d.inactive.keyName), + images.load(components.Assets.images.multiball.a.lit.keyName), + images.load(components.Assets.images.multiball.a.dimmed.keyName), + images.load(components.Assets.images.multiball.b.lit.keyName), + images.load(components.Assets.images.multiball.b.dimmed.keyName), + images.load(components.Assets.images.multiball.c.lit.keyName), + images.load(components.Assets.images.multiball.c.dimmed.keyName), + images.load(components.Assets.images.multiball.d.lit.keyName), + images.load(components.Assets.images.multiball.d.dimmed.keyName), images.load(dashTheme.leaderboardIcon.keyName), images.load(sparkyTheme.leaderboardIcon.keyName), images.load(androidTheme.leaderboardIcon.keyName), diff --git a/packages/pinball_components/assets/images/multiball/a/inactive.png b/packages/pinball_components/assets/images/multiball/a/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/a/inactive.png rename to packages/pinball_components/assets/images/multiball/a/dimmed.png diff --git a/packages/pinball_components/assets/images/multiball/a/active.png b/packages/pinball_components/assets/images/multiball/a/lit.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/a/active.png rename to packages/pinball_components/assets/images/multiball/a/lit.png diff --git a/packages/pinball_components/assets/images/multiball/b/inactive.png b/packages/pinball_components/assets/images/multiball/b/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/b/inactive.png rename to packages/pinball_components/assets/images/multiball/b/dimmed.png diff --git a/packages/pinball_components/assets/images/multiball/b/active.png b/packages/pinball_components/assets/images/multiball/b/lit.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/b/active.png rename to packages/pinball_components/assets/images/multiball/b/lit.png diff --git a/packages/pinball_components/assets/images/multiball/c/inactive.png b/packages/pinball_components/assets/images/multiball/c/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/c/inactive.png rename to packages/pinball_components/assets/images/multiball/c/dimmed.png diff --git a/packages/pinball_components/assets/images/multiball/c/active.png b/packages/pinball_components/assets/images/multiball/c/lit.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/c/active.png rename to packages/pinball_components/assets/images/multiball/c/lit.png diff --git a/packages/pinball_components/assets/images/multiball/d/inactive.png b/packages/pinball_components/assets/images/multiball/d/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/d/inactive.png rename to packages/pinball_components/assets/images/multiball/d/dimmed.png diff --git a/packages/pinball_components/assets/images/multiball/d/active.png b/packages/pinball_components/assets/images/multiball/d/lit.png similarity index 100% rename from packages/pinball_components/assets/images/multiball/d/active.png rename to packages/pinball_components/assets/images/multiball/d/lit.png diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index 7ae5cd45..74f4b178 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -317,49 +317,49 @@ class $AssetsImagesDashBumperGen { class $AssetsImagesMultiballAGen { const $AssetsImagesMultiballAGen(); - /// File path: assets/images/multiball/a/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/multiball/a/active.png'); + /// File path: assets/images/multiball/a/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/multiball/a/dimmed.png'); - /// File path: assets/images/multiball/a/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/multiball/a/inactive.png'); + /// File path: assets/images/multiball/a/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/multiball/a/lit.png'); } class $AssetsImagesMultiballBGen { const $AssetsImagesMultiballBGen(); - /// File path: assets/images/multiball/b/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/multiball/b/active.png'); + /// File path: assets/images/multiball/b/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/multiball/b/dimmed.png'); - /// File path: assets/images/multiball/b/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/multiball/b/inactive.png'); + /// File path: assets/images/multiball/b/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/multiball/b/lit.png'); } class $AssetsImagesMultiballCGen { const $AssetsImagesMultiballCGen(); - /// File path: assets/images/multiball/c/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/multiball/c/active.png'); + /// File path: assets/images/multiball/c/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/multiball/c/dimmed.png'); - /// File path: assets/images/multiball/c/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/multiball/c/inactive.png'); + /// File path: assets/images/multiball/c/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/multiball/c/lit.png'); } class $AssetsImagesMultiballDGen { const $AssetsImagesMultiballDGen(); - /// File path: assets/images/multiball/d/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/multiball/d/active.png'); + /// File path: assets/images/multiball/d/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/multiball/d/dimmed.png'); - /// File path: assets/images/multiball/d/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/multiball/d/inactive.png'); + /// File path: assets/images/multiball/d/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/multiball/d/lit.png'); } class $AssetsImagesSpaceshipRailGen { diff --git a/packages/pinball_components/lib/src/components/multiball.dart b/packages/pinball_components/lib/src/components/multiball.dart deleted file mode 100644 index 45ce071b..00000000 --- a/packages/pinball_components/lib/src/components/multiball.dart +++ /dev/null @@ -1,123 +0,0 @@ -import 'dart:math' as math; -import 'package:flame/components.dart'; -import 'package:flutter/material.dart'; -import 'package:pinball_components/gen/assets.gen.dart'; - -/// {@template multiball} -/// A [Component] for the multiball over the board. -/// {@endtemplate} -class Multiball extends Component { - /// {@macro multiball} - Multiball._({ - required Vector2 position, - required String onAssetPath, - required String offAssetPath, - double rotation = 0, - }) : super( - children: [ - MultiballSpriteGroupComponent( - position: position, - onAssetPath: onAssetPath, - offAssetPath: offAssetPath, - rotation: rotation, - ), - ], - ); - - /// {@macro multiball} - Multiball.a() - : this._( - position: Vector2(-23, 7.5), - onAssetPath: Assets.images.multiball.a.active.keyName, - offAssetPath: Assets.images.multiball.a.inactive.keyName, - rotation: -24 * math.pi / 180, - ); - - /// {@macro multiball} - Multiball.b() - : this._( - position: Vector2(-7, -6.5), - onAssetPath: Assets.images.multiball.b.active.keyName, - offAssetPath: Assets.images.multiball.b.inactive.keyName, - rotation: -5 * math.pi / 180, - ); - - /// {@macro multiball} - Multiball.c() - : this._( - position: Vector2(-0.5, -9.5), - onAssetPath: Assets.images.multiball.c.active.keyName, - offAssetPath: Assets.images.multiball.c.inactive.keyName, - rotation: 3 * math.pi / 180, - ); - - /// {@macro multiball} - Multiball.d() - : this._( - position: Vector2(15, 7), - onAssetPath: Assets.images.multiball.d.active.keyName, - offAssetPath: Assets.images.multiball.d.inactive.keyName, - rotation: 24 * math.pi / 180, - ); - - /// Animates the [Multiball]. - Future animate() async { - final spriteGroupComponent = firstChild(); - - for (var i = 0; i < 5; i++) { - spriteGroupComponent?.current = MultiballSpriteState.active; - await Future.delayed(const Duration(milliseconds: 100)); - spriteGroupComponent?.current = MultiballSpriteState.inactive; - await Future.delayed(const Duration(milliseconds: 100)); - } - } -} - -/// Indicates the current sprite state of the multiball. -enum MultiballSpriteState { - /// A lit up multiball. - active, - - /// A dimmed multiball. - inactive, -} - -/// {@template multiball_sprite_group_component} -/// A [SpriteGroupComponent] for the multiball over the board. -/// {@endtemplate} -@visibleForTesting -class MultiballSpriteGroupComponent - extends SpriteGroupComponent with HasGameRef { - /// {@macro multiball_sprite_group_component} - MultiballSpriteGroupComponent({ - required Vector2 position, - required String onAssetPath, - required String offAssetPath, - required double rotation, - }) : _onAssetPath = onAssetPath, - _offAssetPath = offAssetPath, - super( - anchor: Anchor.center, - position: position, - angle: rotation, - ); - - final String _onAssetPath; - final String _offAssetPath; - - @override - Future onLoad() async { - await super.onLoad(); - - final sprites = { - MultiballSpriteState.active: - Sprite(gameRef.images.fromCache(_onAssetPath)), - MultiballSpriteState.inactive: - Sprite(gameRef.images.fromCache(_offAssetPath)), - }; - this.sprites = sprites; - - current = MultiballSpriteState.inactive; - size = sprites[current]!.originalSize / 10; - } -}