From 45726367eee475a7717d7dcad78895de348f0b97 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 5 Sep 2024 00:15:14 -0700 Subject: checkpoint; working position updates --- static/src/main.ts | 6 ++++-- static/src/mouse_controller.ts | 15 ++++----------- static/src/network.ts | 6 ++++-- 3 files changed, 12 insertions(+), 15 deletions(-) (limited to 'static') diff --git a/static/src/main.ts b/static/src/main.ts index 16de636..c3588de 100644 --- a/static/src/main.ts +++ b/static/src/main.ts @@ -65,9 +65,11 @@ class KennelClient { break; } } - - console.log(events, dt); + if (events.length > 0) { + console.log(events, dt); + } this.event_queue.clear(); + this.event_publisher.publish(); } private process_set_controllable_event(event: SetControllableEvent) { diff --git a/static/src/mouse_controller.ts b/static/src/mouse_controller.ts index c7ae304..bd8d51a 100644 --- a/static/src/mouse_controller.ts +++ b/static/src/mouse_controller.ts @@ -7,7 +7,6 @@ export class MouseController { constructor( private readonly publisher: (new_movement: Vec2) => void | Promise, private readonly debounce_ms = 200, - private readonly l2_norm_threshold = 40, ) {} public start() { @@ -29,20 +28,14 @@ export class MouseController { } public move(x: number, y: number) { - const new_movement = new Vec2(x, y); - if ( - typeof this.last_movement !== "undefined" && - new_movement.distance_to(this.last_movement) >= this.l2_norm_threshold - ) { - this.publish_movement(); - } - this.last_movement = new_movement; + this.last_movement = new Vec2(x, y); + this.publish_movement(); } private publish_movement() { if ( - typeof this.last_movement === "undefined" || - Date.now() - this.last_event_time < this.debounce_ms + Date.now() - this.last_event_time < this.debounce_ms || + typeof this.last_movement === "undefined" ) { return; } diff --git a/static/src/network.ts b/static/src/network.ts index f707148..fac96df 100644 --- a/static/src/network.ts +++ b/static/src/network.ts @@ -66,8 +66,7 @@ export class WebSocketEventQueue implements EventQueue { private listen_to(websocket: WebSocket) { websocket.onmessage = ({ data }) => { - const [event_type, event_data] = JSON.parse(data); - this.queue.push({ event_type, data: event_data } as Event); + this.queue = this.queue.concat(JSON.parse(data)); }; } } @@ -84,6 +83,9 @@ export class WebsocketEventPublisher implements EventPublisher { } public publish() { + if (this.queue.length === 0) { + return; + } this.websocket.send(JSON.stringify(this.queue)); this.queue = []; } -- cgit v1.3