using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000452 RID: 1106
	[Token(Token = "0x2000452")]
	public abstract class Grounder : MonoBehaviour
	{
		// Token: 0x06002732 RID: 10034
		[Token(Token = "0x6002732")]
		[Address(Slot = "4")]
		public abstract void ResetPosition();

		// Token: 0x06002733 RID: 10035 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002733")]
		[Address(RVA = "0x1700BE0", Offset = "0x16FFBE0", VA = "0x181700BE0")]
		protected Vector3 GetSpineOffsetTarget()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002734 RID: 10036 RVA: 0x0005A3F0 File Offset: 0x000585F0
		[Token(Token = "0x6002734")]
		[Address(RVA = "0x509620", Offset = "0x508620", VA = "0x180509620")]
		protected void LogWarning(string message)
		{
			Transform transform = base.transform;
			int num = 0;
			Warning.Log(message, transform, num != 0);
		}

		// Token: 0x06002735 RID: 10037 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002735")]
		[Address(RVA = "0x17006B0", Offset = "0x16FF6B0", VA = "0x1817006B0")]
		private Vector3 GetLegSpineBendVector(Grounding.Leg leg)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002736 RID: 10038 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002736")]
		[Address(RVA = "0x1700A00", Offset = "0x16FFA00", VA = "0x181700A00")]
		private Vector3 GetLegSpineTangent(Grounding.Leg leg)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002737 RID: 10039
		[Token(Token = "0x6002737")]
		[Address(Slot = "5")]
		protected abstract void OpenUserManual();

		// Token: 0x06002738 RID: 10040
		[Token(Token = "0x6002738")]
		[Address(Slot = "6")]
		protected abstract void OpenScriptReference();

		// Token: 0x06002739 RID: 10041 RVA: 0x0005A410 File Offset: 0x00058610
		[Token(Token = "0x6002739")]
		[Address(RVA = "0x1700D20", Offset = "0x16FFD20", VA = "0x181700D20")]
		protected Grounder()
		{
		}

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

		// Token: 0x0400310C RID: 12556
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x400310C")]
		[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: 0x0400310D RID: 12557
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x400310D")]
		public Grounder.GrounderDelegate OnPreGrounder;

		// Token: 0x0400310E RID: 12558
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x400310E")]
		public Grounder.GrounderDelegate OnPostGrounder;

		// Token: 0x0400310F RID: 12559
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x400310F")]
		protected bool initiated;

		// Token: 0x02000453 RID: 1107
		[Token(Token = "0x2000453")]
		public sealed class GrounderDelegate : MulticastDelegate
		{
			// Token: 0x0600273A RID: 10042 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600273A")]
			[Address(RVA = "0x4932A0", Offset = "0x4922A0", VA = "0x1804932A0")]
			public GrounderDelegate(object @object, IntPtr method)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600273B RID: 10043 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600273B")]
			[Address(RVA = "0x6D7F40", Offset = "0x6D6F40", VA = "0x1806D7F40", Slot = "13")]
			public void Invoke()
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600273C RID: 10044 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600273C")]
			[Address(RVA = "0x6D7F10", Offset = "0x6D6F10", VA = "0x1806D7F10", Slot = "14")]
			public IAsyncResult BeginInvoke(AsyncCallback callback, object @object)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x0600273D RID: 10045 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x600273D")]
			[Address(RVA = "0x492FC0", Offset = "0x491FC0", VA = "0x180492FC0", Slot = "15")]
			public void EndInvoke(IAsyncResult result)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}
	}
}
