refactor: simplified autopulling logic

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

@ -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<PrismaticJoint>().single;
final reachedBottom = joint.getJointTranslation() <= joint.getLowerLimit();

@ -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;
}

@ -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();
}

Loading…
Cancel
Save