auto-git:
[change] tests/serialization/scene-document-json.test.ts
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import {
|
||||
createActivateCameraRigOverrideControlEffect,
|
||||
createActorControlTargetRef,
|
||||
createCameraRigControlTargetRef,
|
||||
createClearCameraRigOverrideControlEffect,
|
||||
createFollowActorPathControlEffect,
|
||||
createPlayActorAnimationControlEffect,
|
||||
createSetActorPresenceControlEffect
|
||||
@@ -68,6 +71,7 @@ import {
|
||||
} from "../../src/entities/entity-instances";
|
||||
import { createProjectScheduleRoutine } from "../../src/scheduler/project-scheduler";
|
||||
import {
|
||||
createControlInteractionLink,
|
||||
createPlayAnimationInteractionLink,
|
||||
createPlaySoundInteractionLink,
|
||||
createStopAnimationInteractionLink,
|
||||
@@ -119,6 +123,59 @@ describe("scene document JSON", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("round-trips camera rig control effects in interaction links, sequences, and scheduler routines", () => {
|
||||
const cameraRig = createCameraRigEntity({
|
||||
id: "entity-camera-rig-main",
|
||||
target: createCameraRigWorldPointTargetRef({
|
||||
x: 0,
|
||||
y: 1.5,
|
||||
z: 0
|
||||
})
|
||||
});
|
||||
const triggerVolume = createTriggerVolumeEntity({
|
||||
id: "entity-trigger-camera"
|
||||
});
|
||||
const document = createEmptySceneDocument({ name: "Camera Control Scene" });
|
||||
document.entities[cameraRig.id] = cameraRig;
|
||||
document.entities[triggerVolume.id] = triggerVolume;
|
||||
document.interactionLinks["link-camera-activate"] = createControlInteractionLink(
|
||||
{
|
||||
id: "link-camera-activate",
|
||||
sourceEntityId: triggerVolume.id,
|
||||
effect: createActivateCameraRigOverrideControlEffect({
|
||||
target: createCameraRigControlTargetRef(cameraRig.id)
|
||||
})
|
||||
}
|
||||
);
|
||||
document.sequences.sequences["sequence-camera-clear"] = {
|
||||
id: "sequence-camera-clear",
|
||||
title: "Camera Clear",
|
||||
steps: [
|
||||
{
|
||||
stepClass: "held",
|
||||
type: "controlEffect",
|
||||
effect: createClearCameraRigOverrideControlEffect({
|
||||
target: createCameraRigControlTargetRef(cameraRig.id)
|
||||
})
|
||||
}
|
||||
]
|
||||
};
|
||||
document.scheduler.routines["routine-camera-activate"] =
|
||||
createProjectScheduleRoutine({
|
||||
id: "routine-camera-activate",
|
||||
title: "Camera Activate",
|
||||
target: createCameraRigControlTargetRef(cameraRig.id),
|
||||
sequenceId: "sequence-camera-clear",
|
||||
effect: createActivateCameraRigOverrideControlEffect({
|
||||
target: createCameraRigControlTargetRef(cameraRig.id)
|
||||
})
|
||||
});
|
||||
|
||||
expect(parseSceneDocumentJson(serializeSceneDocument(document))).toEqual(
|
||||
document
|
||||
);
|
||||
});
|
||||
|
||||
it("migrates v70 scene documents by defaulting shader sky settings from the authored day background", () => {
|
||||
const document = createEmptySceneDocument({
|
||||
name: "Legacy Shader Sky Scene"
|
||||
|
||||
Reference in New Issue
Block a user