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();
}
void _addPlungerBehaviors(Plunger plunger) {
const pullingStrength = 7.0;
plunger.firstChild<FlameBlocProvider<PlungerCubit, PlungerState>>()!.addAll(
[
PlungerPullingBehavior(strength: pullingStrength),
PlungerAutoPullingBehavior(strength: pullingStrength),
PlungerKeyControllingBehavior()
],
);
}
void _addPlungerBehaviors(Plunger plunger) => plunger
.firstChild<FlameBlocProvider<PlungerCubit, PlungerState>>()!
.addAll(
[
PlungerPullingBehavior(strength: 7),
PlungerAutoPullingBehavior(),
PlungerKeyControllingBehavior()
],
);
void _removePlungerBehaviors(Plunger plunger) {
plunger
.descendants()
.whereType<PlungerPullingBehavior>()
.forEach(plunger.remove);
plunger
.descendants()
.whereType<PlungerAutoPullingBehavior>()
.forEach(plunger.remove);
plunger
.descendants()
.whereType<PlungerKeyControllingBehavior>()

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

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

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

Loading…
Cancel
Save