function CameraModule.Update(z,P)if z.activeCameraController then if script.Parent.Parent.shiftLock.Value==true and script.Parent.Parent.shiftLock.camLock.Value==false then z.activeCameraController:SetIsMouseLocked(true)elseif script.Parent.Parent.shiftLock.Value==true and script.Parent.Parent.shiftLock.camLock.Value==true then z.activeCameraController:SetIsMouseLocked(true)else z.activeCameraController:SetIsMouseLocked(false)end local k,B=z.activeCameraController:Update(P)z.activeCameraController:ApplyVRTransform()if z.activeOcclusionModule then k,B=z.activeOcclusionModule:Update(P,k,B)end game.Workspace.CurrentCamera.CFrame=k game.Workspace.CurrentCamera.Focus=B if z.activeTransparencyController then z.activeTransparencyController:Update()end end end



function CameraModule:Update(dt)
	if self.activeCameraController then
		
		if script.Parent.Parent.shiftLock.Value == true and script.Parent.Parent.shiftLock.camLock.Value == false then
			self.activeCameraController:SetIsMouseLocked(true)
			
		elseif script.Parent.Parent.shiftLock.Value == true and script.Parent.Parent.shiftLock.camLock.Value == true  then
			self.activeCameraController:SetIsMouseLocked(true)
		else
			self.activeCameraController:SetIsMouseLocked(false)
		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
