using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000457 RID: 1111
	[Token(Token = "0x2000457")]
	[HelpURL("http://www.root-motion.com/finalikdox/html/page11.html")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder IK")]
	public class GrounderIK : Grounder
	{
		// Token: 0x06002759 RID: 10073 RVA: 0x0005A83C File Offset: 0x00058A3C
		[Token(Token = "0x6002759")]
		[Address(RVA = "0x16FD610", Offset = "0x16FC610", VA = "0x1816FD610", Slot = "5")]
		[ContextMenu("User Manual")]
		protected override void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
		}

		// Token: 0x0600275A RID: 10074 RVA: 0x0005A854 File Offset: 0x00058A54
		[Token(Token = "0x600275A")]
		[Address(RVA = "0x16FD5D0", Offset = "0x16FC5D0", VA = "0x1816FD5D0", Slot = "6")]
		[ContextMenu("Scrpt Reference")]
		protected override void OpenScriptReference()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_grounder_i_k.html");
		}

		// Token: 0x0600275B RID: 10075 RVA: 0x0005A86C File Offset: 0x00058A6C
		[Token(Token = "0x600275B")]
		[Address(RVA = "0x16FD650", Offset = "0x16FC650", VA = "0x1816FD650", Slot = "4")]
		public override void ResetPosition()
		{
			this.solver.Reset();
		}

		// Token: 0x0600275C RID: 10076 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600275C")]
		[Address(RVA = "0x16FCAB0", Offset = "0x16FBAB0", VA = "0x1816FCAB0")]
		private bool IsReadyToInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600275D RID: 10077 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600275D")]
		[Address(RVA = "0x16FCEF0", Offset = "0x16FBEF0", VA = "0x1816FCEF0")]
		private void OnDisable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600275E RID: 10078 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600275E")]
		[Address(RVA = "0x16FDA70", Offset = "0x16FCA70", VA = "0x1816FDA70")]
		private void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600275F RID: 10079 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600275F")]
		[Address(RVA = "0x16FC550", Offset = "0x16FB550", VA = "0x1816FC550")]
		private void Initiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002760 RID: 10080 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002760")]
		[Address(RVA = "0x16FD250", Offset = "0x16FC250", VA = "0x1816FD250")]
		private void OnSolverUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002761 RID: 10081 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002761")]
		[Address(RVA = "0x16FD670", Offset = "0x16FC670", VA = "0x1816FD670")]
		private void SetLegIK(int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002762 RID: 10082 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002762")]
		[Address(RVA = "0x16FD030", Offset = "0x16FC030", VA = "0x1816FD030")]
		private void OnPostSolverUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002763 RID: 10083 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002763")]
		[Address(RVA = "0x16FCCC0", Offset = "0x16FBCC0", VA = "0x1816FCCC0")]
		private void OnDestroy()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002764 RID: 10084 RVA: 0x0005A88C File Offset: 0x00058A8C
		[Token(Token = "0x6002764")]
		[Address(RVA = "0x16FDE10", Offset = "0x16FCE10", VA = "0x1816FDE10")]
		public GrounderIK()
		{
			int num = 0;
			this.maxRootRotationAngle = 45f;
			Transform[] array = new Transform[num];
			this.feet = array;
			Quaternion[] array2 = new Quaternion[0];
			this.footRotations = array2;
			base..ctor();
		}

		// Token: 0x04003123 RID: 12579
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4003123")]
		public IK[] legs;

		// Token: 0x04003124 RID: 12580
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003124")]
		[Tooltip("The pelvis transform. Common ancestor of all the legs.")]
		public Transform pelvis;

		// Token: 0x04003125 RID: 12581
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4003125")]
		[Tooltip("The root Transform of the character, with the rigidbody and the collider.")]
		public Transform characterRoot;

		// Token: 0x04003126 RID: 12582
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003126")]
		[Range(0f, 1f)]
		[Tooltip("The weight of rotating the character root to the ground normal (range: 0 - 1).")]
		public float rootRotationWeight;

		// Token: 0x04003127 RID: 12583
		[FieldOffset(Offset = "0x5C")]
		[Token(Token = "0x4003127")]
		[Tooltip("The speed of rotating the character root to the ground normal (range: 0 - inf).")]
		public float rootRotationSpeed = 5f;

		// Token: 0x04003128 RID: 12584
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003128")]
		[Tooltip("The maximum angle of root rotation (range: 0 - 90).")]
		public float maxRootRotationAngle;

		// Token: 0x04003129 RID: 12585
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4003129")]
		private Transform[] feet;

		// Token: 0x0400312A RID: 12586
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x400312A")]
		private Quaternion[] footRotations;

		// Token: 0x0400312B RID: 12587
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x400312B")]
		private Vector3 animatedPelvisLocalPosition;

		// Token: 0x0400312C RID: 12588
		[FieldOffset(Offset = "0x84")]
		[Token(Token = "0x400312C")]
		private Vector3 solvedPelvisLocalPosition;

		// Token: 0x0400312D RID: 12589
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x400312D")]
		private int solvedFeet;

		// Token: 0x0400312E RID: 12590
		[FieldOffset(Offset = "0x94")]
		[Token(Token = "0x400312E")]
		private bool solved;

		// Token: 0x0400312F RID: 12591
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x400312F")]
		private float lastWeight;
	}
}
