aboutsummaryrefslogtreecommitdiff
path: root/static/src/network.ts
diff options
context:
space:
mode:
Diffstat (limited to 'static/src/network.ts')
-rw-r--r--static/src/network.ts92
1 files changed, 0 insertions, 92 deletions
diff --git a/static/src/network.ts b/static/src/network.ts
deleted file mode 100644
index fac96df..0000000
--- a/static/src/network.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-export enum EventType {
- INITIAL_STATE = "INITIAL_STATE",
- SET_CONTROLLABLE = "SET_CONTROLLABLE",
- ENTITY_BORN = "ENTITY_BORN",
- ENTITY_DEATH = "ENTITY_DEATH",
- ENTITY_POSITION_UPDATE = "ENTITY_POSITION_UPDATE",
-}
-
-export interface Event {
- event_type: EventType;
- data: any;
-}
-
-export interface EntityPositionUpdateEvent extends Event {
- event_type: EventType.ENTITY_POSITION_UPDATE;
- data: {
- id: string;
- position: {
- x: number;
- y: number;
- };
- };
-}
-
-export interface InitialStateEvent extends Event {
- event_type: EventType.INITIAL_STATE;
- data: {
- world: { width: number; height: number };
- entities: any[];
- };
-}
-
-export interface SetControllableEvent extends Event {
- event_type: EventType.SET_CONTROLLABLE;
- data: {
- id: string;
- client_id: string;
- };
-}
-
-export interface EventQueue {
- peek(): Event[];
- clear(): void;
-}
-
-export interface EventPublisher {
- add(event: Event): void;
- publish(): void;
-}
-
-export class WebSocketEventQueue implements EventQueue {
- private queue: Event[];
-
- constructor(websocket: WebSocket) {
- this.queue = [];
- this.listen_to(websocket);
- }
-
- public peek() {
- return this.queue;
- }
-
- public clear() {
- this.queue = [];
- }
-
- private listen_to(websocket: WebSocket) {
- websocket.onmessage = ({ data }) => {
- this.queue = this.queue.concat(JSON.parse(data));
- };
- }
-}
-
-export class WebsocketEventPublisher implements EventPublisher {
- private queue: Event[];
-
- constructor(private readonly websocket: WebSocket) {
- this.queue = [];
- }
-
- public add(event: Event) {
- this.queue.push(event);
- }
-
- public publish() {
- if (this.queue.length === 0) {
- return;
- }
- this.websocket.send(JSON.stringify(this.queue));
- this.queue = [];
- }
-}