using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x020002CA RID: 714
[Token(Token = "0x20002CA")]
[CreateAssetMenu]
public sealed class GameCursor : ScriptableObject
{
	// Token: 0x17000117 RID: 279
	// (get) Token: 0x06001AD5 RID: 6869 RVA: 0x00041938 File Offset: 0x0003FB38
	[Token(Token = "0x17000117")]
	public Texture2D Icon
	{
		[Token(Token = "0x6001AD5")]
		[Address(RVA = "0x2EF530", Offset = "0x2EE530", VA = "0x1802EF530")]
		get
		{
			return this.cursorIcon;
		}
	}

	// Token: 0x17000118 RID: 280
	// (get) Token: 0x06001AD6 RID: 6870 RVA: 0x0004194C File Offset: 0x0003FB4C
	// (set) Token: 0x06001AD7 RID: 6871 RVA: 0x00041960 File Offset: 0x0003FB60
	[Token(Token = "0x17000118")]
	public bool IsVisible
	{
		[Token(Token = "0x6001AD6")]
		[Address(RVA = "0x36FF60", Offset = "0x36EF60", VA = "0x18036FF60")]
		get
		{
			return this.cursorVisible;
		}
		[Token(Token = "0x6001AD7")]
		[Address(RVA = "0x36FF80", Offset = "0x36EF80", VA = "0x18036FF80")]
		private set
		{
			this.cursorVisible = value;
			Cursor.visible = value;
		}
	}

	// Token: 0x17000119 RID: 281
	// (get) Token: 0x06001AD8 RID: 6872 RVA: 0x0004197C File Offset: 0x0003FB7C
	// (set) Token: 0x06001AD9 RID: 6873 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x17000119")]
	public CursorLockMode LockState
	{
		[Token(Token = "0x6001AD8")]
		[Address(RVA = "0x36FF70", Offset = "0x36EF70", VA = "0x18036FF70")]
		get
		{
			return this.cursorLockState;
		}
		[Token(Token = "0x6001AD9")]
		[Address(RVA = "0x36FF90", Offset = "0x36EF90", VA = "0x18036FF90")]
		private set
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}
	}

	// Token: 0x06001ADA RID: 6874 RVA: 0x00041990 File Offset: 0x0003FB90
	[Token(Token = "0x6001ADA")]
	[Address(RVA = "0x36FD90", Offset = "0x36ED90", VA = "0x18036FD90")]
	public void Init(bool isVisible)
	{
		this.UpdateCursorState(isVisible);
	}

	// Token: 0x06001ADB RID: 6875 RVA: 0x000419A4 File Offset: 0x0003FBA4
	[Token(Token = "0x6001ADB")]
	[Address(RVA = "0x36FDB0", Offset = "0x36EDB0", VA = "0x18036FDB0")]
	public void UpdateCursorIcon()
	{
		Texture2D texture2D = this.cursorIcon;
		Vector2 zero = Vector2.zero;
		int num = 0;
		Cursor.SetCursor(texture2D, zero, (CursorMode)num);
	}

	// Token: 0x06001ADC RID: 6876 RVA: 0x000419CC File Offset: 0x0003FBCC
	[Token(Token = "0x6001ADC")]
	[Address(RVA = "0x36FDA0", Offset = "0x36EDA0", VA = "0x18036FDA0")]
	public void TryUpdateState(bool isVisible)
	{
		if (this.cursorVisible != isVisible)
		{
			this.UpdateCursorState(isVisible);
			return;
		}
	}

	// Token: 0x06001ADD RID: 6877 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001ADD")]
	[Address(RVA = "0x36FDE0", Offset = "0x36EDE0", VA = "0x18036FDE0")]
	private void UpdateCursorState(bool isVisible)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001ADE RID: 6878 RVA: 0x000419EC File Offset: 0x0003FBEC
	[Token(Token = "0x6001ADE")]
	[Address(RVA = "0x369E20", Offset = "0x368E20", VA = "0x180369E20")]
	public GameCursor()
	{
	}

	// Token: 0x040024FC RID: 9468
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x40024FC")]
	[SerializeField]
	private Texture2D cursorIcon;

	// Token: 0x040024FD RID: 9469
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x40024FD")]
	[SerializeField]
	private bool cursorVisible;

	// Token: 0x040024FE RID: 9470
	[FieldOffset(Offset = "0x24")]
	[Token(Token = "0x40024FE")]
	[SerializeField]
	private CursorLockMode cursorLockState;
}
