Add various runtime-three components
This commit is contained in:
28
src/runtime-three/navigation-controller.ts
Normal file
28
src/runtime-three/navigation-controller.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import type { PerspectiveCamera } from "three";
|
||||
|
||||
import type { Vec3 } from "../core/vector";
|
||||
|
||||
import type { RuntimeNavigationMode, RuntimeSceneDefinition, RuntimeSpawnPoint } from "./runtime-scene-build";
|
||||
|
||||
export interface FirstPersonTelemetry {
|
||||
feetPosition: Vec3;
|
||||
eyePosition: Vec3;
|
||||
grounded: boolean;
|
||||
pointerLocked: boolean;
|
||||
spawn: RuntimeSpawnPoint;
|
||||
}
|
||||
|
||||
export interface RuntimeControllerContext {
|
||||
camera: PerspectiveCamera;
|
||||
domElement: HTMLCanvasElement;
|
||||
getRuntimeScene(): RuntimeSceneDefinition;
|
||||
setRuntimeMessage(message: string | null): void;
|
||||
setFirstPersonTelemetry(telemetry: FirstPersonTelemetry | null): void;
|
||||
}
|
||||
|
||||
export interface NavigationController {
|
||||
id: RuntimeNavigationMode;
|
||||
activate(ctx: RuntimeControllerContext): void;
|
||||
deactivate(ctx: RuntimeControllerContext): void;
|
||||
update(dt: number): void;
|
||||
}
|
||||
Reference in New Issue
Block a user