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

namespace RootMotion.Demos
{
	// Token: 0x020003FB RID: 1019
	public class UserControlThirdPerson : MonoBehaviour
	{
		// Token: 0x06007B2B RID: 31531 RVA: 0x001F58C4 File Offset: 0x001F3AC4
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 593904, XrefRangeEnd = 593908, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Start()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UserControlThirdPerson.NativeMethodInfoPtr_Start_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007B2C RID: 31532 RVA: 0x001F5908 File Offset: 0x001F3B08
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 593908, XrefRangeEnd = 593935, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe virtual void Update()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), UserControlThirdPerson.NativeMethodInfoPtr_Update_Protected_Virtual_New_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007B2D RID: 31533 RVA: 0x001F5958 File Offset: 0x001F3B58
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 593935, XrefRangeEnd = 593936, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe UserControlThirdPerson()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UserControlThirdPerson.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06007B2E RID: 31534 RVA: 0x001F59A4 File Offset: 0x001F3BA4
		// Note: this type is marked as 'beforefieldinit'.
		static UserControlThirdPerson()
		{
			Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "RootMotion.Demos", "UserControlThirdPerson");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr);
			UserControlThirdPerson.NativeFieldInfoPtr_walkByDefault = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, "walkByDefault");
			UserControlThirdPerson.NativeFieldInfoPtr_canCrouch = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, "canCrouch");
			UserControlThirdPerson.NativeFieldInfoPtr_canJump = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, "canJump");
			UserControlThirdPerson.NativeFieldInfoPtr_state = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, "state");
			UserControlThirdPerson.NativeFieldInfoPtr_cam = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, "cam");
			UserControlThirdPerson.NativeMethodInfoPtr_Start_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, 100672535);
			UserControlThirdPerson.NativeMethodInfoPtr_Update_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, 100672536);
			UserControlThirdPerson.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, 100672537);
		}

		// Token: 0x06007B2F RID: 31535 RVA: 0x0000351C File Offset: 0x0000171C
		public UserControlThirdPerson(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17002A19 RID: 10777
		// (get) Token: 0x06007B30 RID: 31536 RVA: 0x001F5A74 File Offset: 0x001F3C74
		// (set) Token: 0x06007B31 RID: 31537 RVA: 0x001F5A9C File Offset: 0x001F3C9C
		public unsafe bool walkByDefault
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_walkByDefault);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_walkByDefault)) = value;
			}
		}

		// Token: 0x17002A1A RID: 10778
		// (get) Token: 0x06007B32 RID: 31538 RVA: 0x001F5AC0 File Offset: 0x001F3CC0
		// (set) Token: 0x06007B33 RID: 31539 RVA: 0x001F5AE8 File Offset: 0x001F3CE8
		public unsafe bool canCrouch
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_canCrouch);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_canCrouch)) = value;
			}
		}

		// Token: 0x17002A1B RID: 10779
		// (get) Token: 0x06007B34 RID: 31540 RVA: 0x001F5B0C File Offset: 0x001F3D0C
		// (set) Token: 0x06007B35 RID: 31541 RVA: 0x001F5B34 File Offset: 0x001F3D34
		public unsafe bool canJump
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_canJump);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_canJump)) = value;
			}
		}

		// Token: 0x17002A1C RID: 10780
		// (get) Token: 0x06007B36 RID: 31542 RVA: 0x001F5B58 File Offset: 0x001F3D58
		// (set) Token: 0x06007B37 RID: 31543 RVA: 0x001F5B80 File Offset: 0x001F3D80
		public unsafe UserControlThirdPerson.State state
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_state);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_state)) = value;
			}
		}

		// Token: 0x17002A1D RID: 10781
		// (get) Token: 0x06007B38 RID: 31544 RVA: 0x001F5BA4 File Offset: 0x001F3DA4
		// (set) Token: 0x06007B39 RID: 31545 RVA: 0x001F5BD8 File Offset: 0x001F3DD8
		public unsafe Transform cam
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_cam);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Transform(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UserControlThirdPerson.NativeFieldInfoPtr_cam), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x0400524E RID: 21070
		private static readonly IntPtr NativeFieldInfoPtr_walkByDefault;

		// Token: 0x0400524F RID: 21071
		private static readonly IntPtr NativeFieldInfoPtr_canCrouch;

		// Token: 0x04005250 RID: 21072
		private static readonly IntPtr NativeFieldInfoPtr_canJump;

		// Token: 0x04005251 RID: 21073
		private static readonly IntPtr NativeFieldInfoPtr_state;

		// Token: 0x04005252 RID: 21074
		private static readonly IntPtr NativeFieldInfoPtr_cam;

		// Token: 0x04005253 RID: 21075
		private static readonly IntPtr NativeMethodInfoPtr_Start_Private_Void_0;

		// Token: 0x04005254 RID: 21076
		private static readonly IntPtr NativeMethodInfoPtr_Update_Protected_Virtual_New_Void_0;

		// Token: 0x04005255 RID: 21077
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020003FC RID: 1020
		[StructLayout(LayoutKind.Explicit)]
		public struct State
		{
			// Token: 0x06007B3A RID: 31546 RVA: 0x001F5C00 File Offset: 0x001F3E00
			// Note: this type is marked as 'beforefieldinit'.
			static State()
			{
				Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, "State");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr);
				UserControlThirdPerson.State.NativeFieldInfoPtr_move = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, "move");
				UserControlThirdPerson.State.NativeFieldInfoPtr_lookPos = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, "lookPos");
				UserControlThirdPerson.State.NativeFieldInfoPtr_crouch = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, "crouch");
				UserControlThirdPerson.State.NativeFieldInfoPtr_jump = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, "jump");
				UserControlThirdPerson.State.NativeFieldInfoPtr_actionIndex = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, "actionIndex");
			}

			// Token: 0x06007B3B RID: 31547 RVA: 0x001F5C8F File Offset: 0x001F3E8F
			public Il2CppSystem.Object BoxIl2CppObject()
			{
				return new Il2CppSystem.Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, ref this));
			}

			// Token: 0x04005256 RID: 21078
			private static readonly IntPtr NativeFieldInfoPtr_move;

			// Token: 0x04005257 RID: 21079
			private static readonly IntPtr NativeFieldInfoPtr_lookPos;

			// Token: 0x04005258 RID: 21080
			private static readonly IntPtr NativeFieldInfoPtr_crouch;

			// Token: 0x04005259 RID: 21081
			private static readonly IntPtr NativeFieldInfoPtr_jump;

			// Token: 0x0400525A RID: 21082
			private static readonly IntPtr NativeFieldInfoPtr_actionIndex;

			// Token: 0x0400525B RID: 21083
			[FieldOffset(0)]
			public Vector3 move;

			// Token: 0x0400525C RID: 21084
			[FieldOffset(12)]
			public Vector3 lookPos;

			// Token: 0x0400525D RID: 21085
			[FieldOffset(24)]
			[MarshalAs(UnmanagedType.U1)]
			public bool crouch;

			// Token: 0x0400525E RID: 21086
			[FieldOffset(25)]
			[MarshalAs(UnmanagedType.U1)]
			public bool jump;

			// Token: 0x0400525F RID: 21087
			[FieldOffset(28)]
			public int actionIndex;
		}
	}
}
