using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x020003FA RID: 1018
	[Token(Token = "0x20003FA")]
	public abstract class Grounder : MonoBehaviour
	{
		// Token: 0x06002469 RID: 9321
		[Token(Token = "0x6002469")]
		[Address(Slot = "4")]
		public abstract void ResetPosition();

		// Token: 0x0600246A RID: 9322 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600246A")]
		[Address(RVA = "0x117A510", Offset = "0x1179310", VA = "0x18117A510")]
		protected Vector3 GetSpineOffsetTarget()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600246B RID: 9323 RVA: 0x000530C4 File Offset: 0x000512C4
		[Token(Token = "0x600246B")]
		[Address(RVA = "0x8D5970", Offset = "0x8D4770", VA = "0x1808D5970")]
		protected void LogWarning(string message)
		{
			Transform transform = base.transform;
			int num = 0;
			Warning.Log(message, transform, num != 0);
		}

		// Token: 0x0600246C RID: 9324 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600246C")]
		[Address(RVA = "0x1179FE0", Offset = "0x1178DE0", VA = "0x181179FE0")]
		private Vector3 GetLegSpineBendVector(Grounding.Leg leg)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600246D RID: 9325 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600246D")]
		[Address(RVA = "0x117A330", Offset = "0x1179130", VA = "0x18117A330")]
		private Vector3 GetLegSpineTangent(Grounding.Leg leg)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600246E RID: 9326
		[Token(Token = "0x600246E")]
		[Address(Slot = "5")]
		protected abstract void OpenUserManual();

		// Token: 0x0600246F RID: 9327
		[Token(Token = "0x600246F")]
		[Address(Slot = "6")]
		protected abstract void OpenScriptReference();

		// Token: 0x06002470 RID: 9328 RVA: 0x000530E4 File Offset: 0x000512E4
		[Token(Token = "0x6002470")]
		[Address(RVA = "0x117A650", Offset = "0x1179450", VA = "0x18117A650")]
		protected Grounder()
		{
		}

		// Token: 0x04002E21 RID: 11809
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002E21")]
		[Tooltip("The master weight. Use this to fade in/out the grounding effect.")]
		[Range(0f, 1f)]
		public float weight = 1f;

		// Token: 0x04002E22 RID: 11810
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002E22")]
		[Tooltip("The Grounding solver. Not to confuse with IK solvers.")]
		public Grounding solver = new Grounding
		{
			maxStep = 0.5f,
			footSpeed = 2.5f,
			footRadius = 0.15f,
			prediction = 0.05f,
			footRotationWeight = 1f,
			footRotationSpeed = 7f,
			maxFootRotationAngle = 45f,
			pelvisSpeed = 5f,
			lowerPelvisWeight = 1f,
			rootSphereCastRadius = 0.1f,
			quality = (Grounding.Quality)((ulong)2L)
		};

		// Token: 0x04002E23 RID: 11811
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002E23")]
		public Grounder.GrounderDelegate OnPreGrounder;

		// Token: 0x04002E24 RID: 11812
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002E24")]
		public Grounder.GrounderDelegate OnPostGrounder;

		// Token: 0x04002E25 RID: 11813
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002E25")]
		protected bool initiated;

		// Token: 0x020003FB RID: 1019
		[Token(Token = "0x20003FB")]
		public sealed class GrounderDelegate : MulticastDelegate
		{
			// Token: 0x06002471 RID: 9329 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002471")]
			[Address(RVA = "0x44EA10", Offset = "0x44D810", VA = "0x18044EA10")]
			public GrounderDelegate(object @object, IntPtr method)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002472 RID: 9330 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002472")]
			[Address(RVA = "0x5FA210", Offset = "0x5F9010", VA = "0x1805FA210", Slot = "12")]
			public void Invoke()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002473 RID: 9331 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002473")]
			[Address(RVA = "0x5FA1E0", Offset = "0x5F8FE0", VA = "0x1805FA1E0", Slot = "13")]
			public IAsyncResult BeginInvoke(AsyncCallback callback, object @object)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002474 RID: 9332 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002474")]
			[Address(RVA = "0x44E730", Offset = "0x44D530", VA = "0x18044E730", Slot = "14")]
			public void EndInvoke(IAsyncResult result)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}
	}
}
