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

namespace RootMotion.Demos
{
	// Token: 0x02000425 RID: 1061
	[Token(Token = "0x2000425")]
	public abstract class PickUp2Handed : MonoBehaviour
	{
		// Token: 0x0600264F RID: 9807 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600264F")]
		[Address(RVA = "0x3329E0", Offset = "0x3319E0", VA = "0x1803329E0")]
		private void OnGUI()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002650 RID: 9808
		[Token(Token = "0x6002650")]
		[Address(Slot = "4")]
		protected abstract void RotatePivot();

		// Token: 0x06002651 RID: 9809 RVA: 0x000586CC File Offset: 0x000568CC
		[Token(Token = "0x6002651")]
		[Address(RVA = "0x332DF0", Offset = "0x331DF0", VA = "0x180332DF0")]
		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: 0x06002652 RID: 9810 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002652")]
		[Address(RVA = "0x332B70", Offset = "0x331B70", VA = "0x180332B70")]
		private void OnPause(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002653 RID: 9811 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002653")]
		[Address(RVA = "0x332D10", Offset = "0x331D10", VA = "0x180332D10")]
		private void OnStart(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002654 RID: 9812 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002654")]
		[Address(RVA = "0x3328B0", Offset = "0x3318B0", VA = "0x1803328B0")]
		private void OnDrop(FullBodyBipedEffector effectorType, InteractionObject interactionObject)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002655 RID: 9813 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002655")]
		[Address(RVA = "0x3324A0", Offset = "0x3314A0", VA = "0x1803324A0")]
		private void LateUpdate()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000225 RID: 549
		// (get) Token: 0x06002656 RID: 9814 RVA: 0x00058790 File Offset: 0x00056990
		[Token(Token = "0x17000225")]
		private bool holding
		{
			[Token(Token = "0x6002656")]
			[Address(RVA = "0x332FF0", Offset = "0x331FF0", VA = "0x180332FF0")]
			get
			{
				return this.interactionSystem.IsPaused(FullBodyBipedEffector.LeftHand);
			}
		}

		// Token: 0x06002657 RID: 9815 RVA: 0x000587B0 File Offset: 0x000569B0
		[Token(Token = "0x6002657")]
		[Address(RVA = "0x332680", Offset = "0x331680", VA = "0x180332680")]
		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: 0x06002658 RID: 9816 RVA: 0x00058890 File Offset: 0x00056A90
		[Token(Token = "0x6002658")]
		[Address(RVA = "0x332FE0", Offset = "0x331FE0", VA = "0x180332FE0")]
		protected PickUp2Handed()
		{
		}

		// Token: 0x04003005 RID: 12293
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003005")]
		[SerializeField]
		private int GUIspace;

		// Token: 0x04003006 RID: 12294
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4003006")]
		public InteractionSystem interactionSystem;

		// Token: 0x04003007 RID: 12295
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003007")]
		public InteractionObject obj;

		// Token: 0x04003008 RID: 12296
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4003008")]
		public Transform pivot;

		// Token: 0x04003009 RID: 12297
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4003009")]
		public Transform holdPoint;

		// Token: 0x0400300A RID: 12298
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x400300A")]
		public float pickUpTime = 0.3f;

		// Token: 0x0400300B RID: 12299
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x400300B")]
		private float holdWeight;

		// Token: 0x0400300C RID: 12300
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x400300C")]
		private float holdWeightVel;

		// Token: 0x0400300D RID: 12301
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x400300D")]
		private Vector3 pickUpPosition;

		// Token: 0x0400300E RID: 12302
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x400300E")]
		private Quaternion pickUpRotation;
	}
}
