using System;
using Cpp2IlInjected;
using UnityEngine;

namespace RootMotion
{
	// Token: 0x0200038C RID: 908
	[Token(Token = "0x200038C")]
	public class CameraController : MonoBehaviour
	{
		// Token: 0x170001EA RID: 490
		// (get) Token: 0x0600223B RID: 8763 RVA: 0x0004F5E4 File Offset: 0x0004D7E4
		// (set) Token: 0x0600223C RID: 8764 RVA: 0x0004F5F8 File Offset: 0x0004D7F8
		[Token(Token = "0x170001EA")]
		public float x
		{
			[Token(Token = "0x600223B")]
			[Address(RVA = "0x6FCD40", Offset = "0x6FBB40", VA = "0x1806FCD40")]
			get;
			[Token(Token = "0x600223C")]
			[Address(RVA = "0xECF900", Offset = "0xECE700", VA = "0x180ECF900")]
			private set;
		}

		// Token: 0x170001EB RID: 491
		// (get) Token: 0x0600223D RID: 8765 RVA: 0x0004F60C File Offset: 0x0004D80C
		// (set) Token: 0x0600223E RID: 8766 RVA: 0x0004F620 File Offset: 0x0004D820
		[Token(Token = "0x170001EB")]
		public float y
		{
			[Token(Token = "0x600223D")]
			[Address(RVA = "0x949C50", Offset = "0x948A50", VA = "0x180949C50")]
			get;
			[Token(Token = "0x600223E")]
			[Address(RVA = "0x134E270", Offset = "0x134D070", VA = "0x18134E270")]
			private set;
		}

		// Token: 0x170001EC RID: 492
		// (get) Token: 0x0600223F RID: 8767 RVA: 0x0004F634 File Offset: 0x0004D834
		// (set) Token: 0x06002240 RID: 8768 RVA: 0x0004F648 File Offset: 0x0004D848
		[Token(Token = "0x170001EC")]
		public float distanceTarget
		{
			[Token(Token = "0x600223F")]
			[Address(RVA = "0xECF860", Offset = "0xECE660", VA = "0x180ECF860")]
			get;
			[Token(Token = "0x6002240")]
			[Address(RVA = "0xBCB8E0", Offset = "0xBCA6E0", VA = "0x180BCB8E0")]
			private set;
		}

		// Token: 0x06002241 RID: 8769 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002241")]
		[Address(RVA = "0x134D850", Offset = "0x134C650", VA = "0x18134D850", Slot = "4")]
		protected virtual void Awake()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002242 RID: 8770 RVA: 0x0004F65C File Offset: 0x0004D85C
		[Token(Token = "0x6002242")]
		[Address(RVA = "0x134E120", Offset = "0x134CF20", VA = "0x18134E120", Slot = "5")]
		protected virtual void Update()
		{
			if (this.updateMode == CameraController.UpdateMode.Update)
			{
				float deltaTime = Time.deltaTime;
				this.UpdateTransform(deltaTime);
				return;
			}
		}

		// Token: 0x06002243 RID: 8771 RVA: 0x0004F684 File Offset: 0x0004D884
		[Token(Token = "0x6002243")]
		[Address(RVA = "0x134D9A0", Offset = "0x134C7A0", VA = "0x18134D9A0", Slot = "6")]
		protected virtual void FixedUpdate()
		{
			if (this.updateMode == CameraController.UpdateMode.FixedUpdate)
			{
				float deltaTime = Time.deltaTime;
				this.UpdateTransform(deltaTime);
				return;
			}
		}

		// Token: 0x06002244 RID: 8772 RVA: 0x0004F6AC File Offset: 0x0004D8AC
		[Token(Token = "0x6002244")]
		[Address(RVA = "0x134D9D0", Offset = "0x134C7D0", VA = "0x18134D9D0", Slot = "7")]
		protected virtual void LateUpdate()
		{
			this.UpdateInput();
			if (this.updateMode == CameraController.UpdateMode.LateUpdate)
			{
				float deltaTime = Time.deltaTime;
				this.UpdateTransform(deltaTime);
				return;
			}
		}

		// Token: 0x06002245 RID: 8773 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002245")]
		[Address(RVA = "0x134DA10", Offset = "0x134C810", VA = "0x18134DA10")]
		public void UpdateInput()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002246 RID: 8774 RVA: 0x0004F6D8 File Offset: 0x0004D8D8
		[Token(Token = "0x6002246")]
		[Address(RVA = "0x134E0F0", Offset = "0x134CEF0", VA = "0x18134E0F0")]
		public void UpdateTransform()
		{
			float deltaTime = Time.deltaTime;
			this.UpdateTransform(deltaTime);
		}

