diff options
Diffstat (limited to 'server/src/network/MessageProcessor.ts')
-rw-r--r-- | server/src/network/MessageProcessor.ts | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/server/src/network/MessageProcessor.ts b/server/src/network/MessageProcessor.ts index de42459..2d9f11f 100644 --- a/server/src/network/MessageProcessor.ts +++ b/server/src/network/MessageProcessor.ts @@ -1,8 +1,36 @@ -import { MessageProcessor } from '@engine/network'; -import { ServerMessage } from '.'; +import { + EntityUpdateBody, + MessageProcessor, + MessageType +} from '@engine/network'; +import { ServerMessage, SessionManager } from '.'; +import { Game } from '@engine/Game'; export class ServerMessageProcessor implements MessageProcessor { - constructor() {} + private game: Game; + private sessionManager: SessionManager; - public process(_message: ServerMessage) {} + constructor(game: Game, sessionManager: SessionManager) { + this.game = game; + this.sessionManager = sessionManager; + } + + public process(message: ServerMessage) { + switch (message.type) { + case MessageType.NEW_INPUT: { + const { sessionId } = message.sessionData; + const session = this.sessionManager.getSession(sessionId); + session?.inputSystem.keyPressed(message.body as string); + break; + } + case MessageType.REMOVE_INPUT: { + const { sessionId } = message.sessionData; + const session = this.sessionManager.getSession(sessionId); + session?.inputSystem.keyReleased(message.body as string); + break; + } + default: + break; + } + } } |