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

namespace RootMotion.Demos
{
	// Token: 0x02000453 RID: 1107
	public class UserControlThirdPerson : MonoBehaviour
	{
		// Token: 0x0600837E RID: 33662 RVA: 0x00218600 File Offset: 0x00216800
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626218, XrefRangeEnd = 626222, 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: 0x0600837F RID: 33663 RVA: 0x00218644 File Offset: 0x00216844
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626222, XrefRangeEnd = 626249, 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: 0x06008380 RID: 33664 RVA: 0x00218694 File Offset: 0x00216894
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 626249, XrefRangeEnd = 626250, 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: 0x06008381 RID: 33665 RVA: 0x002186E0 File Offset: 0x002168E0
		// 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, 100673248);
			UserControlThirdPerson.NativeMethodInfoPtr_Update_Protected_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, 100673249);
			UserControlThirdPerson.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UserControlThirdPerson>.NativeClassPtr, 100673250);
		}

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

		// Token: 0x17002CB4 RID: 11444
		// (get) Token: 0x06008383 RID: 33667 RVA: 0x002187B0 File Offset: 0x002169B0
		// (set) Token: 0x06008384 RID: 33668 RVA: 0x002187D8 File Offset: 0x002169D8
		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: 0x17002CB5 RID: 11445
		// (get) Token: 0x06008385 RID: 33669 RVA: 0x002187FC File Offset: 0x002169FC
		// (set) Token: 0x06008386 RID: 33670 RVA: 0x00218824 File Offset: 0x00216A24
		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: 0x17002CB6 RID: 11446
		// (get) Token: 0x06008387 RID: 33671 RVA: 0x00218848 File Offset: 0x00216A48
		// (set) Token: 0x06008388 RID: 33672 RVA: 0x00218870 File Offset: 0x00216A70
		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: 0x17002CB7 RID: 11447
		// (get) Token: 0x06008389 RID: 33673 RVA: 0x00218894 File Offset: 0x00216A94
		// (set) Token: 0x0600838A RID: 33674 RVA: 0x002188BC File Offset: 0x00216ABC
		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: 0x17002CB8 RID: 11448
		// (get) Token: 0x0600838B RID: 33675 RVA: 0x002188E0 File Offset: 0x00216AE0
		// (set) Token: 0x0600838C RID: 33676 RVA: 0x00218914 File Offset: 0x00216B14
		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: 0x040057F7 RID: 22519
		private static readonly IntPtr NativeFieldInfoPtr_walkByDefault;

		// Token: 0x040057F8 RID: 22520
		private static readonly IntPtr NativeFieldInfoPtr_canCrouch;

		// Token: 0x040057F9 RID: 22521
		private static readonly IntPtr NativeFieldInfoPtr_canJump;

		// Token: 0x040057FA RID: 22522
		private static readonly IntPtr NativeFieldInfoPtr_state;

		// Token: 0x040057FB RID: 22523
		private static readonly IntPtr NativeFieldInfoPtr_cam;

		// Token: 0x040057FC RID: 22524
		private static readonly IntPtr NativeMethodInfoPtr_Start_Private_Void_0;

		// Token: 0x040057FD RID: 22525
		private static readonly IntPtr NativeMethodInfoPtr_Update_Protected_Virtual_New_Void_0;

		// Token: 0x040057FE RID: 22526
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000454 RID: 1108
		[StructLayout(2)]
		public struct State
		{
			// Token: 0x0600838D RID: 33677 RVA: 0x0021893C File Offset: 0x00216B3C
			// 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: 0x0600838E RID: 33678 RVA: 0x002189CB File Offset: 0x00216BCB
			public Il2CppSystem.Object BoxIl2CppObject()
			{
				return new Il2CppSystem.Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<UserControlThirdPerson.State>.NativeClassPtr, ref this));
			}

			// Token: 0x040057FF RID: 22527
			private static readonly IntPtr NativeFieldInfoPtr_move;

			// Token: 0x04005800 RID: 22528
			private static readonly IntPtr NativeFieldInfoPtr_lookPos;

			// Token: 0x04005801 RID: 22529
			private static readonly IntPtr NativeFieldInfoPtr_crouch;

			// Token: 0x04005802 RID: 22530
			private static readonly IntPtr NativeFieldInfoPtr_jump;

			// Token: 0x04005803 RID: 22531
			private static readonly IntPtr NativeFieldInfoPtr_actionIndex;

			// Token: 0x04005804 RID: 22532
			[FieldOffset(0)]
			public Vector3 move;

			// Token: 0x04005805 RID: 22533
			[FieldOffset(12)]
			public Vector3 lookPos;

			// Token: 0x04005806 RID: 22534
			[FieldOffset(24)]
			[MarshalAs(4)]
			public bool crouch;

			// Token: 0x04005807 RID: 22535
			[FieldOffset(25)]
			[MarshalAs(4)]
			public bool jump;

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