From 0fd9fb097552686f2257c1aa689d797e80057bd1 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Wed, 19 Jul 2023 20:38:24 -0700 Subject: initial commit --- client/lib/systems/FacingDirection.ts | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 client/lib/systems/FacingDirection.ts (limited to 'client/lib/systems/FacingDirection.ts') diff --git a/client/lib/systems/FacingDirection.ts b/client/lib/systems/FacingDirection.ts new file mode 100644 index 0000000..fbb4c7c --- /dev/null +++ b/client/lib/systems/FacingDirection.ts @@ -0,0 +1,39 @@ +import { + ComponentNames, + Velocity, + FacingDirection as FacingDirectionComponent, +} from "../components"; +import type { Entity } from "../entities"; +import { System, SystemNames } from "./"; + +export class FacingDirection extends System { + constructor() { + super(SystemNames.FacingDirection); + } + + public update( + _dt: number, + entityMap: Map, + componentEntities: Map> + ) { + componentEntities + .get(ComponentNames.FacingDirection) + ?.forEach((entityId) => { + const entity = entityMap.get(entityId); + if (!entity.hasComponent(ComponentNames.Velocity)) { + return; + } + + const velocity = entity.getComponent(ComponentNames.Velocity); + const facingDirection = entity.getComponent( + ComponentNames.FacingDirection + ); + + if (velocity.dCartesian.dx > 0) { + entity.addComponent(facingDirection.facingRightSprite); + } else if (velocity.dCartesian.dx < 0) { + entity.addComponent(facingDirection.facingLeftSprite); + } + }); + } +} -- cgit v1.3