refactor: simplified autopulling logic

pull/455/head
alestiago 3 years ago
parent 6da4564d53
commit 969e1802aa

@ -35,9 +35,7 @@ class PlungerAutoPullingBehavior extends PlungerPullingBehavior {
@override @override
void update(double dt) { void update(double dt) {
if (bloc.state.isAutopulling) { if (!bloc.state.isAutoPulling) return;
_plunger.body.linearVelocity = Vector2(0, _strength);
}
final joint = _plunger.body.joints.whereType<PrismaticJoint>().single; final joint = _plunger.body.joints.whereType<PrismaticJoint>().single;
final reachedBottom = joint.getJointTranslation() <= joint.getLowerLimit(); final reachedBottom = joint.getJointTranslation() <= joint.getLowerLimit();

@ -9,7 +9,8 @@ enum PlungerState {
} }
extension PlungerStateX on 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 isReleasing => this == PlungerState.releasing;
bool get isAutopulling => this == PlungerState.autopulling; bool get isAutoPulling => this == PlungerState.autopulling;
} }

@ -97,8 +97,7 @@ class _PlungerSpriteAnimationGroupComponent
void onNewState(PlungerState state) { void onNewState(PlungerState state) {
super.onNewState(state); super.onNewState(state);
final startedReleasing = state.isReleasing && !current!.isReleasing; final startedReleasing = state.isReleasing && !current!.isReleasing;
final startedPulling = final startedPulling = state.isPulling && !current!.isPulling;
(state.isPulling || state.isAutopulling) && !current!.isPulling;
if (startedReleasing || startedPulling) { if (startedReleasing || startedPulling) {
animation?.reset(); animation?.reset();
} }

Loading…
Cancel
Save