refactor: removed strength from PlungerAutoPullingBehavior

pull/455/head
alestiago 3 years ago
parent 179bbb20d9
commit ba12b9f890

@ -67,22 +67,25 @@ class GameBlocStatusListener extends Component
gameRef.descendants().whereType<Signpost>().single.bloc.onReset(); gameRef.descendants().whereType<Signpost>().single.bloc.onReset();
} }
void _addPlungerBehaviors(Plunger plunger) { void _addPlungerBehaviors(Plunger plunger) => plunger
const pullingStrength = 7.0; .firstChild<FlameBlocProvider<PlungerCubit, PlungerState>>()!
plunger.firstChild<FlameBlocProvider<PlungerCubit, PlungerState>>()!.addAll( .addAll(
[ [
PlungerPullingBehavior(strength: pullingStrength), PlungerPullingBehavior(strength: 7),
PlungerAutoPullingBehavior(strength: pullingStrength), PlungerAutoPullingBehavior(),
PlungerKeyControllingBehavior() PlungerKeyControllingBehavior()
], ],
); );
}
void _removePlungerBehaviors(Plunger plunger) { void _removePlungerBehaviors(Plunger plunger) {
plunger plunger
.descendants() .descendants()
.whereType<PlungerPullingBehavior>() .whereType<PlungerPullingBehavior>()
.forEach(plunger.remove); .forEach(plunger.remove);
plunger
.descendants()
.whereType<PlungerAutoPullingBehavior>()
.forEach(plunger.remove);
plunger plunger
.descendants() .descendants()
.whereType<PlungerKeyControllingBehavior>() .whereType<PlungerKeyControllingBehavior>()

@ -28,10 +28,15 @@ class PlungerPullingBehavior extends Component
} }
} }
class PlungerAutoPullingBehavior extends PlungerPullingBehavior { class PlungerAutoPullingBehavior extends Component
PlungerAutoPullingBehavior({ with FlameBlocReader<PlungerCubit, PlungerState> {
required double strength, late final Plunger _plunger;
}) : super(strength: strength);
@override
Future<void> onLoad() async {
await super.onLoad();
_plunger = parent!.parent! as Plunger;
}
@override @override
void update(double dt) { void update(double dt) {

@ -3,6 +3,7 @@
import 'dart:async'; import 'dart:async';
import 'package:bloc_test/bloc_test.dart'; import 'package:bloc_test/bloc_test.dart';
import 'package:flame/components.dart';
import 'package:flame_bloc/flame_bloc.dart'; import 'package:flame_bloc/flame_bloc.dart';
import 'package:flame_forge2d/flame_forge2d.dart'; import 'package:flame_forge2d/flame_forge2d.dart';
import 'package:flame_test/flame_test.dart'; import 'package:flame_test/flame_test.dart';
@ -12,7 +13,7 @@ import 'package:pinball_components/pinball_components.dart';
class _TestGame extends Forge2DGame { class _TestGame extends Forge2DGame {
Future<void> pump( Future<void> pump(
PlungerPullingBehavior behavior, { Component behavior, {
PlungerCubit? plungerBloc, PlungerCubit? plungerBloc,
}) async { }) async {
final plunger = Plunger.test(); final plunger = Plunger.test();
@ -85,13 +86,13 @@ void main() {
group('PlungerAutoPullingBehavior', () { group('PlungerAutoPullingBehavior', () {
test('can be instantiated', () { test('can be instantiated', () {
expect( expect(
PlungerAutoPullingBehavior(strength: 0), PlungerAutoPullingBehavior(),
isA<PlungerAutoPullingBehavior>(), isA<PlungerAutoPullingBehavior>(),
); );
}); });
flameTester.test('can be loaded', (game) async { flameTester.test('can be loaded', (game) async {
final behavior = PlungerAutoPullingBehavior(strength: 0); final behavior = PlungerAutoPullingBehavior();
await game.pump(behavior); await game.pump(behavior);
expect(game.descendants(), contains(behavior)); expect(game.descendants(), contains(behavior));
}); });
@ -106,10 +107,7 @@ void main() {
initialState: PlungerState.autoPulling, initialState: PlungerState.autoPulling,
); );
const strength = 2.0; final behavior = PlungerAutoPullingBehavior();
final behavior = PlungerAutoPullingBehavior(
strength: strength,
);
await game.pump( await game.pump(
behavior, behavior,
plungerBloc: plungerBloc, plungerBloc: plungerBloc,

@ -275,7 +275,7 @@ void main() {
create: PlungerCubit.new, create: PlungerCubit.new,
children: [ children: [
PlungerPullingBehavior(strength: 0), PlungerPullingBehavior(strength: 0),
PlungerAutoPullingBehavior(strength: 0) PlungerAutoPullingBehavior()
], ],
), ),
); );
@ -533,11 +533,7 @@ void main() {
await game.ready(); await game.ready();
expect( expect(
plunger plunger.descendants().whereType<PlungerPullingBehavior>().length,
.descendants()
.whereType<PlungerPullingBehavior>()
.where((behavior) => behavior is! PlungerAutoPullingBehavior)
.length,
equals(1), equals(1),
); );
}, },

Loading…
Cancel
Save