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

namespace RootMotion.Demos
{
	// Token: 0x020003B3 RID: 947
	[Token(Token = "0x20003B3")]
	[RequireComponent(typeof(FullBodyBipedIK))]
	[RequireComponent(typeof(AimIK))]
	public class AnimatorController3rdPersonIK : AnimatorController3rdPerson
	{
		// Token: 0x06002325 RID: 8997 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002325")]
		[Address(RVA = "0x8CE1D0", Offset = "0x8CCFD0", VA = "0x1808CE1D0", Slot = "4")]
		protected override void Start()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002326 RID: 8998 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002326")]
		[Address(RVA = "0x8CD930", Offset = "0x8CC730", VA = "0x1808CD930", 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: 0x06002327 RID: 8999 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002327")]
		[Address(RVA = "0x8CE070", Offset = "0x8CCE70", VA = "0x1808CE070")]
		private void Read()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002328 RID: 9000 RVA: 0x000509AC File Offset: 0x0004EBAC
		[Token(Token = "0x6002328")]
		[Address(RVA = "0x8CD270", Offset = "0x8CC070", VA = "0x1808CD270")]
		private void AimIK()
		{
			IKSolverAim solver = this.aim.solver;
			float z = this.aimTarget.z;
			solver.IKPosition.z = z;
			this.aim.solver.Update();
		}

		// Token: 0x06002329 RID: 9001 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002329")]
		[Address(RVA = "0x8CD2D0", Offset = "0x8CC0D0", VA = "0x1808CD2D0")]
		private void FBBIK()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600232A RID: 9002 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600232A")]
		[Address(RVA = "0x8CDCA0", Offset = "0x8CCAA0", VA = "0x1808CDCA0")]
		private void OnPreRead()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600232B RID: 9003 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600232B")]
		[Address(RVA = "0x8CD6D0", Offset = "0x8CC4D0", VA = "0x1808CD6D0")]
		private void HeadLookAt(Vector3 lookAtTarget)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600232C RID: 9004 RVA: 0x000509F4 File Offset: 0x0004EBF4
		[Token(Token = "0x600232C")]
		[Address(RVA = "0x8CDB70", Offset = "0x8CC970", VA = "0x1808CDB70")]
		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: 0x0600232D RID: 9005 RVA: 0x00050A60 File Offset: 0x0004EC60
		[Token(Token = "0x600232D")]
		[Address(RVA = "0x8CE440", Offset = "0x8CD240", VA = "0x1808CE440")]
		public AnimatorController3rdPersonIK()
		{
			this.rotateSpeed = 7f;
			this.blendSpeed = 10f;
			this.maxAngle = 90f;
			this.moveSpeed = 1.5f;
			base..ctor();
		}

		// Token: 0x04002C7B RID: 11387
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002C7B")]
		[Range(0f, 1f)]
		public float headLookWeight = 1f;

		// Token: 0x04002C7C RID: 11388
		[FieldOffset(Offset = "0x64")]
		[Token(Token = "0x4002C7C")]
		public Vector3 gunHoldOffset;

		// Token: 0x04002C7D RID: 11389
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002C7D")]
		public Vector3 leftHandOffset;

		// Token: 0x04002C7E RID: 11390
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x4002C7E")]
		public Recoil recoil;

		// Token: 0x04002C7F RID: 11391
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002C7F")]
		private AimIK aim;

		// Token: 0x04002C80 RID: 11392
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x4002C80")]
		private FullBodyBipedIK ik;

		// Token: 0x04002C81 RID: 11393
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002C81")]
		private Vector3 headLookAxis;

		// Token: 0x04002C82 RID: 11394
		[FieldOffset(Offset = "0xA4")]
		[Token(Token = "0x4002C82")]
		private Vector3 leftHandPosRelToRightHand;

		// Token: 0x04002C83 RID: 11395
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x4002C83")]
		private Quaternion leftHandRotRelToRightHand;

		// Token: 0x04002C84 RID: 11396
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4002C84")]
		private Vector3 aimTarget;

		// Token: 0x04002C85 RID: 11397
		[FieldOffset(Offset = "0xCC")]
		[Token(Token = "0x4002C85")]
		private Quaternion rightHandRotation;
	}
}
