Refactor pointer lock detection and simplify event listeners in navigation controller
This commit is contained in:
@@ -4899,7 +4899,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const pointerCaptured = firstPersonTelemetry?.pointerLocked === true;
|
const pointerCaptured = document.pointerLockElement !== null;
|
||||||
|
|
||||||
if (pointerCaptured) {
|
if (pointerCaptured) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -234,7 +234,7 @@ export class ThirdPersonNavigationController implements NavigationController {
|
|||||||
this.initializedFromSpawn = true;
|
this.initializedFromSpawn = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener("keydown", this.handleKeyDown, true);
|
window.addEventListener("keydown", this.handleKeyDown);
|
||||||
window.addEventListener("keyup", this.handleKeyUp);
|
window.addEventListener("keyup", this.handleKeyUp);
|
||||||
window.addEventListener("blur", this.handleBlur);
|
window.addEventListener("blur", this.handleBlur);
|
||||||
document.addEventListener("mousemove", this.handleMouseMove);
|
document.addEventListener("mousemove", this.handleMouseMove);
|
||||||
@@ -279,7 +279,7 @@ export class ThirdPersonNavigationController implements NavigationController {
|
|||||||
ctx: RuntimeControllerContext,
|
ctx: RuntimeControllerContext,
|
||||||
options: NavigationControllerDeactivateOptions = {}
|
options: NavigationControllerDeactivateOptions = {}
|
||||||
): void {
|
): void {
|
||||||
window.removeEventListener("keydown", this.handleKeyDown, true);
|
window.removeEventListener("keydown", this.handleKeyDown);
|
||||||
window.removeEventListener("keyup", this.handleKeyUp);
|
window.removeEventListener("keyup", this.handleKeyUp);
|
||||||
window.removeEventListener("blur", this.handleBlur);
|
window.removeEventListener("blur", this.handleBlur);
|
||||||
document.removeEventListener("mousemove", this.handleMouseMove);
|
document.removeEventListener("mousemove", this.handleMouseMove);
|
||||||
@@ -854,20 +854,6 @@ export class ThirdPersonNavigationController implements NavigationController {
|
|||||||
|
|
||||||
private handleKeyDown = (event: KeyboardEvent) => {
|
private handleKeyDown = (event: KeyboardEvent) => {
|
||||||
this.pressedKeys.add(event.code);
|
this.pressedKeys.add(event.code);
|
||||||
|
|
||||||
if (
|
|
||||||
event.code === "Escape" &&
|
|
||||||
this.context !== null &&
|
|
||||||
(this.pointerLocked ||
|
|
||||||
document.pointerLockElement === this.context.domElement)
|
|
||||||
) {
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopImmediatePropagation();
|
|
||||||
|
|
||||||
if (document.pointerLockElement === this.context.domElement) {
|
|
||||||
document.exitPointerLock();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private handleKeyUp = (event: KeyboardEvent) => {
|
private handleKeyUp = (event: KeyboardEvent) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user