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