diff --git a/src/runtime-three/navigation-controller.ts b/src/runtime-three/navigation-controller.ts index a9e611de..508d0334 100644 --- a/src/runtime-three/navigation-controller.ts +++ b/src/runtime-three/navigation-controller.ts @@ -9,15 +9,26 @@ export interface FirstPersonTelemetry { feetPosition: Vec3; eyePosition: Vec3; grounded: boolean; + locomotionState: RuntimeLocomotionState; + inWaterVolume: boolean; + inFogVolume: boolean; pointerLocked: boolean; spawn: RuntimeSpawnPoint; } +export type RuntimeLocomotionState = "grounded" | "swimming" | "flying"; + +export interface RuntimePlayerVolumeState { + inWater: boolean; + inFog: boolean; +} + export interface RuntimeControllerContext { camera: PerspectiveCamera; domElement: HTMLCanvasElement; getRuntimeScene(): RuntimeSceneDefinition; resolveFirstPersonMotion(feetPosition: Vec3, motion: Vec3, shape: FirstPersonPlayerShape): ResolvedPlayerMotion | null; + resolvePlayerVolumeState(feetPosition: Vec3): RuntimePlayerVolumeState; setRuntimeMessage(message: string | null): void; setFirstPersonTelemetry(telemetry: FirstPersonTelemetry | null): void; }