using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion.FinalIK
{
	// Token: 0x02000451 RID: 1105
	[Token(Token = "0x2000451")]
	[AddComponentMenu("Scripts/RootMotion.FinalIK/Interaction System/Interaction Target")]
	[HelpURL("https://www.youtube.com/watch?v=r5jiZnsDH3M")]
	public class InteractionTarget : MonoBehaviour
	{
		// Token: 0x060027F8 RID: 10232 RVA: 0x0005897C File Offset: 0x00056B7C
		[Token(Token = "0x60027F8")]
		[Address(RVA = "0x10DC760", Offset = "0x10DB560", VA = "0x1810DC760")]
		[ContextMenu("TUTORIAL VIDEO (PART 1: BASICS)")]
		private void OpenTutorial1()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=r5jiZnsDH3M");
		}

		// Token: 0x060027F9 RID: 10233 RVA: 0x00058994 File Offset: 0x00056B94
		[Token(Token = "0x60027F9")]
		[Address(RVA = "0x10DC7A0", Offset = "0x10DB5A0", VA = "0x1810DC7A0")]
		[ContextMenu("TUTORIAL VIDEO (PART 2: PICKING UP...)")]
		private void OpenTutorial2()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=eP9-zycoHLk");
		}

		// Token: 0x060027FA RID: 10234 RVA: 0x000589AC File Offset: 0x00056BAC
		[Token(Token = "0x60027FA")]
		[Address(RVA = "0x10DC7E0", Offset = "0x10DB5E0", VA = "0x1810DC7E0")]
		[ContextMenu("TUTORIAL VIDEO (PART 3: ANIMATION)")]
		private void OpenTutorial3()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=sQfB2RcT1T4&index=14&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
		}

		// Token: 0x060027FB RID: 10235 RVA: 0x000589C4 File Offset: 0x00056BC4
		[Token(Token = "0x60027FB")]
		[Address(RVA = "0x10DC820", Offset = "0x10DB620", VA = "0x1810DC820")]
		[ContextMenu("TUTORIAL VIDEO (PART 4: TRIGGERS)")]
		private void OpenTutorial4()
		{
			Application.OpenURL("https://www.youtube.com/watch?v=-TDZpNjt2mk&index=15&list=PLVxSIA1OaTOu8Nos3CalXbJ2DrKnntMv6");
		}

		// Token: 0x060027FC RID: 10236 RVA: 0x000589DC File Offset: 0x00056BDC
		[Token(Token = "0x60027FC")]
		[Address(RVA = "0x10DCF30", Offset = "0x10DBD30", VA = "0x1810DCF30")]
		[ContextMenu("Support Group")]
		private void SupportGroup()
		{
			Application.OpenURL("https://groups.google.com/forum/#!forum/final-ik");
		}

		// Token: 0x060027FD RID: 10237 RVA: 0x000589F4 File Offset: 0x00056BF4
		[Token(Token = "0x60027FD")]
		[Address(RVA = "0x10DC670", Offset = "0x10DB470", VA = "0x1810DC670")]
		[ContextMenu("Asset Store Thread")]
		private void ASThread()
		{
			Application.OpenURL("http://forum.unity3d.com/threads/final-ik-full-body-ik-aim-look-at-fabrik-ccd-ik-1-0-released.222685/");
		}

		// Token: 0x060027FE RID: 10238 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x60027FE")]
		[Address(RVA = "0x10DC6B0", Offset = "0x10DB4B0", VA = "0x1810DC6B0")]
		public float GetValue(InteractionObject.WeightCurve.Type curveType)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x060027FF RID: 10239 RVA: 0x00058A0C File Offset: 0x00056C0C
		[Token(Token = "0x60027FF")]
		[Address(RVA = "0x10DC8A0", Offset = "0x10DB6A0", VA = "0x1810DC8A0")]
		public void ResetRotation()
		{
			Transform transform = this.pivot;
			int num = 0;
			if (transform != num)
			{
				Transform transform2 = this.pivot;
				Quaternion quaternion = this.defaultLocalRotation;
				transform2.localRotation = quaternion;
			}
		}

		// Token: 0x06002800 RID: 10240 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002800")]
		[Address(RVA = "0x10DC930", Offset = "0x10DB730", VA = "0x1810DC930")]
		public void RotateTo(Vector3 position)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002801 RID: 10241 RVA: 0x00058A48 File Offset: 0x00056C48
		[Token(Token = "0x6002801")]
		[Address(RVA = "0x10DC860", Offset = "0x10DB660", VA = "0x1810DC860")]
		[ContextMenu("User Manual")]
		private void OpenUserManual()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/page10.html");
		}

		// Token: 0x06002802 RID: 10242 RVA: 0x00058A60 File Offset: 0x00056C60
		[Token(Token = "0x6002802")]
		[Address(RVA = "0x10DC720", Offset = "0x10DB520", VA = "0x1810DC720")]
		[ContextMenu("Scrpt Reference")]
		private void OpenScriptReference()
		{
			Application.OpenURL("http://www.root-motion.com/finalikdox/html/class_root_motion_1_1_final_i_k_1_1_interaction_target.html");
		}

		// Token: 0x06002803 RID: 10243 RVA: 0x00058A78 File Offset: 0x00056C78
		[Token(Token = "0x6002803")]
		[Address(RVA = "0x10DCF70", Offset = "0x10DBD70", VA = "0x1810DCF70")]
		public InteractionTarget()
		{
			float z = Vector3.up.z;
			this.twistAxis.z = z;
			this.twistWeight = 1f;
			this.rotateOnce = true;
			base..ctor();
		}

		// Token: 0x0400315B RID: 12635
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x400315B")]
		[Tooltip("The type of the FBBIK effector.")]
		public FullBodyBipedEffector effectorType;

		// Token: 0x0400315C RID: 12636
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x400315C")]
		[Tooltip("InteractionObject weight curve multipliers for this effector target.")]
		public InteractionTarget.Multiplier[] multipliers;

		// Token: 0x0400315D RID: 12637
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x400315D")]
		[Tooltip("The interaction speed multiplier for this effector. This can be used to make interactions faster/slower for specific effectors.")]
		public float interactionSpeedMlp = 1f;

		// Token: 0x0400315E RID: 12638
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x400315E")]
		[Tooltip("The pivot to twist/swing this interaction target about. For symmetric objects that can be interacted with from a certain angular range.")]
		public Transform pivot;

		// Token: 0x0400315F RID: 12639
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x400315F")]
		[Tooltip("The axis of twisting the interaction target (blue line).")]
		public Vector3 twistAxis;

		// Token: 0x04003160 RID: 12640
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4003160")]
		[Tooltip("The weight of twisting the interaction target towards the effector bone in the start of the interaction.")]
		public float twistWeight;

		// Token: 0x04003161 RID: 12641
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003161")]
		[Tooltip("The weight of swinging the interaction target towards the effector bone in the start of the interaction. Swing is defined as a 3-DOF rotation around any axis, while twist is only around the twist axis.")]
		public float swingWeight;

		// Token: 0x04003162 RID: 12642
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4003162")]
		[Tooltip("If true, will twist/swing around the pivot only once at the start of the interaction. If false, will continue rotating throuout the whole interaction.")]
		public bool rotateOnce;

		// Token: 0x04003163 RID: 12643
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4003163")]
		private Quaternion defaultLocalRotation;

		// Token: 0x04003164 RID: 12644
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003164")]
		private Transform lastPivot;

		// Token: 0x02000452 RID: 1106
		[Token(Token = "0x2000452")]
		[Serializable]
		public class Multiplier
		{
			// Token: 0x06002804 RID: 10244 RVA: 0x00058AC0 File Offset: 0x00056CC0
			[Token(Token = "0x6002804")]
			[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
			public Multiplier()
			{
			}

			// Token: 0x04003165 RID: 12645
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x4003165")]
			[Tooltip("The curve type (InteractionObject.WeightCurve.Type).")]
			public InteractionObject.WeightCurve.Type curve;

			// Token: 0x04003166 RID: 12646
			[FieldOffset(Offset = "0x14")]
			[Token(Token = "0x4003166")]
			[Tooltip("Multiplier of the curve's value.")]
			public float multiplier;
		}
	}
}
