using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000446 RID: 1094
	[Token(Token = "0x2000446")]
	[Serializable]
	public class InteractionLookAt
	{
		// Token: 0x0600278A RID: 10122 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600278A")]
		[Address(RVA = "0x10D5AD0", Offset = "0x10D48D0", VA = "0x1810D5AD0")]
		public void Look(Transform target, float time)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600278B RID: 10123 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600278B")]
		[Address(RVA = "0x10D5E50", Offset = "0x10D4C50", VA = "0x1810D5E50")]
		public void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600278C RID: 10124 RVA: 0x000576B0 File Offset: 0x000558B0
		[Token(Token = "0x600278C")]
		[Address(RVA = "0x10D5D30", Offset = "0x10D4B30", VA = "0x1810D5D30")]
		public void SolveSpine()
		{
			LookAtIK lookAtIK = this.ik;
			int num = 0;
			bool flag = lookAtIK == num;
			if (!flag && this.firstFBBIKSolve != flag)
			{
				IKSolverLookAt solver = this.ik.solver;
				float headWeight = solver.headWeight;
				int num2 = 0;
				float eyesWeight = solver.eyesWeight;
				solver.headWeight = (float)num2;
				this.ik.solver.eyesWeight = (float)num2;
				this.ik.solver.Update();
				this.ik.solver.headWeight = headWeight;
				this.ik.solver.eyesWeight = eyesWeight;
			}
		}

		// Token: 0x0600278D RID: 10125 RVA: 0x00057750 File Offset: 0x00055950
		[Token(Token = "0x600278D")]
		[Address(RVA = "0x10D5C60", Offset = "0x10D4A60", VA = "0x1810D5C60")]
		public void SolveHead()
		{
			LookAtIK lookAtIK = this.ik;
			int num = 0;
			bool flag = lookAtIK == num;
			if (!flag && this.firstFBBIKSolve != flag)
			{
				IKSolverLookAt solver = this.ik.solver;
				float bodyWeight = solver.bodyWeight;
				solver.bodyWeight = 0f;
				this.ik.solver.Update();
				this.ik.solver.bodyWeight = bodyWeight;
				this.firstFBBIKSolve = false;
			}
		}

		// Token: 0x0600278E RID: 10126 RVA: 0x000577CC File Offset: 0x000559CC
		[Token(Token = "0x600278E")]
		[Address(RVA = "0x10D60D0", Offset = "0x10D4ED0", VA = "0x1810D60D0")]
		public InteractionLookAt()
		{
		}

		// Token: 0x04003112 RID: 12562
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4003112")]
		[Tooltip("(Optional) reference to the LookAtIK component that will be used to make the character look at the objects that it is interacting with.")]
		public LookAtIK ik;

		// Token: 0x04003113 RID: 12563
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003113")]
		[Tooltip("Interpolation speed of the LookAtIK target.")]
		public float lerpSpeed = 5f;

		// Token: 0x04003114 RID: 12564
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x4003114")]
		[Tooltip("Interpolation speed of the LookAtIK weight.")]
		public float weightSpeed = 1f;

		// Token: 0x04003115 RID: 12565
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4003115")]
		[HideInInspector]
		public bool isPaused;

		// Token: 0x04003116 RID: 12566
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003116")]
		private Transform lookAtTarget;

		// Token: 0x04003117 RID: 12567
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003117")]
		private float stopLookTime;

		// Token: 0x04003118 RID: 12568
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4003118")]
		private float weight;

		// Token: 0x04003119 RID: 12569
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003119")]
		private bool firstFBBIKSolve;
	}
}
