using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;
using UnityEngine;

namespace UnitySA.Characters.FirstPerson
{
	// Token: 0x02000648 RID: 1608
	[Serializable]
	public class MLook : Il2CppSystem.Object
	{
		// Token: 0x0600A649 RID: 42569 RVA: 0x002A9E00 File Offset: 0x002A8000
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 654725, RefRangeEnd = 654726, XrefRangeStart = 654723, XrefRangeEnd = 654725, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Init(Transform character, Transform camera)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(character);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(camera);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr_Init_Public_Void_Transform_Transform_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A64A RID: 42570 RVA: 0x002A9E74 File Offset: 0x002A8074
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 654754, RefRangeEnd = 654756, XrefRangeStart = 654726, XrefRangeEnd = 654754, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void LookRotation(Transform character, Transform camera)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(character);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(camera);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr_LookRotation_Public_Void_Transform_Transform_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A64B RID: 42571 RVA: 0x002A9EE8 File Offset: 0x002A80E8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 654756, XrefRangeEnd = 654758, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetCursorLock(bool value)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref value;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr_SetCursorLock_Public_Void_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600A64C RID: 42572 RVA: 0x002A9F3C File Offset: 0x002A813C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 654763, RefRangeEnd = 654764, XrefRangeStart = 654758, XrefRangeEnd = 654763, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void UpdateCursorLock()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr_UpdateCursorLock_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A64D RID: 42573 RVA: 0x002A9F80 File Offset: 0x002A8180
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 654764, XrefRangeEnd = 654769, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void InternalLockUpdate()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr_InternalLockUpdate_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A64E RID: 42574 RVA: 0x002A9FC4 File Offset: 0x002A81C4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 654769, XrefRangeEnd = 654772, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe Quaternion ClampRotationAroundXAxis(Quaternion q)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref q;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr_ClampRotationAroundXAxis_Private_Quaternion_Quaternion_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x0600A64F RID: 42575 RVA: 0x002AA028 File Offset: 0x002A8228
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 654772, XrefRangeEnd = 654773, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe MLook()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<MLook>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(MLook.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A650 RID: 42576 RVA: 0x002AA074 File Offset: 0x002A8274
		// Note: this type is marked as 'beforefieldinit'.
		static MLook()
		{
			Il2CppClassPointerStore<MLook>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnitySA.Characters.FirstPerson", "MLook");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<MLook>.NativeClassPtr);
			MLook.NativeFieldInfoPtr_XSensitivity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "XSensitivity");
			MLook.NativeFieldInfoPtr_YSensitivity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "YSensitivity");
			MLook.NativeFieldInfoPtr_clampVerticalRotation = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "clampVerticalRotation");
			MLook.NativeFieldInfoPtr_MinimumX = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "MinimumX");
			MLook.NativeFieldInfoPtr_MaximumX = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "MaximumX");
			MLook.NativeFieldInfoPtr_smooth = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "smooth");
			MLook.NativeFieldInfoPtr_smoothTime = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "smoothTime");
			MLook.NativeFieldInfoPtr_lockCursor = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "lockCursor");
			MLook.NativeFieldInfoPtr_m_CharacterTargetRot = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "m_CharacterTargetRot");
			MLook.NativeFieldInfoPtr_m_CameraTargetRot = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "m_CameraTargetRot");
			MLook.NativeFieldInfoPtr_m_cursorIsLocked = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<MLook>.NativeClassPtr, "m_cursorIsLocked");
			MLook.NativeMethodInfoPtr_Init_Public_Void_Transform_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676161);
			MLook.NativeMethodInfoPtr_LookRotation_Public_Void_Transform_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676162);
			MLook.NativeMethodInfoPtr_SetCursorLock_Public_Void_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676163);
			MLook.NativeMethodInfoPtr_UpdateCursorLock_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676164);
			MLook.NativeMethodInfoPtr_InternalLockUpdate_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676165);
			MLook.NativeMethodInfoPtr_ClampRotationAroundXAxis_Private_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676166);
			MLook.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100676167);
		}

		// Token: 0x0600A651 RID: 42577 RVA: 0x0000A74C File Offset: 0x0000894C
		public MLook(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003842 RID: 14402
		// (get) Token: 0x0600A652 RID: 42578 RVA: 0x002AA20C File Offset: 0x002A840C
		// (set) Token: 0x0600A653 RID: 42579 RVA: 0x002AA234 File Offset: 0x002A8434
		public unsafe float XSensitivity
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_XSensitivity);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_XSensitivity)) = value;
			}
		}

		// Token: 0x17003843 RID: 14403
		// (get) Token: 0x0600A654 RID: 42580 RVA: 0x002AA258 File Offset: 0x002A8458
		// (set) Token: 0x0600A655 RID: 42581 RVA: 0x002AA280 File Offset: 0x002A8480
		public unsafe float YSensitivity
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_YSensitivity);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_YSensitivity)) = value;
			}
		}

		// Token: 0x17003844 RID: 14404
		// (get) Token: 0x0600A656 RID: 42582 RVA: 0x002AA2A4 File Offset: 0x002A84A4
		// (set) Token: 0x0600A657 RID: 42583 RVA: 0x002AA2CC File Offset: 0x002A84CC
		public unsafe bool clampVerticalRotation
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_clampVerticalRotation);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_clampVerticalRotation)) = value;
			}
		}

		// Token: 0x17003845 RID: 14405
		// (get) Token: 0x0600A658 RID: 42584 RVA: 0x002AA2F0 File Offset: 0x002A84F0
		// (set) Token: 0x0600A659 RID: 42585 RVA: 0x002AA318 File Offset: 0x002A8518
		public unsafe float MinimumX
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_MinimumX);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_MinimumX)) = value;
			}
		}

		// Token: 0x17003846 RID: 14406
		// (get) Token: 0x0600A65A RID: 42586 RVA: 0x002AA33C File Offset: 0x002A853C
		// (set) Token: 0x0600A65B RID: 42587 RVA: 0x002AA364 File Offset: 0x002A8564
		public unsafe float MaximumX
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_MaximumX);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_MaximumX)) = value;
			}
		}

		// Token: 0x17003847 RID: 14407
		// (get) Token: 0x0600A65C RID: 42588 RVA: 0x002AA388 File Offset: 0x002A8588
		// (set) Token: 0x0600A65D RID: 42589 RVA: 0x002AA3B0 File Offset: 0x002A85B0
		public unsafe bool smooth
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_smooth);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_smooth)) = value;
			}
		}

		// Token: 0x17003848 RID: 14408
		// (get) Token: 0x0600A65E RID: 42590 RVA: 0x002AA3D4 File Offset: 0x002A85D4
		// (set) Token: 0x0600A65F RID: 42591 RVA: 0x002AA3FC File Offset: 0x002A85FC
		public unsafe float smoothTime
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_smoothTime);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_smoothTime)) = value;
			}
		}

		// Token: 0x17003849 RID: 14409
		// (get) Token: 0x0600A660 RID: 42592 RVA: 0x002AA420 File Offset: 0x002A8620
		// (set) Token: 0x0600A661 RID: 42593 RVA: 0x002AA448 File Offset: 0x002A8648
		public unsafe bool lockCursor
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_lockCursor);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_lockCursor)) = value;
			}
		}

		// Token: 0x1700384A RID: 14410
		// (get) Token: 0x0600A662 RID: 42594 RVA: 0x002AA46C File Offset: 0x002A866C
		// (set) Token: 0x0600A663 RID: 42595 RVA: 0x002AA494 File Offset: 0x002A8694
		public unsafe Quaternion m_CharacterTargetRot
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_m_CharacterTargetRot);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_m_CharacterTargetRot)) = value;
			}
		}

		// Token: 0x1700384B RID: 14411
		// (get) Token: 0x0600A664 RID: 42596 RVA: 0x002AA4B8 File Offset: 0x002A86B8
		// (set) Token: 0x0600A665 RID: 42597 RVA: 0x002AA4E0 File Offset: 0x002A86E0
		public unsafe Quaternion m_CameraTargetRot
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_m_CameraTargetRot);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_m_CameraTargetRot)) = value;
			}
		}

		// Token: 0x1700384C RID: 14412
		// (get) Token: 0x0600A666 RID: 42598 RVA: 0x002AA504 File Offset: 0x002A8704
		// (set) Token: 0x0600A667 RID: 42599 RVA: 0x002AA52C File Offset: 0x002A872C
		public unsafe bool m_cursorIsLocked
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_m_cursorIsLocked);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(MLook.NativeFieldInfoPtr_m_cursorIsLocked)) = value;
			}
		}

		// Token: 0x04006F89 RID: 28553
		private static readonly IntPtr NativeFieldInfoPtr_XSensitivity;

		// Token: 0x04006F8A RID: 28554
		private static readonly IntPtr NativeFieldInfoPtr_YSensitivity;

		// Token: 0x04006F8B RID: 28555
		private static readonly IntPtr NativeFieldInfoPtr_clampVerticalRotation;

		// Token: 0x04006F8C RID: 28556
		private static readonly IntPtr NativeFieldInfoPtr_MinimumX;

		// Token: 0x04006F8D RID: 28557
		private static readonly IntPtr NativeFieldInfoPtr_MaximumX;

		// Token: 0x04006F8E RID: 28558
		private static readonly IntPtr NativeFieldInfoPtr_smooth;

		// Token: 0x04006F8F RID: 28559
		private static readonly IntPtr NativeFieldInfoPtr_smoothTime;

		// Token: 0x04006F90 RID: 28560
		private static readonly IntPtr NativeFieldInfoPtr_lockCursor;

		// Token: 0x04006F91 RID: 28561
		private static readonly IntPtr NativeFieldInfoPtr_m_CharacterTargetRot;

		// Token: 0x04006F92 RID: 28562
		private static readonly IntPtr NativeFieldInfoPtr_m_CameraTargetRot;

		// Token: 0x04006F93 RID: 28563
		private static readonly IntPtr NativeFieldInfoPtr_m_cursorIsLocked;

		// Token: 0x04006F94 RID: 28564
		private static readonly IntPtr NativeMethodInfoPtr_Init_Public_Void_Transform_Transform_0;

		// Token: 0x04006F95 RID: 28565
		private static readonly IntPtr NativeMethodInfoPtr_LookRotation_Public_Void_Transform_Transform_0;

		// Token: 0x04006F96 RID: 28566
		private static readonly IntPtr NativeMethodInfoPtr_SetCursorLock_Public_Void_Boolean_0;

		// Token: 0x04006F97 RID: 28567
		private static readonly IntPtr NativeMethodInfoPtr_UpdateCursorLock_Public_Void_0;

		// Token: 0x04006F98 RID: 28568
		private static readonly IntPtr NativeMethodInfoPtr_InternalLockUpdate_Private_Void_0;

		// Token: 0x04006F99 RID: 28569
		private static readonly IntPtr NativeMethodInfoPtr_ClampRotationAroundXAxis_Private_Quaternion_Quaternion_0;

		// Token: 0x04006F9A RID: 28570
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
