Add integration tests for NPC entity and presence scheduling (Ana Nanto)
This commit is contained in:
@@ -7,8 +7,15 @@ import {
|
|||||||
} from "../../src/document/scene-document";
|
} from "../../src/document/scene-document";
|
||||||
import {
|
import {
|
||||||
createPlayerStartEntity,
|
createPlayerStartEntity,
|
||||||
createSceneEntryEntity
|
createSceneEntryEntity,
|
||||||
|
createNpcEntity
|
||||||
} from "../../src/entities/entity-instances";
|
} from "../../src/entities/entity-instances";
|
||||||
|
import {
|
||||||
|
createActorControlTargetRef,
|
||||||
|
createSetActorPresenceControlEffect
|
||||||
|
} from "../../src/controls/control-surface";
|
||||||
|
import { createProjectScheduleRoutine } from "../../src/scheduler/project-scheduler";
|
||||||
|
import { createProjectSequence } from "../../src/sequencer/project-sequences";
|
||||||
|
|
||||||
const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
const { MockViewportHost, viewportHostInstances } = vi.hoisted(() => {
|
||||||
const viewportHostInstances: Array<{
|
const viewportHostInstances: Array<{
|
||||||
@@ -145,6 +152,11 @@ function createSceneTransitionProject() {
|
|||||||
},
|
},
|
||||||
yawDegrees: 90
|
yawDegrees: 90
|
||||||
});
|
});
|
||||||
|
const ana = createNpcEntity({
|
||||||
|
id: "entity-npc-ana-nanto",
|
||||||
|
actorId: "Ana Nanto"
|
||||||
|
});
|
||||||
|
const anaTarget = createActorControlTargetRef(ana.actorId);
|
||||||
const housePlayerStart = createPlayerStartEntity({
|
const housePlayerStart = createPlayerStartEntity({
|
||||||
id: "entity-player-start-house",
|
id: "entity-player-start-house",
|
||||||
position: {
|
position: {
|
||||||
@@ -173,7 +185,8 @@ function createSceneTransitionProject() {
|
|||||||
[outdoorScene.id]: {
|
[outdoorScene.id]: {
|
||||||
...outdoorScene,
|
...outdoorScene,
|
||||||
entities: {
|
entities: {
|
||||||
[outdoorPlayerStart.id]: outdoorPlayerStart
|
[outdoorPlayerStart.id]: outdoorPlayerStart,
|
||||||
|
[ana.id]: ana
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
[houseScene.id]: {
|
[houseScene.id]: {
|
||||||
@@ -184,6 +197,29 @@ function createSceneTransitionProject() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
projectDocument.sequences.sequences["sequence-ana-presence"] =
|
||||||
|
createProjectSequence({
|
||||||
|
id: "sequence-ana-presence",
|
||||||
|
title: "Ana Presence",
|
||||||
|
effects: [
|
||||||
|
{
|
||||||
|
stepClass: "held",
|
||||||
|
type: "controlEffect",
|
||||||
|
effect: createSetActorPresenceControlEffect({
|
||||||
|
target: anaTarget,
|
||||||
|
active: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
projectDocument.scheduler.routines["routine-ana-presence"] =
|
||||||
|
createProjectScheduleRoutine({
|
||||||
|
id: "routine-ana-presence",
|
||||||
|
title: "Ana Presence",
|
||||||
|
target: anaTarget,
|
||||||
|
sequenceId: "sequence-ana-presence",
|
||||||
|
effects: []
|
||||||
|
});
|
||||||
|
|
||||||
return projectDocument;
|
return projectDocument;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user