using System;
using Cpp2IlInjected;
using RootMotion.FinalIK;
using UnityEngine;

namespace RootMotion.Demos
{
	// Token: 0x020003B8 RID: 952
	[Token(Token = "0x20003B8")]
	public class FBBIKSettings : MonoBehaviour
	{
		// Token: 0x0600233D RID: 9021 RVA: 0x00050C14 File Offset: 0x0004EE14
		[Token(Token = "0x600233D")]
		[Address(RVA = "0x4B7980", Offset = "0x4B6780", VA = "0x1804B7980")]
		public void UpdateSettings()
		{
			FullBodyBipedIK fullBodyBipedIK = this.ik;
			int num = 0;
			if (!(fullBodyBipedIK == num))
			{
				FullBodyBipedIK fullBodyBipedIK2 = this.ik;
				FBBIKSettings.Limb limb = this.leftArm;
				IKSolverFullBodyBiped solver = fullBodyBipedIK2.solver;
				int num2 = 0;
				limb.Apply((FullBodyBipedChain)num2, solver);
				FullBodyBipedIK fullBodyBipedIK3 = this.ik;
				FBBIKSettings.Limb limb2 = this.rightArm;
				IKSolverFullBodyBiped solver2 = fullBodyBipedIK3.solver;
				limb2.Apply(FullBodyBipedChain.RightArm, solver2);
				FullBodyBipedIK fullBodyBipedIK4 = this.ik;
				FBBIKSettings.Limb limb3 = this.leftLeg;
				IKSolverFullBodyBiped solver3 = fullBodyBipedIK4.solver;
				limb3.Apply(FullBodyBipedChain.LeftLeg, solver3);
				FullBodyBipedIK fullBodyBipedIK5 = this.ik;
				FBBIKSettings.Limb limb4 = this.rightLeg;
				IKSolverFullBodyBiped solver4 = fullBodyBipedIK5.solver;
				limb4.Apply(FullBodyBipedChain.RightLeg, solver4);
				FBIKChain fbikchain = this.ik.solver.chain[0];
				float num3 = this.rootPin;
				fbikchain.pin = num3;
				IKEffector bodyEffector = this.ik.solver.bodyEffector;
				bool flag = this.bodyEffectChildNodes;
				bodyEffector.effectChildNodes = flag;
			}
		}

		// Token: 0x0600233E RID: 9022 RVA: 0x00050D18 File Offset: 0x0004EF18
		[Token(Token = "0x600233E")]
		[Address(RVA = "0x4B78F0", Offset = "0x4B66F0", VA = "0x1804B78F0")]
		private void Start()
		{
			Debug.Log("FBBIKSettings is deprecated, you can now edit all the settings from the custom inspector of the FullBodyBipedIK component.");
			this.UpdateSettings();
			if (this.disableAfterStart)
			{
				int num = 0;
				base.enabled = num != 0;
				return;
			}
		}

		// Token: 0x0600233F RID: 9023 RVA: 0x00050D48 File Offset: 0x0004EF48
		[Token(Token = "0x600233F")]
		[Address(RVA = "0x4B7B00", Offset = "0x4B6900", VA = "0x1804B7B00")]
		private void Update()
		{
			this.UpdateSettings();
		}

		// Token: 0x06002340 RID: 9024 RVA: 0x00050D5C File Offset: 0x0004EF5C
		[Token(Token = "0x6002340")]
		[Address(RVA = "0x4B7B10", Offset = "0x4B6910", VA = "0x1804B7B10")]
		public FBBIKSettings()
		{
		}

		// Token: 0x04002C9E RID: 11422
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002C9E")]
		public FullBodyBipedIK ik;

		// Token: 0x04002C9F RID: 11423
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002C9F")]
		public bool disableAfterStart;

		// Token: 0x04002CA0 RID: 11424
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002CA0")]
		public FBBIKSettings.Limb leftArm;

		// Token: 0x04002CA1 RID: 11425
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002CA1")]
		public FBBIKSettings.Limb rightArm;

		// Token: 0x04002CA2 RID: 11426
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002CA2")]
		public FBBIKSettings.Limb leftLeg;

		// Token: 0x04002CA3 RID: 11427
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002CA3")]
		public FBBIKSettings.Limb rightLeg;

		// Token: 0x04002CA4 RID: 11428
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002CA4")]
		public float rootPin;

		// Token: 0x04002CA5 RID: 11429
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4002CA5")]
		public bool bodyEffectChildNodes = true;

		// Token: 0x020003B9 RID: 953
		[Token(Token = "0x20003B9")]
		[Serializable]
		public class Limb
		{
			// Token: 0x06002341 RID: 9025 RVA: 0x000020D3 File Offset: 0x000002D3
			[Token(Token = "0x6002341")]
			[Address(RVA = "0x5FC9A0", Offset = "0x5FB7A0", VA = "0x1805FC9A0")]
			public void Apply(FullBodyBipedChain chain, IKSolverFullBodyBiped solver)
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}

			// Token: 0x06002342 RID: 9026 RVA: 0x00050D78 File Offset: 0x0004EF78
			[Token(Token = "0x6002342")]
			[Address(RVA = "0x5FCA20", Offset = "0x5FB820", VA = "0x1805FCA20")]
			public Limb()
			{
			}

			// Token: 0x04002CA6 RID: 11430
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x4002CA6")]
			public FBIKChain.Smoothing reachSmoothing;

			// Token: 0x04002CA7 RID: 11431
			[FieldOffset(Offset = "0x14")]
			[Token(Token = "0x4002CA7")]
			public float maintainRelativePositionWeight;

			// Token: 0x04002CA8 RID: 11432
			[FieldOffset(Offset = "0x18")]
			[Token(Token = "0x4002CA8")]
			public float mappingWeight = 1f;
		}
	}
}
