Introduce suppressNextDialogueAdvanceClick in RuntimeHost and related updates

This commit is contained in:
2026-04-14 21:19:02 +02:00
parent 446118153e
commit dfdffdda1c

View File

@@ -282,6 +282,7 @@ export class RuntimeHost {
null;
private currentInteractionPrompt: RuntimeInteractionPrompt | null = null;
private currentDialogue: RuntimeDialogueState | null = null;
private suppressNextDialogueAdvanceClick = false;
private currentSceneLoadState: RuntimeSceneLoadState | null = null;
private currentClockState: RuntimeClockState | null = null;
private lastPublishedClockState: RuntimeClockState | null = null;
@@ -487,6 +488,7 @@ export class RuntimeHost {
this.interactionSystem.reset();
this.setInteractionPrompt(null);
this.setRuntimeDialogue(null);
this.suppressNextDialogueAdvanceClick = false;
this.currentPlayerControllerTelemetry = null;
this.currentPlayerAudioHooks = null;
this.playerControllerTelemetryHandler?.(null);
@@ -599,6 +601,7 @@ export class RuntimeHost {
const nextLineIndex = this.currentDialogue.lineIndex + 1;
if (nextLineIndex >= dialogue.lines.length) {
this.suppressNextDialogueAdvanceClick = false;
this.setRuntimeDialogue(null);
return;
}
@@ -613,6 +616,7 @@ export class RuntimeHost {
}
closeRuntimeDialogue() {
this.suppressNextDialogueAdvanceClick = false;
this.setRuntimeDialogue(null);
}
@@ -3081,7 +3085,8 @@ export class RuntimeHost {
this.currentDialogue?.source.kind === dialogue?.source.kind &&
this.currentDialogue?.source.sourceEntityId ===
dialogue?.source.sourceEntityId &&
this.currentDialogue?.source.linkId === dialogue?.source.linkId
this.currentDialogue?.source.linkId === dialogue?.source.linkId &&
this.currentDialogue?.source.trigger === dialogue?.source.trigger
) {
return;
}
@@ -3095,7 +3100,8 @@ export class RuntimeHost {
source: RuntimeDialogueStartSource = {
kind: "direct",
sourceEntityId: null,
linkId: null
linkId: null,
trigger: null
}
) {
if (this.currentDialogue?.dialogueId === dialogueId) {
@@ -3109,6 +3115,8 @@ export class RuntimeHost {
return;
}
this.suppressNextDialogueAdvanceClick =
source.trigger === "enter" || source.trigger === "exit";
this.setRuntimeDialogue(dialogue);
}
@@ -3159,6 +3167,11 @@ export class RuntimeHost {
this.audioSystem.handleUserGesture();
if (this.currentDialogue !== null) {
if (this.suppressNextDialogueAdvanceClick) {
this.suppressNextDialogueAdvanceClick = false;
return;
}
this.advanceRuntimeDialogue();
return;
}