Skip to content

Commit 3a2b81d

Browse files
committed
fix firefox
1 parent 4f39fad commit 3a2b81d

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

cave-game/client/lib/Vox.ts

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -182,18 +182,26 @@ export function updateCameraAngle(transform: mat4): void {
182182
const listener = audioContext.listener;
183183

184184
const translation = mat4.getTranslation(vec3.create(), transform);
185-
listener.positionX.value = translation[0];
186-
listener.positionY.value = translation[1];
187-
listener.positionZ.value = translation[2];
185+
if ("positionX" in audioContext.listener /* typescript hack needed here */) {
186+
listener.positionX.value = translation[0];
187+
listener.positionY.value = translation[1];
188+
listener.positionZ.value = translation[2];
189+
} else {
190+
listener.setPosition(translation[0], translation[1], translation[2]);
191+
}
188192

189193
// Update listener orientation
190194
const forward = vec3.transformMat4(vec3.create(), [0, 0, -1], transform);
191195
const up = vec3.transformMat4(vec3.create(), [0, 1, 0], transform);
192196

193-
listener.forwardX.value = forward[0];
194-
listener.forwardY.value = forward[1];
195-
listener.forwardZ.value = forward[2];
196-
listener.upX.value = up[0];
197-
listener.upY.value = up[1];
198-
listener.upZ.value = up[2];
197+
if ("forwardX" in audioContext.listener) {
198+
listener.forwardX.value = forward[0];
199+
listener.forwardY.value = forward[1];
200+
listener.forwardZ.value = forward[2];
201+
listener.upX.value = up[0];
202+
listener.upY.value = up[1];
203+
listener.upZ.value = up[2];
204+
} else {
205+
listener.setOrientation(forward[0], forward[1], forward[2], up[0], up[1], up[2]);
206+
}
199207
}

0 commit comments

Comments
 (0)