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

namespace RootMotion.Demos
{
	// Token: 0x020003CD RID: 973
	[Token(Token = "0x20003CD")]
	public abstract class PickUp2Handed : MonoBehaviour
	{
		// Token: 0x06002386 RID: 9094 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002386")]
		[Address(RVA = "0x312060", Offset = "0x310E60", VA = "0x180312060")]
		private void OnGUI()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002387 RID: 9095
		[Token(Token = "0x6002387")]
		[Address(Slot = "4")]
		protected abstract void RotatePivot();

		// Token: 0x06002388 RID: 9096 RVA: 0x00051474 File Offset: 0x0004F674
		[Token(Token = "0x6002388")]
		[Address(RVA = "0x312470", Offset = "0x311270", VA = "0x180312470")]
		private void Start()
		{
			InteractionSystem interactionSystem = this.interactionSystem;
			InteractionSystem.InteractionDelegate interactionDelegate = new InteractionSystem.InteractionDelegate(this.OnStart);
			Delegate @delegate = Delegate.Combine(interactionDelegate, interactionDelegate);
			int num = 0;
			if (@delegate == 0 || @delegate != 0)
			{
				interactionSystem.OnInteractionStart = num;
				InteractionSystem interactionSystem2 = this.interactionSystem;
				InteractionSystem.InteractionDelegate onInteractionPause = interactionSystem2.OnInteractionPause;
				InteractionSystem.InteractionDelegate interactionDelegate2 = new InteractionSystem.InteractionDelegate(this.OnPause);
				Delegate delegate2 = Delegate.Combine(onInteractionPause, interactionDelegate2);
				if (delegate2 == 0 || delegate2 != 0)
				{
					interactionSystem2.OnInteractionPause = delegate2;
					InteractionSystem interactionSystem3 = this.interactionSystem;
					InteractionSystem.InteractionDelegate onInteractionResume = interactionSystem3.OnInteractionResume;
					InteractionSystem.InteractionDelegate interactionDelegate3 = new InteractionSystem.InteractionDelegate(this.OnDrop);
					Delegate delegate3 = Delegate.Combine(onInteractionResume, interactionDelegate3);
					if (delegate3 == 0 || delegate3 != 0)
					{
						interactionSystem3.OnInteractionResume = delegate3;
						throw new NullReferenceException();
					}
				}
			}
			throw new InvalidCastException();
		}

		// Token: 0x06002389 RID: 9097 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002389")]
		[Address(RVA = "0x3121F0", Offset = "0x310FF0", VA = "0x1803121F0")]
		private void OnPause(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600238A RID: 9098 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600238A")]
		[Address(RVA = "0x312390", Offset = "0x311190", VA = "0x180312390")]
		private void OnStart(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600238B RID: 9099 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600238B")]
		[Address(RVA = "0x311F30", Offset = "0x310D30", VA = "0x180311F30")]
		private void OnDrop(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600238C RID: 9100 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600238C")]
		[Address(RVA = "0x311B20", Offset = "0x310920", VA = "0x180311B20")]
		private void LateUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000200 RID: 512
		// (get) Token: 0x0600238D RID: 9101 RVA: 0x00051538 File Offset: 0x0004F738
		[Token(Token = "0x17000200")]
		private bool holding
		{
			[Token(Token = "0x600238D")]
			[Address(RVA = "0x312670", Offset = "0x311470", VA = "0x180312670")]
			get
			{
				return this.interactionSystem.IsPaused(FullBodyBipedEffector.LeftHand);
			}
		}

		// Token: 0x0600238E RID: 9102 RVA: 0x00051558 File Offset: 0x0004F758
		[Token(Token = "0x600238E")]
		[Address(RVA = "0x311D00", Offset = "0x310B00", VA = "0x180311D00")]
		private void OnDestroy()
		{
			InteractionSystem interactionSystem = this.interactionSystem;
			int num = 0;
			if (!(interactionSystem == num))
			{
				InteractionSystem interactionSystem2 = this.interactionSystem;
				InteractionSystem.InteractionDelegate interactionDelegate = new InteractionSystem.InteractionDelegate(this.OnStart);
				Delegate @delegate = Delegate.Remove(interactionDelegate, interactionDelegate);
				int num2 = 0;
				if (@delegate == 0 || @delegate != 0)
				{
					interactionSystem2.OnInteractionStart = num2;
					InteractionSystem interactionSystem3 = this.interactionSystem;
					InteractionSystem.InteractionDelegate onInteractionPause = interactionSystem3.OnInteractionPause;
					InteractionSystem.InteractionDelegate interactionDelegate2 = new InteractionSystem.InteractionDelegate(this.OnPause);
					Delegate delegate2 = Delegate.Remove(onInteractionPause, interactionDelegate2);
					if (delegate2 == 0 || delegate2 != 0)
					{
						interactionSystem3.OnInteractionPause = delegate2;
						InteractionSystem interactionSystem4 = this.interactionSystem;
						InteractionSystem.InteractionDelegate onInteractionResume = interactionSystem4.OnInteractionResume;
						InteractionSystem.InteractionDelegate interactionDelegate3 = new InteractionSystem.InteractionDelegate(this.OnDrop);
						Delegate delegate3 = Delegate.Remove(onInteractionResume, interactionDelegate3);
						if (delegate3 == 0 || delegate3 != 0)
						{
							interactionSystem4.OnInteractionResume = delegate3;
							return;
						}
					}
				}
				throw new InvalidCastException();
			}
		}

		// Token: 0x0600238F RID: 9103 RVA: 0x00051638 File Offset: 0x0004F838
		[Token(Token = "0x600238F")]
		[Address(RVA = "0x312660", Offset = "0x311460", VA = "0x180312660")]
		protected PickUp2Handed()
		{
		}

		// Token: 0x04002D1B RID: 11547
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002D1B")]
		[SerializeField]
		private int GUIspace;

		// Token: 0x04002D1C RID: 11548
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002D1C")]
		public InteractionSystem interactionSystem;

		// Token: 0x04002D1D RID: 11549
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002D1D")]
		public InteractionObject obj;

		// Token: 0x04002D1E RID: 11550
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002D1E")]
		public Transform pivot;

		// Token: 0x04002D1F RID: 11551
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002D1F")]
		public Transform holdPoint;

		// Token: 0x04002D20 RID: 11552
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002D20")]
		public float pickUpTime = 0.3f;

		// Token: 0x04002D21 RID: 11553
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4002D21")]
		private float holdWeight;

		// Token: 0x04002D22 RID: 11554
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002D22")]
		private float holdWeightVel;

		// Token: 0x04002D23 RID: 11555
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4002D23")]
		private Vector3 pickUpPosition;

		// Token: 0x04002D24 RID: 11556
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4002D24")]
		private Quaternion pickUpRotation;
	}
}
