using System;
using Cpp2IlInjected;
using DG.Tweening;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

// Token: 0x02000277 RID: 631
[Token(Token = "0x2000277")]
public class UISwitchArrow : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler, IPointerClickHandler
{
	// Token: 0x17000103 RID: 259
	// (get) Token: 0x06001870 RID: 6256 RVA: 0x0003B8CC File Offset: 0x00039ACC
	[Token(Token = "0x17000103")]
	public bool PointerEntered
	{
		[Token(Token = "0x6001870")]
		[Address(RVA = "0xB86CC0", Offset = "0xB85AC0", VA = "0x180B86CC0")]
		get
		{
			return this.pointerEntered;
		}
	}

	// Token: 0x06001871 RID: 6257 RVA: 0x0003B8E0 File Offset: 0x00039AE0
	[Token(Token = "0x6001871")]
	[Address(RVA = "0x417A20", Offset = "0x416820", VA = "0x180417A20")]
	public void BindClickEvent(Action clickedHandler)
	{
		/*
An exception occurred when decompiling this method (06001871)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UISwitchArrow::BindClickEvent(System.Action)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:Action(UISwitchArrow::clickedHandler, ldloc:UISwitchArrow(this), ldloc:Action(clickedHandler)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x06001872 RID: 6258 RVA: 0x0003B8F4 File Offset: 0x00039AF4
	[Token(Token = "0x6001872")]
	[Address(RVA = "0x417B90", Offset = "0x416990", VA = "0x180417B90")]
	public void BindPointerEnterEvent(Action pointerEnterHandler)
	{
		/*
An exception occurred when decompiling this method (06001872)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UISwitchArrow::BindPointerEnterEvent(System.Action)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:Action(UISwitchArrow::pointerEnterHandler, ldloc:UISwitchArrow(this), ldloc:Action(pointerEnterHandler)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x06001873 RID: 6259 RVA: 0x0003B908 File Offset: 0x00039B08
	[Token(Token = "0x6001873")]
	[Address(RVA = "0x18AE340", Offset = "0x18AD140", VA = "0x1818AE340", Slot = "4")]
	public void OnPointerEnter(PointerEventData eventData)
	{
		this.pointerEntered = true;
		if (this.isActive)
		{
			Action action = this.pointerEnterHandler;
			if (action != 0)
			{
				action();
			}
			this.PreformPointerTriggerEffect(1.25f);
			Game.PlayHandlerSE(UIHandlerSFX.Navigation);
			return;
		}
	}

	// Token: 0x06001874 RID: 6260 RVA: 0x0003B948 File Offset: 0x00039B48
	[Token(Token = "0x6001874")]
	[Address(RVA = "0x18AE3D0", Offset = "0x18AD1D0", VA = "0x1818AE3D0", Slot = "5")]
	public void OnPointerExit(PointerEventData eventData)
	{
		this.pointerEntered = false;
		if (this.isActive)
		{
			this.PreformPointerTriggerEffect(1f);
			return;
		}
	}

	// Token: 0x06001875 RID: 6261 RVA: 0x0003B974 File Offset: 0x00039B74
	[Token(Token = "0x6001875")]
	[Address(RVA = "0x18AE320", Offset = "0x18AD120", VA = "0x1818AE320", Slot = "6")]
	public void OnPointerClick(PointerEventData eventData)
	{
		if (this.isActive)
		{
			Action action = this.clickedHandler;
			if (action != 0)
			{
				action();
				return;
			}
		}
	}

	// Token: 0x06001876 RID: 6262 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001876")]
	[Address(RVA = "0x18AE6E0", Offset = "0x18AD4E0", VA = "0x1818AE6E0")]
	public void UpdateActivation(bool enable)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001877 RID: 6263 RVA: 0x0003B99C File Offset: 0x00039B9C
	[Token(Token = "0x6001877")]
	[Address(RVA = "0x18AE5A0", Offset = "0x18AD3A0", VA = "0x1818AE5A0")]
	private void PreformPointerTriggerEffect(float scale)
	{
		/*
An exception occurred when decompiling this method (06001877)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UISwitchArrow::PreformPointerTriggerEffect(System.Single)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	IL_14:; 	stloc:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>(var_2_2D, call:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>(TweenSettingsExtensions::SetEase, call:TweenerCore`3[exp:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>](ShortcutExtensions::DOScale, ldfld:RectTransform[exp:Transform](UISwitchArrow::root, ldloc:UISwitchArrow(this)), ldloc:float32(scale), ldc.r4:float32(0.2)), conv.u4:uint32[exp:Ease](ldc.i4:int32[exp:uint32](15)))); 	stloc:TweenCallback(var_3_3A, newobj:TweenCallback(TweenCallback::.ctor, ldloc:UISwitchArrow[exp:object](this), ldftn:native int(UISwitchArrow::<PreformPointerTriggerEffect>b__16_0))); 	stloc:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>(var_4_47, call:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>(TweenExtensions::Play, call:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>(TweenSettingsExtensions::OnComplete, ldloc:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>(var_2_2D), ldloc:TweenCallback(var_3_3A)))); 	stfld:Tween(UISwitchArrow::pointerEffect, ldloc:UISwitchArrow(this), ldloc:class [DOTween]DG.Tweening.Core.TweenerCore`3<valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [UnityEngine.CoreModule]UnityEngine.Vector3, valuetype [DOTween]DG.Tweening.Plugins.Options.VectorOptions>[exp:Tween](var_4_47)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
	}

	// Token: 0x06001878 RID: 6264 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001878")]
	[Address(RVA = "0x18AE3F0", Offset = "0x18AD1F0", VA = "0x1818AE3F0")]
	public void PerformClickEffect()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001879 RID: 6265 RVA: 0x0003B9FC File Offset: 0x00039BFC
	[Token(Token = "0x6001879")]
	[Address(RVA = "0x18AE800", Offset = "0x18AD600", VA = "0x1818AE800")]
	public UISwitchArrow()
	{
	}

	// Token: 0x04002281 RID: 8833
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4002281")]
	[SerializeField]
	private RectTransform root;

	// Token: 0x04002282 RID: 8834
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4002282")]
	[SerializeField]
	private Image image;

	// Token: 0x04002283 RID: 8835
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4002283")]
	private Tween pointerEffect;

	// Token: 0x04002284 RID: 8836
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4002284")]
	private Tween clickEffect;

	// Token: 0x04002285 RID: 8837
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4002285")]
	private Action clickedHandler;

	// Token: 0x04002286 RID: 8838
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4002286")]
	private Action pointerEnterHandler;

	// Token: 0x04002287 RID: 8839
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x4002287")]
	private bool isActive = true;

	// Token: 0x04002288 RID: 8840
	[FieldOffset(Offset = "0x49")]
	[Token(Token = "0x4002288")]
	private bool pointerEntered;
}
