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

namespace UnitySA.Characters.FirstPerson
{
	// Token: 0x020005F0 RID: 1520
	[Serializable]
	public class MLook : Il2CppSystem.Object
	{
		// Token: 0x06009DF6 RID: 40438 RVA: 0x002870C4 File Offset: 0x002852C4
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 622423, RefRangeEnd = 622424, XrefRangeStart = 622421, XrefRangeEnd = 622423, 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: 0x06009DF7 RID: 40439 RVA: 0x00287138 File Offset: 0x00285338
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 622452, RefRangeEnd = 622454, XrefRangeStart = 622424, XrefRangeEnd = 622452, 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: 0x06009DF8 RID: 40440 RVA: 0x002871AC File Offset: 0x002853AC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 622454, XrefRangeEnd = 622456, 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: 0x06009DF9 RID: 40441 RVA: 0x00287200 File Offset: 0x00285400
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 622461, RefRangeEnd = 622462, XrefRangeStart = 622456, XrefRangeEnd = 622461, 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: 0x06009DFA RID: 40442 RVA: 0x00287244 File Offset: 0x00285444
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 622462, XrefRangeEnd = 622467, 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: 0x06009DFB RID: 40443 RVA: 0x00287288 File Offset: 0x00285488
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 622467, XrefRangeEnd = 622470, 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: 0x06009DFC RID: 40444 RVA: 0x002872EC File Offset: 0x002854EC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 622470, XrefRangeEnd = 622471, 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: 0x06009DFD RID: 40445 RVA: 0x00287338 File Offset: 0x00285538
		// 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, 100675448);
			MLook.NativeMethodInfoPtr_LookRotation_Public_Void_Transform_Transform_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100675449);
			MLook.NativeMethodInfoPtr_SetCursorLock_Public_Void_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100675450);
			MLook.NativeMethodInfoPtr_UpdateCursorLock_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100675451);
			MLook.NativeMethodInfoPtr_InternalLockUpdate_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100675452);
			MLook.NativeMethodInfoPtr_ClampRotationAroundXAxis_Private_Quaternion_Quaternion_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100675453);
			MLook.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<MLook>.NativeClassPtr, 100675454);
		}

		// Token: 0x06009DFE RID: 40446 RVA: 0x0000A688 File Offset: 0x00008888
		public MLook(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170035A7 RID: 13735
		// (get) Token: 0x06009DFF RID: 40447 RVA: 0x002874D0 File Offset: 0x002856D0
		// (set) Token: 0x06009E00 RID: 40448 RVA: 0x002874F8 File Offset: 0x002856F8
		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: 0x170035A8 RID: 13736
		// (get) Token: 0x06009E01 RID: 40449 RVA: 0x0028751C File Offset: 0x0028571C
		// (set) Token: 0x06009E02 RID: 40450 RVA: 0x00287544 File Offset: 0x00285744
		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: 0x170035A9 RID: 13737
		// (get) Token: 0x06009E03 RID: 40451 RVA: 0x00287568 File Offset: 0x00285768
		// (set) Token: 0x06009E04 RID: 40452 RVA: 0x00287590 File Offset: 0x00285790
		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: 0x170035AA RID: 13738
		// (get) Token: 0x06009E05 RID: 40453 RVA: 0x002875B4 File Offset: 0x002857B4
		// (set) Token: 0x06009E06 RID: 40454 RVA: 0x002875DC File Offset: 0x002857DC
		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: 0x170035AB RID: 13739
		// (get) Token: 0x06009E07 RID: 40455 RVA: 0x00287600 File Offset: 0x00285800
		// (set) Token: 0x06009E08 RID: 40456 RVA: 0x00287628 File Offset: 0x00285828
		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: 0x170035AC RID: 13740
		// (get) Token: 0x06009E09 RID: 40457 RVA: 0x0028764C File Offset: 0x0028584C
		// (set) Token: 0x06009E0A RID: 40458 RVA: 0x00287674 File Offset: 0x00285874
		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: 0x170035AD RID: 13741
		// (get) Token: 0x06009E0B RID: 40459 RVA: 0x00287698 File Offset: 0x00285898
		// (set) Token: 0x06009E0C RID: 40460 RVA: 0x002876C0 File Offset: 0x002858C0
		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: 0x170035AE RID: 13742
		// (get) Token: 0x06009E0D RID: 40461 RVA: 0x002876E4 File Offset: 0x002858E4
		// (set) Token: 0x06009E0E RID: 40462 RVA: 0x0028770C File Offset: 0x0028590C
		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: 0x170035AF RID: 13743
		// (get) Token: 0x06009E0F RID: 40463 RVA: 0x00287730 File Offset: 0x00285930
		// (set) Token: 0x06009E10 RID: 40464 RVA: 0x00287758 File Offset: 0x00285958
		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: 0x170035B0 RID: 13744
		// (get) Token: 0x06009E11 RID: 40465 RVA: 0x0028777C File Offset: 0x0028597C
		// (set) Token: 0x06009E12 RID: 40466 RVA: 0x002877A4 File Offset: 0x002859A4
		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: 0x170035B1 RID: 13745
		// (get) Token: 0x06009E13 RID: 40467 RVA: 0x002877C8 File Offset: 0x002859C8
		// (set) Token: 0x06009E14 RID: 40468 RVA: 0x002877F0 File Offset: 0x002859F0
		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: 0x040069E0 RID: 27104
		private static readonly IntPtr NativeFieldInfoPtr_XSensitivity;

		// Token: 0x040069E1 RID: 27105
		private static readonly IntPtr NativeFieldInfoPtr_YSensitivity;

		// Token: 0x040069E2 RID: 27106
		private static readonly IntPtr NativeFieldInfoPtr_clampVerticalRotation;

		// Token: 0x040069E3 RID: 27107
		private static readonly IntPtr NativeFieldInfoPtr_MinimumX;

		// Token: 0x040069E4 RID: 27108
		private static readonly IntPtr NativeFieldInfoPtr_MaximumX;

		// Token: 0x040069E5 RID: 27109
		private static readonly IntPtr NativeFieldInfoPtr_smooth;

		// Token: 0x040069E6 RID: 27110
		private static readonly IntPtr NativeFieldInfoPtr_smoothTime;

		// Token: 0x040069E7 RID: 27111
		private static readonly IntPtr NativeFieldInfoPtr_lockCursor;

		// Token: 0x040069E8 RID: 27112
		private static readonly IntPtr NativeFieldInfoPtr_m_CharacterTargetRot;

		// Token: 0x040069E9 RID: 27113
		private static readonly IntPtr NativeFieldInfoPtr_m_CameraTargetRot;

		// Token: 0x040069EA RID: 27114
		private static readonly IntPtr NativeFieldInfoPtr_m_cursorIsLocked;

		// Token: 0x040069EB RID: 27115
		private static readonly IntPtr NativeMethodInfoPtr_Init_Public_Void_Transform_Transform_0;

		// Token: 0x040069EC RID: 27116
		private static readonly IntPtr NativeMethodInfoPtr_LookRotation_Public_Void_Transform_Transform_0;

		// Token: 0x040069ED RID: 27117
		private static readonly IntPtr NativeMethodInfoPtr_SetCursorLock_Public_Void_Boolean_0;

		// Token: 0x040069EE RID: 27118
		private static readonly IntPtr NativeMethodInfoPtr_UpdateCursorLock_Public_Void_0;

		// Token: 0x040069EF RID: 27119
		private static readonly IntPtr NativeMethodInfoPtr_InternalLockUpdate_Private_Void_0;

		// Token: 0x040069F0 RID: 27120
		private static readonly IntPtr NativeMethodInfoPtr_ClampRotationAroundXAxis_Private_Quaternion_Quaternion_0;

		// Token: 0x040069F1 RID: 27121
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
