From 732fe6f4811cc082bf938fed2d28c1f9c8bbd1f6 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Tue, 15 Aug 2023 18:30:19 -0600 Subject: generate uuids for entities; scaffolding for a server --- engine/systems/NetworkUpdate.ts | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) (limited to 'engine/systems/NetworkUpdate.ts') diff --git a/engine/systems/NetworkUpdate.ts b/engine/systems/NetworkUpdate.ts index dc7be20..6f8acb9 100644 --- a/engine/systems/NetworkUpdate.ts +++ b/engine/systems/NetworkUpdate.ts @@ -1,10 +1,42 @@ import { System, SystemNames } from "."; import { Game } from "../Game"; +import { ComponentNames, NetworkUpdateable } from "../components"; + +export interface MessageQueueProvider { + getNewMessages(): any[]; + clearMessages(): void; +} + +export interface MessagePublisher { + addMessage(message: any): void; + publish(): void; +} export class NetworkUpdate extends System { - constructor() { + private queueProvider: MessageQueueProvider; + private publisher: MessagePublisher; + + constructor( + queueProvider: MessageQueueProvider, + publisher: MessagePublisher, + ) { super(SystemNames.NetworkUpdate); + + this.queueProvider = queueProvider; + this.publisher = publisher; } - public update(_dt: number, _game: Game) {} + public update(_dt: number, game: Game) { + const messages = this.queueProvider.getNewMessages(); + this.queueProvider.clearMessages(); + + game.forEachEntityWithComponent( + ComponentNames.NetworkUpdateable, + (entity) => { + const networkUpdateComponent = entity.getComponent( + ComponentNames.NetworkUpdateable, + ); + }, + ); + } } -- cgit v1.2.3-70-g09d2