Add NPC support in interaction source entity handling

This commit is contained in:
2026-04-15 10:58:46 +02:00
parent 5a132cb351
commit 9cce99b7db

View File

@@ -481,9 +481,22 @@ type WorldNightEnvironmentNumericField =
type InteractionSourceEntity = Extract<
EntityInstance,
{ kind: "triggerVolume" | "interactable" }
{ kind: "triggerVolume" | "interactable" | "npc" }
>;
function getInteractionSourceEntityLabel(
entity: InteractionSourceEntity
): string {
switch (entity.kind) {
case "triggerVolume":
return "Trigger Volume";
case "interactable":
return "Interactable";
case "npc":
return "NPC";
}
}
function getModelInstanceCollisionModeDescription(
mode: ModelInstanceCollisionMode
): string {
@@ -1495,7 +1508,9 @@ function isInteractionSourceEntity(
): entity is InteractionSourceEntity {
return (
entity !== null &&
(entity.kind === "triggerVolume" || entity.kind === "interactable")
(entity.kind === "triggerVolume" ||
entity.kind === "interactable" ||
entity.kind === "npc")
);
}
@@ -2133,6 +2148,13 @@ export function App({ store, initialStatusMessage }: AppProps) {
editorState.document.interactionLinks,
selectedInteractable.id
);
const selectedNpcLinks =
selectedNpc === null
? []
: getInteractionLinksForSource(
editorState.document.interactionLinks,
selectedNpc.id
);
const sceneTargetOptions = sceneList.map((scene) => ({
id: scene.id,
name: scene.name