From 038b15a0d2d530a20be0e28db4c10d0a2b1fe5b1 Mon Sep 17 00:00:00 2001 From: alestiago Date: Mon, 11 Apr 2022 12:03:41 +0100 Subject: [PATCH] refactor: simplified GoogleLetter --- .../lib/src/components/google_letter.dart | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/packages/pinball_components/lib/src/components/google_letter.dart b/packages/pinball_components/lib/src/components/google_letter.dart index 1718faa9..9fd922a7 100644 --- a/packages/pinball_components/lib/src/components/google_letter.dart +++ b/packages/pinball_components/lib/src/components/google_letter.dart @@ -4,17 +4,37 @@ import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flutter/material.dart'; import 'package:pinball_components/pinball_components.dart'; +/// Circular sensor that represents "Google" letter. class GoogleLetter extends BodyComponent with InitialPosition { - late final _GoogleLetterSprite _sprite; + /// Circular sensor that represents the first letter "G" in "Google". + GoogleLetter.letter1() : _sprite = _GoogleLetterSprite.letter1(); - void activate() => _sprite.activate(); + /// Circular sensor that represents the first letter "O" in "Google". + GoogleLetter.letter2() : _sprite = _GoogleLetterSprite.letter2(); - void deactivate() => _sprite.deactivate(); + /// Circular sensor that represents the second letter "O" in "Google". + GoogleLetter.letter3() : _sprite = _GoogleLetterSprite.letter3(); + + /// Circular sensor that represents the letter "L" in "Google". + GoogleLetter.letter4() : _sprite = _GoogleLetterSprite.letter4(); + + /// Circular sensor that represents the letter "E" in "Google". + GoogleLetter.letter5() : _sprite = _GoogleLetterSprite.letter5(); + + final _GoogleLetterSprite _sprite; + + /// Activates this [GoogleLetter]. + // TODO(alestiago): Improve doc comment once activate and deactivate + // are implemented with the actual assets. + Future activate() async => _sprite.activate(); + + /// Deactivates this [GoogleLetter]. + Future deactivate() async => _sprite.deactivate(); @override Future onLoad() async { await super.onLoad(); - await add(_sprite = _GoogleLetterSprite.letter1()); + await add(_sprite); } @override @@ -52,18 +72,14 @@ class _GoogleLetterSprite extends SpriteComponent with HasGameRef { // TODO(alestiago): Correctly implement activate and deactivate once the // assets are provided. Future activate() async { - const color = Colors.green; - tint(color); await add( - _GoogleLetterActivationEffect(color: color), + _GoogleLetterColorEffect(color: Colors.green), ); } Future deactivate() async { - const color = Colors.red; - tint(color); await add( - _GoogleLetterActivationEffect(color: color), + _GoogleLetterColorEffect(color: Colors.red), ); } @@ -73,13 +89,14 @@ class _GoogleLetterSprite extends SpriteComponent with HasGameRef { final sprite = await gameRef.loadSprite(_spritePath); this.sprite = sprite; + // TODO(alestiago): Size correctly once the assets are provided. size = sprite.originalSize / 5; anchor = Anchor.center; } } -class _GoogleLetterActivationEffect extends ColorEffect { - _GoogleLetterActivationEffect({ +class _GoogleLetterColorEffect extends ColorEffect { + _GoogleLetterColorEffect({ required Color color, }) : super( color,