From 969e1802aa020f634dde82b4355bbaf7a8422648 Mon Sep 17 00:00:00 2001 From: alestiago Date: Tue, 10 May 2022 09:17:33 +0100 Subject: [PATCH] refactor: simplified autopulling logic --- .../plunger/behaviors/plunger_pulling_behavior.dart | 4 +--- .../lib/src/components/plunger/cubit/plunger_state.dart | 5 +++-- .../lib/src/components/plunger/plunger.dart | 3 +-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/pinball_components/lib/src/components/plunger/behaviors/plunger_pulling_behavior.dart b/packages/pinball_components/lib/src/components/plunger/behaviors/plunger_pulling_behavior.dart index 2361e6dc..dfde9b0a 100644 --- a/packages/pinball_components/lib/src/components/plunger/behaviors/plunger_pulling_behavior.dart +++ b/packages/pinball_components/lib/src/components/plunger/behaviors/plunger_pulling_behavior.dart @@ -35,9 +35,7 @@ class PlungerAutoPullingBehavior extends PlungerPullingBehavior { @override void update(double dt) { - if (bloc.state.isAutopulling) { - _plunger.body.linearVelocity = Vector2(0, _strength); - } + if (!bloc.state.isAutoPulling) return; final joint = _plunger.body.joints.whereType().single; final reachedBottom = joint.getJointTranslation() <= joint.getLowerLimit(); diff --git a/packages/pinball_components/lib/src/components/plunger/cubit/plunger_state.dart b/packages/pinball_components/lib/src/components/plunger/cubit/plunger_state.dart index be082445..95caeac2 100644 --- a/packages/pinball_components/lib/src/components/plunger/cubit/plunger_state.dart +++ b/packages/pinball_components/lib/src/components/plunger/cubit/plunger_state.dart @@ -9,7 +9,8 @@ enum PlungerState { } extension PlungerStateX on PlungerState { - bool get isPulling => this == PlungerState.pulling; + bool get isPulling => + this == PlungerState.pulling || this == PlungerState.autopulling; bool get isReleasing => this == PlungerState.releasing; - bool get isAutopulling => this == PlungerState.autopulling; + bool get isAutoPulling => this == PlungerState.autopulling; } diff --git a/packages/pinball_components/lib/src/components/plunger/plunger.dart b/packages/pinball_components/lib/src/components/plunger/plunger.dart index 062bfb6b..c032bf03 100644 --- a/packages/pinball_components/lib/src/components/plunger/plunger.dart +++ b/packages/pinball_components/lib/src/components/plunger/plunger.dart @@ -97,8 +97,7 @@ class _PlungerSpriteAnimationGroupComponent void onNewState(PlungerState state) { super.onNewState(state); final startedReleasing = state.isReleasing && !current!.isReleasing; - final startedPulling = - (state.isPulling || state.isAutopulling) && !current!.isPulling; + final startedPulling = state.isPulling && !current!.isPulling; if (startedReleasing || startedPulling) { animation?.reset(); }