New RootCamera script doesn't take "Scriptable" mode into account


#1
--Line 452 in MainCamera.RootCamera script

	-- there are several cases to consider based on the state of input and camera rotation mode
	function this:UpdateMouseBehavior()
		-- first time transition to first person mode or shiftlock
		if isFirstPerson or self:GetShiftLock() then
			pcall(function() GameSettings.RotationType = Enum.RotationType.CameraRelative end)
			if UserInputService.MouseBehavior ~= Enum.MouseBehavior.LockCenter then
				UserInputService.MouseBehavior = Enum.MouseBehavior.LockCenter
			end
		else
			pcall(function() GameSettings.RotationType = Enum.RotationType.MovementRelative end)
			if isRightMouseDown or isMiddleMouseDown then
				UserInputService.MouseBehavior = Enum.MouseBehavior.LockCurrentPosition
			else
				UserInputService.MouseBehavior = Enum.MouseBehavior.Default
			end
		end
	end

This piece of code (and probably others) still work even when camera type is set to “Scriptable”. This is not how Scriptable type used to work.

Scriptable type should not lock the mouse and release it which is literally the point of it.

I just spent 2 hours checking every single piece of camera mouse code that I have, only to find out that Roblox forgot about their own features.


Regarding the recent changes to the camera
Easy-to-navigate code library