summaryrefslogtreecommitdiff
path: root/src/engine/systems/FacingDirection.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/systems/FacingDirection.ts')
-rw-r--r--src/engine/systems/FacingDirection.ts44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/engine/systems/FacingDirection.ts b/src/engine/systems/FacingDirection.ts
index 042484a..ec73d58 100644
--- a/src/engine/systems/FacingDirection.ts
+++ b/src/engine/systems/FacingDirection.ts
@@ -27,34 +27,38 @@ export class FacingDirection extends System {
game.forEachEntityWithComponent(
ComponentNames.FacingDirection,
(entity) => {
- if (!entity.hasComponent(ComponentNames.BoundingBox)) {
- return;
- }
-
- const boundingBox = entity.getComponent<BoundingBox>(
- ComponentNames.BoundingBox,
- )!;
const facingDirection = entity.getComponent<FacingDirectionComponent>(
ComponentNames.FacingDirection,
);
+ if (!entity.hasComponent(ComponentNames.Sprite)) {
+ return;
+ }
- const { center } = boundingBox;
- const angle = Math.atan2(
- mousePosition.y - center.y,
- mousePosition.x - center.x,
- );
+ if (entity.hasComponent(ComponentNames.Control)) {
+ const boundingBox = entity.getComponent<BoundingBox>(
+ ComponentNames.BoundingBox,
+ )!;
- const mouseInBoundingBox =
- boundingBox.isCollidingWith(mouseBoundingBox);
- const direction = mouseInBoundingBox
- ? Direction.NONE
- : angleToDirection(angle);
+ const { center } = boundingBox;
+ const angle = Math.atan2(
+ mousePosition.y - center.y,
+ mousePosition.x - center.x,
+ );
- facingDirection.setDirection(direction);
- entity.addComponent(facingDirection);
+ const mouseInBoundingBox =
+ boundingBox.isCollidingWith(mouseBoundingBox);
+ const direction = mouseInBoundingBox
+ ? Direction.NONE
+ : angleToDirection(angle);
+
+ facingDirection.setDirection(direction);
+ entity.addComponent(facingDirection);
+ }
const oldSprite = entity.getComponent<Sprite>(ComponentNames.Sprite);
- const sprite = facingDirection.directionSprites.get(direction)!;
+ const sprite = facingDirection.directionSprites.get(
+ facingDirection.currentDirection,
+ )!;
sprite.fillTimingsFromSprite(oldSprite);
entity.addComponent(sprite);