From 72c6c7de12e9833f52bf2d0718d70f044f8ab57e Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 20 Jul 2023 20:47:32 -0700 Subject: a bit of refactoring; importing engine into bun for server --- client/lib/Game.ts | 70 ------------------------------------------------------ 1 file changed, 70 deletions(-) delete mode 100644 client/lib/Game.ts (limited to 'client/lib/Game.ts') diff --git a/client/lib/Game.ts b/client/lib/Game.ts deleted file mode 100644 index d6ffb47..0000000 --- a/client/lib/Game.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { Entity } from "./entities"; -import { System } from "./systems"; - -export class Game { - private entities: Map; - private systems: Map; - private systemOrder: string[]; - - private running: boolean; - private lastTimeStamp: number; - - constructor() { - this.running = false; - this.systemOrder = []; - this.systems = new Map(); - this.entities = new Map(); - } - - public start() { - this.lastTimeStamp = performance.now(); - this.running = true; - } - - public addEntity(entity: Entity) { - this.entities.set(entity.id, entity); - } - - public getEntity(id: number): Entity { - return this.entities.get(id); - } - - public removeEntity(id: number) { - this.entities.delete(id); - } - - public addSystem(system: System) { - if (!this.systemOrder.includes(system.name)) { - this.systemOrder.push(system.name); - } - this.systems.set(system.name, system); - } - - public getSystem(name: string): System { - return this.systems.get(name); - } - - public doGameLoop = (timeStamp: number) => { - if (!this.running) { - return; - } - - const dt = timeStamp - this.lastTimeStamp; - this.lastTimeStamp = timeStamp; - - const componentEntities = new Map>(); - this.entities.forEach((entity) => - entity.getComponents().forEach((component) => { - if (!componentEntities.has(component.name)) { - componentEntities.set(component.name, new Set([entity.id])); - return; - } - componentEntities.get(component.name).add(entity.id); - }) - ); - - this.systemOrder.forEach((systemName) => { - this.systems.get(systemName).update(dt, this.entities, componentEntities); - }); - }; -} -- cgit v1.3