using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x0200049E RID: 1182
	[Token(Token = "0x200049E")]
	[Serializable]
	public class InteractionLookAt
	{
		// Token: 0x06002A53 RID: 10835 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A53")]
		[Address(RVA = "0x1045050", Offset = "0x1044050", VA = "0x181045050")]
		public void Look(Transform target, float time)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A54 RID: 10836 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002A54")]
		[Address(RVA = "0x10453D0", Offset = "0x10443D0", VA = "0x1810453D0")]
		public void Update()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002A55 RID: 10837 RVA: 0x0005EAF4 File Offset: 0x0005CCF4
		[Token(Token = "0x6002A55")]
		[Address(RVA = "0x10452B0", Offset = "0x10442B0", VA = "0x1810452B0")]
		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: 0x06002A56 RID: 10838 RVA: 0x0005EB94 File Offset: 0x0005CD94
		[Token(Token = "0x6002A56")]
		[Address(RVA = "0x10451E0", Offset = "0x10441E0", VA = "0x1810451E0")]
		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: 0x06002A57 RID: 10839 RVA: 0x0005EC10 File Offset: 0x0005CE10
		[Token(Token = "0x6002A57")]
		[Address(RVA = "0x1045650", Offset = "0x1044650", VA = "0x181045650")]
		public InteractionLookAt()
		{
		}

		// Token: 0x040033FC RID: 13308
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x40033FC")]
		[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: 0x040033FD RID: 13309
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x40033FD")]
		[Tooltip("Interpolation speed of the LookAtIK target.")]
		public float lerpSpeed = 5f;

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

		// Token: 0x040033FF RID: 13311
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x40033FF")]
		[HideInInspector]
		public bool isPaused;

		// Token: 0x04003400 RID: 13312
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003400")]
		private Transform lookAtTarget;

		// Token: 0x04003401 RID: 13313
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003401")]
		private float stopLookTime;

		// Token: 0x04003402 RID: 13314
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4003402")]
		private float weight;

		// Token: 0x04003403 RID: 13315
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003403")]
		private bool firstFBBIKSolve;
	}
}
