Add actor presence control effect and related functions
This commit is contained in:
@@ -59,6 +59,7 @@ import {
|
|||||||
type PlayerStartMovementTemplateKind
|
type PlayerStartMovementTemplateKind
|
||||||
} from "../entities/entity-instances";
|
} from "../entities/entity-instances";
|
||||||
import {
|
import {
|
||||||
|
createActorControlTargetRef,
|
||||||
createActiveSceneControlTargetRef,
|
createActiveSceneControlTargetRef,
|
||||||
createEntityControlTargetRef,
|
createEntityControlTargetRef,
|
||||||
createInteractionControlTargetRef,
|
createInteractionControlTargetRef,
|
||||||
@@ -67,6 +68,7 @@ import {
|
|||||||
createPlayModelAnimationControlEffect,
|
createPlayModelAnimationControlEffect,
|
||||||
createPlaySoundControlEffect,
|
createPlaySoundControlEffect,
|
||||||
createProjectGlobalControlTargetRef,
|
createProjectGlobalControlTargetRef,
|
||||||
|
createSetActorPresenceControlEffect,
|
||||||
createSetInteractionEnabledControlEffect,
|
createSetInteractionEnabledControlEffect,
|
||||||
createSetLightEnabledControlEffect,
|
createSetLightEnabledControlEffect,
|
||||||
createSetLightIntensityControlEffect,
|
createSetLightIntensityControlEffect,
|
||||||
@@ -136,6 +138,7 @@ import {
|
|||||||
PLAYER_START_NAVIGATION_MODE_SCENE_DOCUMENT_VERSION,
|
PLAYER_START_NAVIGATION_MODE_SCENE_DOCUMENT_VERSION,
|
||||||
PLAYER_START_COLLIDER_SETTINGS_SCENE_DOCUMENT_VERSION,
|
PLAYER_START_COLLIDER_SETTINGS_SCENE_DOCUMENT_VERSION,
|
||||||
PATH_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
PATH_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
||||||
|
PROJECT_SCHEDULER_FOUNDATION_SCENE_DOCUMENT_VERSION,
|
||||||
RUNNER_V1_SCENE_DOCUMENT_VERSION,
|
RUNNER_V1_SCENE_DOCUMENT_VERSION,
|
||||||
SCENE_TRANSITION_ENTITIES_SCENE_DOCUMENT_VERSION,
|
SCENE_TRANSITION_ENTITIES_SCENE_DOCUMENT_VERSION,
|
||||||
SPATIAL_AUDIO_SCENE_DOCUMENT_VERSION,
|
SPATIAL_AUDIO_SCENE_DOCUMENT_VERSION,
|
||||||
@@ -177,6 +180,12 @@ import {
|
|||||||
normalizeTimeOfDayHours,
|
normalizeTimeOfDayHours,
|
||||||
type ProjectTimeSettings
|
type ProjectTimeSettings
|
||||||
} from "./project-time-settings";
|
} from "./project-time-settings";
|
||||||
|
import {
|
||||||
|
createEmptyProjectScheduler,
|
||||||
|
createProjectScheduleEveryDaySelection,
|
||||||
|
createProjectScheduleRoutine,
|
||||||
|
type ProjectScheduler
|
||||||
|
} from "../scheduler/project-scheduler";
|
||||||
import {
|
import {
|
||||||
cloneWorldBackgroundSettings,
|
cloneWorldBackgroundSettings,
|
||||||
createDefaultWorldTimeOfDaySettings,
|
createDefaultWorldTimeOfDaySettings,
|
||||||
@@ -2886,10 +2895,9 @@ function readControlTargetRef(value: unknown, label: string): ControlTargetRef {
|
|||||||
|
|
||||||
switch (kind) {
|
switch (kind) {
|
||||||
case "actor":
|
case "actor":
|
||||||
return {
|
return createActorControlTargetRef(
|
||||||
kind: "actor",
|
expectString(value.actorId, `${label}.actorId`)
|
||||||
actorId: expectString(value.actorId, `${label}.actorId`)
|
);
|
||||||
};
|
|
||||||
case "entity": {
|
case "entity": {
|
||||||
const entityKind = expectString(value.entityKind, `${label}.entityKind`);
|
const entityKind = expectString(value.entityKind, `${label}.entityKind`);
|
||||||
|
|
||||||
@@ -2944,6 +2952,14 @@ function readControlEffect(value: unknown, label: string): ControlEffect {
|
|||||||
const type = expectString(value.type, `${label}.type`);
|
const type = expectString(value.type, `${label}.type`);
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
case "setActorPresence":
|
||||||
|
return createSetActorPresenceControlEffect({
|
||||||
|
target: readControlTargetRef(
|
||||||
|
value.target,
|
||||||
|
`${label}.target`
|
||||||
|
) as ReturnType<typeof createActorControlTargetRef>,
|
||||||
|
active: expectBoolean(value.active, `${label}.active`)
|
||||||
|
});
|
||||||
case "playModelAnimation":
|
case "playModelAnimation":
|
||||||
return createPlayModelAnimationControlEffect({
|
return createPlayModelAnimationControlEffect({
|
||||||
target: readControlTargetRef(
|
target: readControlTargetRef(
|
||||||
|
|||||||
Reference in New Issue
Block a user