Fix another cyclic mfer!
This commit is contained in:
@ -31,6 +31,7 @@ import {
|
||||
codeManager,
|
||||
engineCommandManager,
|
||||
rustContext,
|
||||
sceneInfra,
|
||||
} from '@src/lib/singletons'
|
||||
import { maybeWriteToDisk } from '@src/lib/telemetry'
|
||||
import { type IndexLoaderData } from '@src/lib/types'
|
||||
@ -39,6 +40,9 @@ import { EngineStreamTransition } from '@src/machines/engineStreamMachine'
|
||||
import { commandBarActor } from '@src/machines/commandBarMachine'
|
||||
import { onboardingPaths } from '@src/routes/Onboarding/paths'
|
||||
|
||||
// CYCLIC REF
|
||||
sceneInfra.camControls.engineStreamActor = engineStreamActor
|
||||
|
||||
maybeWriteToDisk()
|
||||
.then(() => {})
|
||||
.catch(() => {})
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
import type { EngineStreamActor } from '@src/machines/engineStreamMachine'
|
||||
import type { CameraViewState_type, CameraDragInteractionType_type } from '@kittycad/lib/dist/types/src/models'
|
||||
import * as TWEEN from '@tweenjs/tween.js'
|
||||
import {
|
||||
@ -39,7 +40,6 @@ import {
|
||||
uuidv4,
|
||||
} from '@src/lib/utils'
|
||||
import { deg2Rad } from '@src/lib/utils2d'
|
||||
import { engineStreamActor } from '@src/machines/appMachine'
|
||||
|
||||
const ORTHOGRAPHIC_CAMERA_SIZE = 20
|
||||
const FRAMES_TO_ANIMATE_IN = 30
|
||||
@ -98,6 +98,7 @@ class CameraRateLimiter {
|
||||
|
||||
export class CameraControls {
|
||||
engineCommandManager: EngineCommandManager
|
||||
engineStreamActor?: EngineStreamActor
|
||||
syncDirection: 'clientToEngine' | 'engineToClient' = 'engineToClient'
|
||||
camera: PerspectiveCamera | OrthographicCamera
|
||||
target: Vector3
|
||||
@ -471,9 +472,9 @@ export class CameraControls {
|
||||
if (this.syncDirection === 'engineToClient') {
|
||||
const newCmdId = uuidv4()
|
||||
|
||||
const { videoRef } = engineStreamActor.getSnapshot().context
|
||||
const videoRef = this.engineStreamActor?.getSnapshot().context.videoRef
|
||||
// Nonsense to do anything until the video stream is established.
|
||||
if (!videoRef.current) return
|
||||
if (!videoRef?.current) return
|
||||
|
||||
const { x, y } = getNormalisedCoordinates(
|
||||
event,
|
||||
|
||||
@ -41,6 +41,7 @@ export const kclManager = new KclManager(engineCommandManager, {
|
||||
// The most obvious of cyclic dependencies.
|
||||
// This is because the handleOnViewUpdate(viewUpdate: ViewUpdate): void {
|
||||
// method requires it for the current ast.
|
||||
// CYCLIC REF
|
||||
editorManager.kclManager = kclManager
|
||||
|
||||
engineCommandManager.kclManager = kclManager
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { jsAppSettings } from '@src/lib/settings/settingsUtils'
|
||||
import type { MutableRefObject } from 'react'
|
||||
import { setup, assign, fromPromise } from 'xstate'
|
||||
import { setup, assign, fromPromise, ActorRefFrom } from 'xstate'
|
||||
import {
|
||||
rustContext,
|
||||
kclManager,
|
||||
@ -317,3 +317,5 @@ export const engineStreamMachine = setup({
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
export type EngineStreamActor = ActorRefFrom<typeof engineStreamMachine>
|
||||
|
||||
Reference in New Issue
Block a user