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

namespace RootMotion.Demos
{
	// Token: 0x0200040B RID: 1035
	[Token(Token = "0x200040B")]
	[RequireComponent(typeof(AimIK))]
	[RequireComponent(typeof(FullBodyBipedIK))]
	public class AnimatorController3rdPersonIK : AnimatorController3rdPerson
	{
		// Token: 0x060025EE RID: 9710 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025EE")]
		[Address(RVA = "0xDB2A60", Offset = "0xDB1A60", VA = "0x180DB2A60", Slot = "4")]
		protected override void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025EF RID: 9711 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025EF")]
		[Address(RVA = "0xDB21C0", Offset = "0xDB11C0", VA = "0x180DB21C0", Slot = "5")]
		public override void Move(Vector3 moveInput, bool isMoving, Vector3 faceDirection, Vector3 aimTarget)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025F0 RID: 9712 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025F0")]
		[Address(RVA = "0xDB2900", Offset = "0xDB1900", VA = "0x180DB2900")]
		private void Read()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025F1 RID: 9713 RVA: 0x00057C58 File Offset: 0x00055E58
		[Token(Token = "0x60025F1")]
		[Address(RVA = "0xDB1B00", Offset = "0xDB0B00", VA = "0x180DB1B00")]
		private void AimIK()
		{
			IKSolverAim solver = this.aim.solver;
			float z = this.aimTarget.z;
			solver.IKPosition.z = z;
			this.aim.solver.Update();
		}

		// Token: 0x060025F2 RID: 9714 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025F2")]
		[Address(RVA = "0xDB1B60", Offset = "0xDB0B60", VA = "0x180DB1B60")]
		private void FBBIK()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025F3 RID: 9715 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025F3")]
		[Address(RVA = "0xDB2530", Offset = "0xDB1530", VA = "0x180DB2530")]
		private void OnPreRead()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025F4 RID: 9716 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60025F4")]
		[Address(RVA = "0xDB1F60", Offset = "0xDB0F60", VA = "0x180DB1F60")]
		private void HeadLookAt(Vector3 lookAtTarget)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060025F5 RID: 9717 RVA: 0x00057CA0 File Offset: 0x00055EA0
		[Token(Token = "0x60025F5")]
		[Address(RVA = "0xDB2400", Offset = "0xDB1400", VA = "0x180DB2400")]
		private void OnDestroy()
		{
			FullBodyBipedIK fullBodyBipedIK = this.ik;
			int num = 0;
			if (fullBodyBipedIK != num)
			{
				IKSolverFullBodyBiped solver = this.ik.solver;
				IKSolver.UpdateDelegate onPreRead = solver.OnPreRead;
				IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnPreRead);
				Delegate @delegate = Delegate.Remove(onPreRead, updateDelegate);
				int num2 = 0;
				if (@delegate != 0 && @delegate == 0)
				{
					throw new InvalidCastException();
				}
				solver.OnPreRead = num2;
			}
		}

		// Token: 0x060025F6 RID: 9718 RVA: 0x00057D0C File Offset: 0x00055F0C
		[Token(Token = "0x60025F6")]
		[Address(RVA = "0xDB2CD0", Offset = "0xDB1CD0", VA = "0x180DB2CD0")]
		public AnimatorController3rdPersonIK()
		{
			this.rotateSpeed = 7f;
			this.blendSpeed = 10f;
			this.maxAngle = 90f;
			this.moveSpeed = 1.5f;
			base..ctor();
		}

		// Token: 0x04002F65 RID: 12133
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002F65")]
		[Range(0f, 1f)]
		public float headLookWeight = 1f;

		// Token: 0x04002F66 RID: 12134
		[FieldOffset(Offset = "0x64")]
		[Token(Token = "0x4002F66")]
		public Vector3 gunHoldOffset;

		// Token: 0x04002F67 RID: 12135
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002F67")]
		public Vector3 leftHandOffset;

		// Token: 0x04002F68 RID: 12136
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4002F68")]
		public Recoil recoil;

		// Token: 0x04002F69 RID: 12137
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002F69")]
		private AimIK aim;

		// Token: 0x04002F6A RID: 12138
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4002F6A")]
		private FullBodyBipedIK ik;

		// Token: 0x04002F6B RID: 12139
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002F6B")]
		private Vector3 headLookAxis;

		// Token: 0x04002F6C RID: 12140
		[FieldOffset(Offset = "0xA4")]
		[Token(Token = "0x4002F6C")]
		private Vector3 leftHandPosRelToRightHand;

		// Token: 0x04002F6D RID: 12141
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x4002F6D")]
		private Quaternion leftHandRotRelToRightHand;

		// Token: 0x04002F6E RID: 12142
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4002F6E")]
		private Vector3 aimTarget;

		// Token: 0x04002F6F RID: 12143
		[FieldOffset(Offset = "0xCC")]
		[Token(Token = "0x4002F6F")]
		private Quaternion rightHandRotation;
	}
}