		// Token: 0x06002247 RID: 8775 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002247")]
		[Address(RVA = "0x134DC10", Offset = "0x134CA10", VA = "0x18134DC10")]
		public void UpdateTransform(float deltaTime)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x170001ED RID: 493
		// (get) Token: 0x06002248 RID: 8776 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x170001ED")]
		private float zoomAdd
		{
			[Token(Token = "0x6002248")]
			[Address(RVA = "0x134E210", Offset = "0x134D010", VA = "0x18134E210")]
			get
			{
				throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
			}
		}

		// Token: 0x06002249 RID: 8777 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002249")]
		[Address(RVA = "0x314270", Offset = "0x313070", VA = "0x180314270")]
		private float ClampAngle(float angle, float min, float max)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600224A RID: 8778 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600224A")]
		[Address(RVA = "0x134E150", Offset = "0x134CF50", VA = "0x18134E150")]
		public CameraController()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x04002B88 RID: 11144
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4002B88")]
		public Transform target;

		// Token: 0x04002B89 RID: 11145
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4002B89")]
		public Transform rotationSpace;

		// Token: 0x04002B8A RID: 11146
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4002B8A")]
		public CameraController.UpdateMode updateMode;

		// Token: 0x04002B8B RID: 11147
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x4002B8B")]
		public bool lockCursor;

		// Token: 0x04002B8C RID: 11148
		[FieldOffset(Offset = "0x2D")]
		[Token(Token = "0x4002B8C")]
		public bool smoothFollow;

		// Token: 0x04002B8D RID: 11149
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x4002B8D")]
		public float followSpeed;

		// Token: 0x04002B8E RID: 11150
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x4002B8E")]
		public float distance;

		// Token: 0x04002B8F RID: 11151
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x4002B8F")]
		public float minDistance;

		// Token: 0x04002B90 RID: 11152
		[FieldOffset(Offset = "0x3C")]
		[Token(Token = "0x4002B90")]
		public float maxDistance;

		// Token: 0x04002B91 RID: 11153
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x4002B91")]
		public float zoomSpeed;

		// Token: 0x04002B92 RID: 11154
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4002B92")]
		public float zoomSensitivity;

		// Token: 0x04002B93 RID: 11155
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4002B93")]
		public float rotationSensitivity;

		// Token: 0x04002B94 RID: 11156
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4002B94")]
		public float yMinLimit;

		// Token: 0x04002B95 RID: 11157
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4002B95")]
		public float yMaxLimit;

		// Token: 0x04002B96 RID: 11158
		[FieldOffset(Offset = "0x54")]
		[Token(Token = "0x4002B96")]
		public Vector3 offset;

		// Token: 0x04002B97 RID: 11159
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4002B97")]
		public bool rotateAlways;

		// Token: 0x04002B98 RID: 11160
		[FieldOffset(Offset = "0x61")]
		[Token(Token = "0x4002B98")]
		public bool rotateOnLeftButton;

		// Token: 0x04002B99 RID: 11161
		[FieldOffset(Offset = "0x62")]
		[Token(Token = "0x4002B99")]
		public bool rotateOnRightButton;

		// Token: 0x04002B9A RID: 11162
		[FieldOffset(Offset = "0x63")]
		[Token(Token = "0x4002B9A")]
		public bool rotateOnMiddleButton;

		// Token: 0x04002B9E RID: 11166
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4002B9E")]
		private Vector3 targetDistance;

		// Token: 0x04002B9F RID: 11167
		[FieldOffset(Offset = "0x7C")]
		[Token(Token = "0x4002B9F")]
		private Vector3 position;

		// Token: 0x04002BA0 RID: 11168
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x4002BA0")]
		private Quaternion rotation;

		// Token: 0x04002BA1 RID: 11169
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x4002BA1")]
		private Vector3 smoothPosition;

		// Token: 0x04002BA2 RID: 11170
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4002BA2")]
		private Camera cam;

		// Token: 0x04002BA3 RID: 11171
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x4002BA3")]
		private Quaternion r;

		// Token: 0x04002BA4 RID: 11172
		[FieldOffset(Offset = "0xC0")]
		[Token(Token = "0x4002BA4")]
		private Vector3 lastUp;

		// Token: 0x0200038D RID: 909
		[Token(Token = "0x200038D")]
		[Serializable]
		public enum UpdateMode
		{
			// Token: 0x04002BA6 RID: 11174
			[Token(Token = "0x4002BA6")]
			Update,
			// Token: 0x04002BA7 RID: 11175
			[Token(Token = "0x4002BA7")]
			FixedUpdate,
			// Token: 0x04002BA8 RID: 11176
			[Token(Token = "0x4002BA8")]
			LateUpdate
		}
	}
}
