Support scene entry and scene exit in transform session command

This commit is contained in:
2026-04-11 04:39:14 +02:00
parent 8250d53078
commit c6ef980604

View File

@@ -11,6 +11,8 @@ import {
createInteractableEntity,
createPlayerStartEntity,
createPointLightEntity,
createSceneEntryEntity,
createSceneExitEntity,
createSoundEmitterEntity,
createSpotLightEntity,
createTeleportTargetEntity,
@@ -42,9 +44,13 @@ function createTransformCommandLabel(session: ActiveTransformSession): string {
? "sound emitter"
: session.target.entityKind === "triggerVolume"
? "trigger volume"
: session.target.entityKind === "sceneEntry"
? "scene entry"
: session.target.entityKind === "teleportTarget"
? "teleport target"
: "interactable"
: session.target.entityKind === "interactable"
? "interactable"
: "scene exit"
: "model instance"
}`;
}
@@ -188,6 +194,18 @@ export function createCommitTransformSessionCommand(document: SceneDocument, ses
}),
label: createTransformCommandLabel(session)
});
case "sceneEntry":
return createUpsertEntityCommand({
entity: createSceneEntryEntity({
...entity,
position: session.preview.position,
yawDegrees:
session.preview.rotation.kind === "yaw"
? session.preview.rotation.yawDegrees
: entity.yawDegrees
}),
label: createTransformCommandLabel(session)
});
case "soundEmitter":
return createUpsertEntityCommand({
entity: createSoundEmitterEntity({
@@ -221,6 +239,14 @@ export function createCommitTransformSessionCommand(document: SceneDocument, ses
}),
label: createTransformCommandLabel(session)
});
case "sceneExit":
return createUpsertEntityCommand({
entity: createSceneExitEntity({
...entity,
position: session.preview.position
}),
label: createTransformCommandLabel(session)
});
}
}
}