Update scene transition handling and entity rotation logic
This commit is contained in:
@@ -844,7 +844,6 @@ function resolveEntityRotation(
|
|||||||
case "soundEmitter":
|
case "soundEmitter":
|
||||||
case "triggerVolume":
|
case "triggerVolume":
|
||||||
case "interactable":
|
case "interactable":
|
||||||
case "sceneExit":
|
|
||||||
return {
|
return {
|
||||||
kind: "none"
|
kind: "none"
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
RuntimeHost,
|
RuntimeHost,
|
||||||
type RuntimeDialogueState,
|
type RuntimeDialogueState,
|
||||||
type RuntimePauseState,
|
type RuntimePauseState,
|
||||||
type RuntimeSceneExitTransitionRequest,
|
type RuntimeSceneTransitionRequest,
|
||||||
type RuntimeSceneLoadState
|
type RuntimeSceneLoadState
|
||||||
} from "../runtime-three/runtime-host";
|
} from "../runtime-three/runtime-host";
|
||||||
import type { RuntimeInteractionPrompt } from "../runtime-three/runtime-interaction-system";
|
import type { RuntimeInteractionPrompt } from "../runtime-three/runtime-interaction-system";
|
||||||
@@ -40,7 +40,7 @@ interface RunnerCanvasProps {
|
|||||||
onRuntimeClockChange?(clock: RuntimeClockState): void;
|
onRuntimeClockChange?(clock: RuntimeClockState): void;
|
||||||
onFirstPersonTelemetryChange(telemetry: FirstPersonTelemetry | null): void;
|
onFirstPersonTelemetryChange(telemetry: FirstPersonTelemetry | null): void;
|
||||||
onInteractionPromptChange(prompt: RuntimeInteractionPrompt | null): void;
|
onInteractionPromptChange(prompt: RuntimeInteractionPrompt | null): void;
|
||||||
onSceneExitActivated(request: RuntimeSceneExitTransitionRequest): void;
|
onSceneTransitionActivated(request: RuntimeSceneTransitionRequest): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function RunnerCanvas({
|
export function RunnerCanvas({
|
||||||
@@ -57,7 +57,7 @@ export function RunnerCanvas({
|
|||||||
onRuntimeClockChange = () => {},
|
onRuntimeClockChange = () => {},
|
||||||
onFirstPersonTelemetryChange,
|
onFirstPersonTelemetryChange,
|
||||||
onInteractionPromptChange,
|
onInteractionPromptChange,
|
||||||
onSceneExitActivated
|
onSceneTransitionActivated
|
||||||
}: RunnerCanvasProps) {
|
}: RunnerCanvasProps) {
|
||||||
const containerRef = useRef<HTMLDivElement | null>(null);
|
const containerRef = useRef<HTMLDivElement | null>(null);
|
||||||
const hostRef = useRef<RuntimeHost | null>(null);
|
const hostRef = useRef<RuntimeHost | null>(null);
|
||||||
@@ -170,8 +170,8 @@ export function RunnerCanvas({
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
hostRef.current?.setSceneExitHandler(onSceneExitActivated);
|
hostRef.current?.setSceneTransitionHandler(onSceneTransitionActivated);
|
||||||
}, [onSceneExitActivated]);
|
}, [onSceneTransitionActivated]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
lastForwardedRuntimeClockRef.current = runtimeClock;
|
lastForwardedRuntimeClockRef.current = runtimeClock;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export interface RuntimeSceneTransitionRecord {
|
|||||||
fromSceneName: string;
|
fromSceneName: string;
|
||||||
toSceneId: string;
|
toSceneId: string;
|
||||||
toSceneName: string;
|
toSceneName: string;
|
||||||
viaExitEntityId: string;
|
sourceEntityId: string | null;
|
||||||
targetEntryEntityId: string;
|
targetEntryEntityId: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user