diff --git a/packages/frontend/src/world/room/worker.ts b/packages/frontend/src/world/room/worker.ts index b025e76c3a..48b1a12efe 100644 --- a/packages/frontend/src/world/room/worker.ts +++ b/packages/frontend/src/world/room/worker.ts @@ -50,19 +50,12 @@ onmessage = async (event) => { } case 'dom:keydown': { if (engine == null) break; - engine.scene.onKeyboardObservable.notifyObservers({ type: BABYLON.KeyboardEventTypes.KEYDOWN, event: event.data.ev }); + engine.domEvents.emit('keydown', event.data.ev); break; } case 'dom:keyup': { if (engine == null) break; - engine.scene.onKeyboardObservable.notifyObservers({ type: BABYLON.KeyboardEventTypes.KEYUP, event: event.data.ev }); - break; - } - case 'dom:pointerdown': { - if (engine == null) break; - event.data.ev.preventDefault = () => {}; - event.data.ev.stopPropagation = () => {}; - engine.scene.onPointerObservable.notifyObservers({ type: BABYLON.PointerEventTypes.POINTERDOWN, event: event.data.ev }); + engine.domEvents.emit('keyup', event.data.ev); break; } case 'dom:click': { @@ -70,6 +63,11 @@ onmessage = async (event) => { engine.domEvents.emit('click', event.data.ev); break; } + case 'dom:wheel': { + if (engine == null) break; + engine.domEvents.emit('wheel', event.data.ev); + break; + } case 'call': { if (engine != null) engine[event.data.fn](...(event.data.args ?? [])); break;