Skip to content

Commit

Permalink
fix: direction enums should be shared accross domains
Browse files Browse the repository at this point in the history
  • Loading branch information
kurtome committed Oct 6, 2024
1 parent 64b25bf commit fe629b9
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 20 deletions.
1 change: 1 addition & 0 deletions packages/leap/lib/leap.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ export 'src/leap_options.dart';
export 'src/leap_world.dart';
export 'src/mixins/mixins.dart';
export 'src/tiled_object_handler.dart';
export 'src/utils/utils.dart';
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ class AnimationVelocityFlipBehavior

// Update sprite for direction
final lookDirection = parent.spriteLookDirection;
if ((!spriteFacesLeft && lookDirection == SpriteLookDirection.left) ||
(spriteFacesLeft && lookDirection == SpriteLookDirection.right)) {
if ((!spriteFacesLeft && lookDirection == HorizontalDirection.left) ||
(spriteFacesLeft && lookDirection == HorizontalDirection.right)) {
animationGroup.scale.x = -animationGroup.scale.x.abs();
} else if ((!spriteFacesLeft &&
lookDirection == SpriteLookDirection.right) ||
(spriteFacesLeft && lookDirection == SpriteLookDirection.left)) {
lookDirection == HorizontalDirection.right) ||
(spriteFacesLeft && lookDirection == HorizontalDirection.left)) {
animationGroup.scale.x = animationGroup.scale.x.abs();
}
}
Expand Down
28 changes: 12 additions & 16 deletions packages/leap/lib/src/entities/mixins/has_animation_group.dart
Original file line number Diff line number Diff line change
@@ -1,34 +1,30 @@
import 'package:leap/src/entities/anchored_animation_group.dart';
import 'package:leap/src/entities/physical_entity.dart';
import 'package:leap/src/entities/entities.dart';
import 'package:leap/src/utils/direction.dart';

mixin HasAnimationGroup on PhysicalEntity {
AnchoredAnimationGroup get animationGroup;

/// Whether or not the sprite sheet is looking left
bool spriteFacesLeft = false;

SpriteLookDirection? forceSpriteLookDirection;
/// Force the animation to face a particular direction, overriding default
/// behavior, for example velocity based looking in
/// [AnimationVelocityFlipBehavior]
HorizontalDirection? forceSpriteLookDirection;

/// Whether or not the animation should currently be looking left
SpriteLookDirection get spriteLookDirection {
/// Whether or not the animation should currently be looking left.
/// null indicates direction should remain unchanged.
HorizontalDirection? get spriteLookDirection {
if (forceSpriteLookDirection != null) {
return forceSpriteLookDirection!;
}

if (velocity.x == 0) {
return SpriteLookDirection.previous;
return null;
} else if (velocity.x < 0) {
return SpriteLookDirection.left;
return HorizontalDirection.left;
} else {
return SpriteLookDirection.right;
return HorizontalDirection.right;
}
}
}

enum SpriteLookDirection {
left,
right,

/// [previous] indicates leaving the sprite as is
previous
}
9 changes: 9 additions & 0 deletions packages/leap/lib/src/utils/direction.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
enum HorizontalDirection {
left,
right,
}

enum VerticalDirection {
up,
down,
}
1 change: 1 addition & 0 deletions packages/leap/lib/src/utils/utils.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export 'direction.dart';

0 comments on commit fe629b9

Please sign in to comment.