function CameraModule.Update(x,a)if x.activeCameraController then if FFlagUserCameraToggle then x.activeCameraController:UpdateMouseBehavior()end local B,Z=x.activeCameraController:Update(a)x.activeCameraController:ApplyVRTransform()if x.activeOcclusionModule then B,Z=x.activeOcclusionModule:Update(a,B,Z)end game.Workspace.CurrentCamera.CFrame=B game.Workspace.CurrentCamera.Focus=Z if x.activeTransparencyController then x.activeTransparencyController:Update()end end end

function CameraModule:Update(dt)
	if self.activeCameraController then
		if FFlagUserCameraToggle then
			self.activeCameraController:UpdateMouseBehavior()
		end

		local newCameraCFrame, newCameraFocus = self.activeCameraController:Update(dt)
		self.activeCameraController:ApplyVRTransform()
		if self.activeOcclusionModule then
			newCameraCFrame, newCameraFocus = self.activeOcclusionModule:Update(dt, newCameraCFrame, newCameraFocus)
		end

		-- Here is where the new CFrame and Focus are set for this render frame
		game.Workspace.CurrentCamera.CFrame = newCameraCFrame
		game.Workspace.CurrentCamera.Focus = newCameraFocus

		-- Update to character local transparency as needed based on camera-to-subject distance
		if self.activeTransparencyController then
			self.activeTransparencyController:Update()
		end
	end
end
