Add test for diving as submerged water locomotion
This commit is contained in:
@@ -166,4 +166,41 @@ describe("player-controller-telemetry", () => {
|
|||||||
expect(telemetry.hooks.animation.inWater).toBe(true);
|
expect(telemetry.hooks.animation.inWater).toBe(true);
|
||||||
expect(telemetry.hooks.animation.signals.enteredWater).toBe(true);
|
expect(telemetry.hooks.animation.signals.enteredWater).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("treats diving as submerged water locomotion for hook consumers", () => {
|
||||||
|
const runtimeScene = buildRuntimeSceneFromDocument(
|
||||||
|
createEmptySceneDocument()
|
||||||
|
);
|
||||||
|
const telemetry = createPlayerControllerTelemetry({
|
||||||
|
feetPosition: { x: 0, y: 0.5, z: 0 },
|
||||||
|
eyePosition: { x: 0, y: 2, z: 0 },
|
||||||
|
grounded: false,
|
||||||
|
locomotionState: createLocomotionState({
|
||||||
|
locomotionMode: "diving",
|
||||||
|
airborneKind: null,
|
||||||
|
grounded: false,
|
||||||
|
gait: "idle",
|
||||||
|
inputMagnitude: 0,
|
||||||
|
planarSpeed: 0,
|
||||||
|
verticalVelocity: -runtimeScene.playerMovement.moveSpeed
|
||||||
|
}),
|
||||||
|
movement: runtimeScene.playerMovement,
|
||||||
|
inWaterVolume: true,
|
||||||
|
cameraSubmerged: true,
|
||||||
|
inFogVolume: true,
|
||||||
|
pointerLocked: false,
|
||||||
|
spawn: runtimeScene.spawn,
|
||||||
|
previousLocomotionState: createLocomotionState({
|
||||||
|
locomotionMode: "swimming",
|
||||||
|
grounded: false
|
||||||
|
}),
|
||||||
|
previousInWaterVolume: true,
|
||||||
|
jumpStarted: false,
|
||||||
|
headBump: false
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(telemetry.hooks.camera.swimming).toBe(true);
|
||||||
|
expect(telemetry.hooks.camera.underwaterAmount).toBe(1);
|
||||||
|
expect(telemetry.hooks.animation.locomotionMode).toBe("diving");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user