using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion
{
	// Token: 0x020003E4 RID: 996
	[Token(Token = "0x20003E4")]
	public class CameraController : MonoBehaviour
	{
		// Token: 0x1700020F RID: 527
		// (get) Token: 0x06002504 RID: 9476 RVA: 0x00056880 File Offset: 0x00054A80
		// (set) Token: 0x06002505 RID: 9477 RVA: 0x00056894 File Offset: 0x00054A94
		[Token(Token = "0x1700020F")]
		public float x
		{
			[Token(Token = "0x6002504")]
			[Address(RVA = "0x770A80", Offset = "0x76FA80", VA = "0x180770A80")]
			get;
			[Token(Token = "0x6002505")]
			[Address(RVA = "0xB8ED90", Offset = "0xB8DD90", VA = "0x180B8ED90")]
			private set;
		}

		// Token: 0x17000210 RID: 528
		// (get) Token: 0x06002506 RID: 9478 RVA: 0x000568A8 File Offset: 0x00054AA8
		// (set) Token: 0x06002507 RID: 9479 RVA: 0x000568BC File Offset: 0x00054ABC
		[Token(Token = "0x17000210")]
		public float y
		{
			[Token(Token = "0x6002506")]
			[Address(RVA = "0xB8ED10", Offset = "0xB8DD10", VA = "0x180B8ED10")]
			get;
			[Token(Token = "0x6002507")]
			[Address(RVA = "0xB8EDA0", Offset = "0xB8DDA0", VA = "0x180B8EDA0")]
			private set;
		}

		// Token: 0x17000211 RID: 529
		// (get) Token: 0x06002508 RID: 9480 RVA: 0x000568D0 File Offset: 0x00054AD0
		// (set) Token: 0x06002509 RID: 9481 RVA: 0x000568E4 File Offset: 0x00054AE4
		[Token(Token = "0x17000211")]
		public float distanceTarget
		{
			[Token(Token = "0x6002508")]
			[Address(RVA = "0xB8ED00", Offset = "0xB8DD00", VA = "0x180B8ED00")]
			get;
			[Token(Token = "0x6002509")]
			[Address(RVA = "0xB8ED80", Offset = "0xB8DD80", VA = "0x180B8ED80")]
			private set;
		}

		// Token: 0x0600250A RID: 9482 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600250A")]
		[Address(RVA = "0xB8E340", Offset = "0xB8D340", VA = "0x180B8E340", Slot = "4")]
		protected virtual void Awake()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600250B RID: 9483 RVA: 0x000568F8 File Offset: 0x00054AF8
		[Token(Token = "0x600250B")]
		[Address(RVA = "0xB8EC10", Offset = "0xB8DC10", VA = "0x180B8EC10", Slot = "5")]
		protected virtual void Update()
		{
			if (this.updateMode == CameraController.UpdateMode.Update)
			{
				float deltaTime = Time.deltaTime;
				this.UpdateTransform(deltaTime);
				return;
			}
		}

		// Token: 0x0600250C RID: 9484 RVA: 0x00056920 File Offset: 0x00054B20
		[Token(Token = "0x600250C")]
		[Address(RVA = "0xB8E490", Offset = "0xB8D490", VA = "0x180B8E490", Slot = "6")]
		protected virtual void FixedUpdate()
		{
			if (this.updateMode == CameraController.UpdateMode.FixedUpdate)
			{
				float deltaTime = Time.deltaTime;
				this.UpdateTransform(deltaTime);
				return;
			}
		}

		// Token: 0x0600250D RID: 9485 RVA: 0x00056948 File Offset: 0x00054B48
		[Token(Token = "0x600250D")]
		[Address(RVA = "0xB8E4C0", Offset = "0xB8D4C0", VA = "0x180B8E4C0", Slot = "7")]
		protected virtual void LateUpdate()
		{
			this.UpdateInput();
			if (this.updateMode == CameraController.UpdateMode.LateUpdate)
			{
				float deltaTime = Time.deltaTime;
				this.UpdateTransform(deltaTime);
				return;
			}
		}

		// Token: 0x0600250E RID: 9486 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600250E")]
		[Address(RVA = "0xB8E500", Offset = "0xB8D500", VA = "0x180B8E500")]
		public void UpdateInput()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600250F RID: 9487 RVA: 0x00056974 File Offset: 0x00054B74
		[Token(Token = "0x600250F")]
		[Address(RVA = "0xB8EBE0", Offset = "0xB8DBE0", VA = "0x180B8EBE0")]
		public void UpdateTransform()
		{
			float deltaTime = Time.deltaTime;
			this.UpdateTransform(deltaTime);
		}

		// Token: 0x06002510 RID: 9488 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002510")]
		[Address(RVA = "0xB8E700", Offset = "0xB8D700", VA = "0x180B8E700")]
		public void UpdateTransform(float deltaTime)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x17000212 RID: 530
		// (get) Token: 0x06002511 RID: 9489 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x17000212")]
		private float zoomAdd
		{
			[Token(Token = "0x6002511")]
			[Address(RVA = "0xB8ED20", Offset = "0xB8DD20", VA = "0x180B8ED20")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002512 RID: 9490 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002512")]
		[Address(RVA = "0x334DA0", Offset = "0x333DA0", VA = "0x180334DA0")]
		private float ClampAngle(float angle, float min, float max)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002513 RID: 9491 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002513")]
		[Address(RVA = "0xB8EC40", Offset = "0xB8DC40", VA = "0x180B8EC40")]
		public CameraController()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04002E72 RID: 11890
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002E72")]
		public Transform target;

		// Token: 0x04002E73 RID: 11891
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002E73")]
		public Transform rotationSpace;

		// Token: 0x04002E74 RID: 11892
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002E74")]
		public CameraController.UpdateMode updateMode;

		// Token: 0x04002E75 RID: 11893
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x4002E75")]
		public bool lockCursor;

		// Token: 0x04002E76 RID: 11894
		[FieldOffset(Offset = "0x2D")]
		[Token(Token = "0x4002E76")]
		public bool smoothFollow;

		// Token: 0x04002E77 RID: 11895
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002E77")]
		public float followSpeed;

		// Token: 0x04002E78 RID: 11896
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4002E78")]
		public float distance;

		// Token: 0x04002E79 RID: 11897
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002E79")]
		public float minDistance;

		// Token: 0x04002E7A RID: 11898
		[FieldOffset(Offset = "0x3C")]
		[Token(Token = "0x4002E7A")]
		public float maxDistance;

		// Token: 0x04002E7B RID: 11899
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002E7B")]
		public float zoomSpeed;

		// Token: 0x04002E7C RID: 11900
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4002E7C")]
		public float zoomSensitivity;

		// Token: 0x04002E7D RID: 11901
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002E7D")]
		public float rotationSensitivity;

		// Token: 0x04002E7E RID: 11902
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4002E7E")]
		public float yMinLimit;

		// Token: 0x04002E7F RID: 11903
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002E7F")]
		public float yMaxLimit;

		// Token: 0x04002E80 RID: 11904
		[FieldOffset(Offset = "0x54")]
		[Token(Token = "0x4002E80")]
		public Vector3 offset;

		// Token: 0x04002E81 RID: 11905
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002E81")]
		public bool rotateAlways;

		// Token: 0x04002E82 RID: 11906
		[FieldOffset(Offset = "0x61")]
		[Token(Token = "0x4002E82")]
		public bool rotateOnLeftButton;

		// Token: 0x04002E83 RID: 11907
		[FieldOffset(Offset = "0x62")]
		[Token(Token = "0x4002E83")]
		public bool rotateOnRightButton;

		// Token: 0x04002E84 RID: 11908
		[FieldOffset(Offset = "0x63")]
		[Token(Token = "0x4002E84")]
		public bool rotateOnMiddleButton;

		// Token: 0x04002E88 RID: 11912
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002E88")]
		private Vector3 targetDistance;

		// Token: 0x04002E89 RID: 11913
		[FieldOffset(Offset = "0x7C")]
		[Token(Token = "0x4002E89")]
		private Vector3 position;

		// Token: 0x04002E8A RID: 11914
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002E8A")]
		private Quaternion rotation;

		// Token: 0x04002E8B RID: 11915
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002E8B")]
		private Vector3 smoothPosition;

		// Token: 0x04002E8C RID: 11916
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4002E8C")]
		private Camera cam;

		// Token: 0x04002E8D RID: 11917
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x4002E8D")]
		private Quaternion r;

		// Token: 0x04002E8E RID: 11918
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4002E8E")]
		private Vector3 lastUp;

		// Token: 0x020003E5 RID: 997
		[Token(Token = "0x20003E5")]
		[Serializable]
		public enum UpdateMode
		{
			// Token: 0x04002E90 RID: 11920
			[Token(Token = "0x4002E90")]
			Update,
			// Token: 0x04002E91 RID: 11921
			[Token(Token = "0x4002E91")]
			FixedUpdate,
			// Token: 0x04002E92 RID: 11922
			[Token(Token = "0x4002E92")]
			LateUpdate
		}
	}
}
