Add support for NPC targetability in scene document migration

This commit is contained in:
2026-05-11 21:22:24 +02:00
parent 2ca8d9c951
commit fcbd2f58db

View File

@@ -35,6 +35,7 @@ import {
DEFAULT_PLAYER_START_INTERACTION_REACH_METERS, DEFAULT_PLAYER_START_INTERACTION_REACH_METERS,
DEFAULT_PLAYER_START_KEYBOARD_BINDINGS, DEFAULT_PLAYER_START_KEYBOARD_BINDINGS,
DEFAULT_NPC_SCALE, DEFAULT_NPC_SCALE,
DEFAULT_NPC_TARGETABLE,
DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET, DEFAULT_PLAYER_START_TARGET_BUTTON_CYCLES_ACTIVE_TARGET,
DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES, DEFAULT_TRIGGER_VOLUME_ROTATION_DEGREES,
createNpcAlwaysPresence, createNpcAlwaysPresence,
@@ -242,6 +243,7 @@ import {
NPC_COLLIDER_SCENE_DOCUMENT_VERSION, NPC_COLLIDER_SCENE_DOCUMENT_VERSION,
NPC_ENTITY_FOUNDATION_SCENE_DOCUMENT_VERSION, NPC_ENTITY_FOUNDATION_SCENE_DOCUMENT_VERSION,
NPC_PRESENCE_SCENE_DOCUMENT_VERSION, NPC_PRESENCE_SCENE_DOCUMENT_VERSION,
NPC_TARGETING_SCENE_DOCUMENT_VERSION,
WHITEBOX_BOX_LIGHT_VOLUME_SCENE_DOCUMENT_VERSION, WHITEBOX_BOX_LIGHT_VOLUME_SCENE_DOCUMENT_VERSION,
CELESTIAL_BODY_OVERLAY_SCENE_DOCUMENT_VERSION, CELESTIAL_BODY_OVERLAY_SCENE_DOCUMENT_VERSION,
SCENE_DOCUMENT_VERSION, SCENE_DOCUMENT_VERSION,
@@ -290,7 +292,10 @@ import {
createProjectSequence, createProjectSequence,
type ProjectSequenceLibrary type ProjectSequenceLibrary
} from "../sequencer/project-sequences"; } from "../sequencer/project-sequences";
import { type SequenceClip } from "../sequencer/project-sequence-steps"; import {
getInteractionLinkImpulseSteps,
type SequenceClip
} from "../sequencer/project-sequence-steps";
import { import {
createScenePath, createScenePath,
createScenePathPoint, createScenePathPoint,
@@ -4308,6 +4313,11 @@ function readNpcEntity(
position: readVec3(value.position, `${label}.position`), position: readVec3(value.position, `${label}.position`),
actorId: expectString(value.actorId, `${label}.actorId`), actorId: expectString(value.actorId, `${label}.actorId`),
presence: readNpcPresence(value.presence, `${label}.presence`), presence: readNpcPresence(value.presence, `${label}.presence`),
targetable: readOptionalBoolean(
value.targetable,
`${label}.targetable`,
DEFAULT_NPC_TARGETABLE
),
yawDegrees: expectFiniteNumber(value.yawDegrees, `${label}.yawDegrees`), yawDegrees: expectFiniteNumber(value.yawDegrees, `${label}.yawDegrees`),
scale: readOptionalVec3(value.scale, `${label}.scale`, DEFAULT_NPC_SCALE), scale: readOptionalVec3(value.scale, `${label}.scale`, DEFAULT_NPC_SCALE),
modelAssetId: modelAssetId: