using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020003FC RID: 1020
	[Token(Token = "0x20003FC")]
	[HelpURL("http://www.root-motion.com/finalikdox/html/page11.html")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Grounder/Grounder Biped")]
	public class GrounderBipedIK : Grounder
	{
		// Token: 0x06002475 RID: 9333 RVA: 0x00053188 File Offset: 0x00051388
		[Token(Token = "0x6002475")]
		[Address(RVA = "0x1174A10", Offset = "0x1173810", VA = "0x181174A10", Slot = "5")]
		[ContextMenu("User Manual")]
		protected override void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page11.html");
		}

		// Token: 0x06002476 RID: 9334 RVA: 0x000531A0 File Offset: 0x000513A0
		[Token(Token = "0x6002476")]
		[Address(RVA = "0x11749D0", Offset = "0x11737D0", VA = "0x1811749D0", 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_biped_i_k.html");
		}

		// Token: 0x06002477 RID: 9335 RVA: 0x000531B8 File Offset: 0x000513B8
		[Token(Token = "0x6002477")]
		[Address(RVA = "0x1174A50", Offset = "0x1173850", VA = "0x181174A50", Slot = "4")]
		public override void ResetPosition()
		{
			this.solver.Reset();
			float z = Vector3.zero.z;
			this.spineOffset.z = z;
		}

		// Token: 0x06002478 RID: 9336 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002478")]
		[Address(RVA = "0x1173DF0", Offset = "0x1172BF0", VA = "0x181173DF0")]
		private bool IsReadyToInitiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002479 RID: 9337 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002479")]
		[Address(RVA = "0x1174BB0", Offset = "0x11739B0", VA = "0x181174BB0")]
		private void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600247A RID: 9338 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600247A")]
		[Address(RVA = "0x1173A20", Offset = "0x1172820", VA = "0x181173A20")]
		private void Initiate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600247B RID: 9339 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600247B")]
		[Address(RVA = "0x1174080", Offset = "0x1172E80", VA = "0x181174080")]
		private void OnDisable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600247C RID: 9340 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600247C")]
		[Address(RVA = "0x11742F0", Offset = "0x11730F0", VA = "0x1811742F0")]
		private void OnSolverUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600247D RID: 9341 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600247D")]
		[Address(RVA = "0x1174AA0", Offset = "0x11738A0", VA = "0x181174AA0")]
		private void SetLegIK(IKSolverLimb limb, int index)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600247E RID: 9342 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600247E")]
		[Address(RVA = "0x11740E0", Offset = "0x1172EE0", VA = "0x1811740E0")]
		private void OnPostSolverUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600247F RID: 9343 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600247F")]
		[Address(RVA = "0x1173EA0", Offset = "0x1172CA0", VA = "0x181173EA0")]
		private void OnDestroy()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002480 RID: 9344 RVA: 0x000531F0 File Offset: 0x000513F0
		[Token(Token = "0x6002480")]
		[Address(RVA = "0x1174CA0", Offset = "0x1173AA0", VA = "0x181174CA0")]
		public GrounderBipedIK()
		{
			Transform[] array = new Transform[2];
			this.feet = array;
			Quaternion[] array2 = new Quaternion[2];
			this.footRotations = array2;
			base..ctor();
		}

		// Token: 0x04002E26 RID: 11814
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002E26")]
		[Tooltip("The BipedIK componet.")]
		public BipedIK ik;

		// Token: 0x04002E27 RID: 11815
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002E27")]
		[Tooltip("The amount of spine bending towards upward slopes.")]
		public float spineBend = 7f;

		// Token: 0x04002E28 RID: 11816
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4002E28")]
		[Tooltip("The interpolation speed of spine bending.")]
		public float spineSpeed = 3f;

		// Token: 0x04002E29 RID: 11817
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002E29")]
		private Transform[] feet;

		// Token: 0x04002E2A RID: 11818
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4002E2A")]
		private Quaternion[] footRotations;

		// Token: 0x04002E2B RID: 11819
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002E2B")]
		private Vector3 animatedPelvisLocalPosition;

		// Token: 0x04002E2C RID: 11820
		[FieldOffset(Offset = "0x6C")]
		[Token(Token = "0x4002E2C")]
		private Vector3 solvedPelvisLocalPosition;

		// Token: 0x04002E2D RID: 11821
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4002E2D")]
		private Vector3 spineOffset;

		// Token: 0x04002E2E RID: 11822
		[FieldOffset(Offset = "0x84")]
		[Token(Token = "0x4002E2E")]
		private float lastWeight;
	}
}
