Make runtime clock state optional and provide default values in RunnerCanvas
This commit is contained in:
@@ -13,6 +13,7 @@ import {
|
|||||||
} 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";
|
||||||
import {
|
import {
|
||||||
|
createRuntimeClockState,
|
||||||
resolveRuntimeDayNightWorldState,
|
resolveRuntimeDayNightWorldState,
|
||||||
type RuntimeClockState
|
type RuntimeClockState
|
||||||
} from "../runtime-three/runtime-project-time";
|
} from "../runtime-three/runtime-project-time";
|
||||||
@@ -31,9 +32,9 @@ interface RunnerCanvasProps {
|
|||||||
loadedImageAssets: Record<string, LoadedImageAsset>;
|
loadedImageAssets: Record<string, LoadedImageAsset>;
|
||||||
loadedAudioAssets: Record<string, LoadedAudioAsset>;
|
loadedAudioAssets: Record<string, LoadedAudioAsset>;
|
||||||
navigationMode: RuntimeNavigationMode;
|
navigationMode: RuntimeNavigationMode;
|
||||||
runtimeClock: RuntimeClockState;
|
runtimeClock?: RuntimeClockState;
|
||||||
onRuntimeMessageChange(message: string | null): void;
|
onRuntimeMessageChange(message: string | null): void;
|
||||||
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;
|
onSceneExitActivated(request: RuntimeSceneExitTransitionRequest): void;
|
||||||
@@ -48,9 +49,9 @@ export function RunnerCanvas({
|
|||||||
loadedImageAssets,
|
loadedImageAssets,
|
||||||
loadedAudioAssets,
|
loadedAudioAssets,
|
||||||
navigationMode,
|
navigationMode,
|
||||||
runtimeClock,
|
runtimeClock = createRuntimeClockState(runtimeScene.time),
|
||||||
onRuntimeMessageChange,
|
onRuntimeMessageChange,
|
||||||
onRuntimeClockChange,
|
onRuntimeClockChange = () => {},
|
||||||
onFirstPersonTelemetryChange,
|
onFirstPersonTelemetryChange,
|
||||||
onInteractionPromptChange,
|
onInteractionPromptChange,
|
||||||
onSceneExitActivated
|
onSceneExitActivated
|
||||||
@@ -90,7 +91,7 @@ export function RunnerCanvas({
|
|||||||
runtimeHost.mount(container);
|
runtimeHost.mount(container);
|
||||||
runtimeHost.setRuntimeMessageHandler(onRuntimeMessageChange);
|
runtimeHost.setRuntimeMessageHandler(onRuntimeMessageChange);
|
||||||
runtimeHost.setSceneLoadStateHandler(setSceneLoadState);
|
runtimeHost.setSceneLoadStateHandler(setSceneLoadState);
|
||||||
runtimeHost.setRuntimeClockStateHandler(onRuntimeClockChange);
|
runtimeHost.setRuntimeClockStateHandler?.(onRuntimeClockChange);
|
||||||
runtimeHost.setFirstPersonTelemetryHandler((telemetry) => {
|
runtimeHost.setFirstPersonTelemetryHandler((telemetry) => {
|
||||||
setFirstPersonTelemetry(telemetry);
|
setFirstPersonTelemetry(telemetry);
|
||||||
onFirstPersonTelemetryChange(telemetry);
|
onFirstPersonTelemetryChange(telemetry);
|
||||||
@@ -136,7 +137,7 @@ export function RunnerCanvas({
|
|||||||
}, [onSceneExitActivated]);
|
}, [onSceneExitActivated]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
hostRef.current?.setRuntimeClockStateHandler(onRuntimeClockChange);
|
hostRef.current?.setRuntimeClockStateHandler?.(onRuntimeClockChange);
|
||||||
}, [onRuntimeClockChange]);
|
}, [onRuntimeClockChange]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user