summaryrefslogtreecommitdiff
path: root/client/src
diff options
context:
space:
mode:
Diffstat (limited to 'client/src')
-rw-r--r--client/src/JumpStorm.ts57
1 files changed, 55 insertions, 2 deletions
diff --git a/client/src/JumpStorm.ts b/client/src/JumpStorm.ts
index bd48483..8075cc8 100644
--- a/client/src/JumpStorm.ts
+++ b/client/src/JumpStorm.ts
@@ -7,15 +7,63 @@ import {
Physics,
Input,
Collision,
+ MessageQueueProvider,
+ MessagePublisher,
+ NetworkUpdate,
} from "@engine/systems";
+class ClientSocketMessageQueueProvider implements MessageQueueProvider {
+ private socket: WebSocket;
+ private messages: any[];
+
+ constructor(socket: WebSocket) {
+ this.socket = socket;
+ this.messages = [];
+
+ this.socket.addEventListener("message", (e) => {
+ console.log(e);
+ });
+ }
+
+ getNewMessages() {
+ return this.messages;
+ }
+
+ clearMessages() {
+ this.messages = [];
+ }
+}
+
+class ClientSocketMessagePublisher implements MessagePublisher {
+ private socket: WebSocket;
+ private messages: any[];
+
+ constructor(socket: WebSocket) {
+ this.socket = socket;
+ this.messages = [];
+
+ this.socket.addEventListener("message", (e) => {
+ console.log(e);
+ });
+ }
+
+ addMessage(_message: any) {}
+
+ publish() {}
+}
+
export class JumpStorm {
private game: Game;
- private socket: WebSocket;
constructor(ctx: CanvasRenderingContext2D) {
this.game = new Game();
- this.socket = new WebSocket("ws://localhost:8080");
+
+ const socket = new WebSocket("ws://localhost:8080");
+ const clientSocketMessageQueueProvider =
+ new ClientSocketMessageQueueProvider(socket);
+ const clientSocketMessagePublisher = new ClientSocketMessagePublisher(
+ socket,
+ );
[
this.createInputSystem(),
@@ -23,6 +71,10 @@ export class JumpStorm {
new Physics(),
new Collision(),
new WallBounds(ctx.canvas.width),
+ new NetworkUpdate(
+ clientSocketMessageQueueProvider,
+ clientSocketMessagePublisher,
+ ),
new Render(ctx),
].forEach((system) => this.game.addSystem(system));
@@ -49,6 +101,7 @@ export class JumpStorm {
inputSystem.keyPressed(e.key);
}
});
+
window.addEventListener("keyup", (e) => inputSystem.keyReleased(e.key));
return inputSystem;