summaryrefslogtreecommitdiff
path: root/src/engine/systems/FacingDirection.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth@simponic.xyz>2025-03-02 19:11:33 -0700
committerElizabeth Hunt <elizabeth@simponic.xyz>2025-03-02 19:11:33 -0700
commit78797aa175651d53df21d3f8d5c51a55649aaced (patch)
treecd3c5e168e069c5ac2c18514f0f69543d077ec30 /src/engine/systems/FacingDirection.ts
parent196773c3637f7dcf2a53a6cb9b3a8e8f790cce71 (diff)
downloadthe-abstraction-engine-78797aa175651d53df21d3f8d5c51a55649aaced.tar.gz
the-abstraction-engine-78797aa175651d53df21d3f8d5c51a55649aaced.zip
pistonsHEADmain
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);