import { Cosmic, System, Entity } from "@cosmic/core"; import { Transform, PlayerControlled } from "@cosmic/kit/components"; export class PlayerControlSystem extends System { public requiredComponents = new Set([Transform.name, PlayerControlled.name]); constructor(private engine: Cosmic) { super(); } update(entities: Entity[], deltaTime: number): void { const input = this.engine.input; entities.forEach((entity) => { const transform = entity.getComponent(Transform)!; const playerControlled = entity.getComponent(PlayerControlled)!; if (input.isKeyDown(playerControlled.inputUp)) transform.y -= playerControlled.speed * deltaTime; if (input.isKeyDown(playerControlled.inputDown)) transform.y += playerControlled.speed * deltaTime; if (input.isKeyDown(playerControlled.inputLeft)) transform.x -= playerControlled.speed * deltaTime; if (input.isKeyDown(playerControlled.inputRight)) transform.x += playerControlled.speed * deltaTime; }); } }