Add NPC dialogue handling in App.tsx

This commit is contained in:
2026-04-14 20:33:04 +02:00
parent 4ae935cb99
commit c7f5764ca2

View File

@@ -1783,6 +1783,11 @@ export function App({ store, initialStatusMessage }: AppProps) {
selectedNpcAsset !== null && selectedNpcAsset.kind === "model"
? selectedNpcAsset
: null;
const selectedNpcDialogue =
selectedNpc === null || selectedNpc.dialogueId === null
? null
: editorState.projectDocument.dialogues.dialogues[selectedNpc.dialogueId] ??
null;
const selectedNpcActorUsages =
selectedNpc === null
? []
@@ -2064,6 +2069,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
const [npcModelAssetIdDraft, setNpcModelAssetIdDraft] = useState(
DEFAULT_NPC_MODEL_ASSET_ID ?? ""
);
const [npcDialogueIdDraft, setNpcDialogueIdDraft] = useState("");
const [teleportTargetYawDraft, setTeleportTargetYawDraft] = useState(
String(DEFAULT_TELEPORT_TARGET_YAW_DEGREES)
);
@@ -2759,6 +2765,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
);
setNpcBoxSizeDraft(createVec3Draft(createNpcColliderSettings().boxSize));
setNpcModelAssetIdDraft(DEFAULT_NPC_MODEL_ASSET_ID ?? "");
setNpcDialogueIdDraft("");
setTeleportTargetYawDraft(String(DEFAULT_TELEPORT_TARGET_YAW_DEGREES));
setInteractableRadiusDraft(String(DEFAULT_INTERACTABLE_RADIUS));
setInteractablePromptDraft(DEFAULT_INTERACTABLE_PROMPT);
@@ -2827,6 +2834,7 @@ export function App({ store, initialStatusMessage }: AppProps) {
setNpcCapsuleHeightDraft(String(selectedEntity.collider.capsuleHeight));
setNpcBoxSizeDraft(createVec3Draft(selectedEntity.collider.boxSize));
setNpcModelAssetIdDraft(selectedEntity.modelAssetId ?? "");
setNpcDialogueIdDraft(selectedEntity.dialogueId ?? "");
break;
case "soundEmitter":
setSoundEmitterAudioAssetIdDraft(selectedEntity.audioAssetId ?? "");