feat: Integrate climbing state and surface resolution into navigation controller
This commit is contained in:
@@ -13,6 +13,7 @@ import type {
|
|||||||
RuntimeSceneDefinition,
|
RuntimeSceneDefinition,
|
||||||
RuntimeSpawnPoint
|
RuntimeSpawnPoint
|
||||||
} from "./runtime-scene-build";
|
} from "./runtime-scene-build";
|
||||||
|
import type { RuntimePlayerClimbSurface } from "./player-climbing";
|
||||||
|
|
||||||
export interface RuntimeMovementTransitionSignals {
|
export interface RuntimeMovementTransitionSignals {
|
||||||
jumpStarted: boolean;
|
jumpStarted: boolean;
|
||||||
@@ -81,7 +82,8 @@ export type RuntimeLocomotionMode =
|
|||||||
| "airborne"
|
| "airborne"
|
||||||
| "flying"
|
| "flying"
|
||||||
| "swimming"
|
| "swimming"
|
||||||
| "diving";
|
| "diving"
|
||||||
|
| "climbing";
|
||||||
export type RuntimeAirborneKind = "jumping" | "falling" | null;
|
export type RuntimeAirborneKind = "jumping" | "falling" | null;
|
||||||
export type RuntimeLocomotionGait =
|
export type RuntimeLocomotionGait =
|
||||||
| "idle"
|
| "idle"
|
||||||
@@ -155,6 +157,12 @@ export interface RuntimeControllerContext {
|
|||||||
feetPosition: Vec3,
|
feetPosition: Vec3,
|
||||||
shape: FirstPersonPlayerShape
|
shape: FirstPersonPlayerShape
|
||||||
): boolean;
|
): boolean;
|
||||||
|
resolvePlayerClimbSurface?(
|
||||||
|
feetPosition: Vec3,
|
||||||
|
facingDirection: Vec3,
|
||||||
|
shape: FirstPersonPlayerShape,
|
||||||
|
previousSurface?: RuntimePlayerClimbSurface | null
|
||||||
|
): RuntimePlayerClimbSurface | null;
|
||||||
resolvePlayerVolumeState(feetPosition: Vec3): RuntimePlayerVolumeState;
|
resolvePlayerVolumeState(feetPosition: Vec3): RuntimePlayerVolumeState;
|
||||||
resolveThirdPersonCameraCollision(
|
resolveThirdPersonCameraCollision(
|
||||||
pivot: Vec3,
|
pivot: Vec3,
|
||||||
|
|||||||
Reference in New Issue
Block a user