using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using MarsSDK;
using MEC;
using UnityEngine;

// Token: 0x020002A1 RID: 673
[Token(Token = "0x20002A1")]
public class UIMagicLockController
{
	// Token: 0x060019B0 RID: 6576 RVA: 0x0003E04C File Offset: 0x0003C24C
	[Token(Token = "0x60019B0")]
	[Address(RVA = "0x101C7D0", Offset = "0x101B5D0", VA = "0x18101C7D0")]
	public void InitIceLockSystem(GameObject prefab, Transform poolRoot)
	{
		GameObjectPool<UIMagicLock> gameObjectPool = new GameObjectPool(() => prefab, poolRoot);
		this.iceLockPool = gameObjectPool;
		throw new NullReferenceException();
	}

	// Token: 0x060019B1 RID: 6577 RVA: 0x0003E088 File Offset: 0x0003C288
	[Token(Token = "0x60019B1")]
	[Address(RVA = "0x3F1EE0", Offset = "0x3F0CE0", VA = "0x1803F1EE0")]
	public void InitFireLockSystem(UIMagicLock uiFireLock)
	{
		/*
An exception occurred when decompiling this method (060019B1)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UIMagicLockController::InitFireLockSystem(UIMagicLock)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:UIMagicLock(UIMagicLockController::uiFireLock, ldloc:UIMagicLockController(this), ldloc:UIMagicLock(uiFireLock)); }; 
   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: 0x060019B2 RID: 6578 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019B2")]
	[Address(RVA = "0x101C2B0", Offset = "0x101B0B0", VA = "0x18101C2B0")]
	public void AddIceLockUI(Transform source)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019B3 RID: 6579 RVA: 0x0003E09C File Offset: 0x0003C29C
	[Token(Token = "0x60019B3")]
	[Address(RVA = "0x101C9F0", Offset = "0x101B7F0", VA = "0x18101C9F0")]
	public void RemoveIceLockUI(Transform source)
	{
		UIMagicLock[] activePoolClone = this.iceLockPool.GetActivePoolClone();
		int num = 0;
		int length = activePoolClone.Length;
		if (num < length)
		{
			UIMagicLock uimagicLock = activePoolClone[num];
			if (!uimagicLock.IsSameLockTarget(source))
			{
				num++;
			}
			uimagicLock.Dispose();
			this.iceLockPool.Return(uimagicLock);
		}
	}

	// Token: 0x060019B4 RID: 6580 RVA: 0x0003E0F0 File Offset: 0x0003C2F0
	[Token(Token = "0x60019B4")]
	[Address(RVA = "0x101CB10", Offset = "0x101B910", VA = "0x18101CB10")]
	public void SwapIceLockTarget(Transform oldTarget, Transform newTarget)
	{
		UIMagicLock[] activePoolClone = this.iceLockPool.GetActivePoolClone();
		int num = 0;
		int length = activePoolClone.Length;
		if (num < length)
		{
			UIMagicLock uimagicLock = activePoolClone[num];
			Transform lockTarget = uimagicLock.lockTarget;
			int num2 = 0;
			if (!(lockTarget == num2))
			{
				int instanceID = uimagicLock.lockTarget.GetInstanceID();
				int instanceID2 = oldTarget.GetInstanceID();
				if (instanceID == instanceID2)
				{
					num++;
				}
			}
			uimagicLock.Appear(newTarget);
		}
	}

	// Token: 0x060019B5 RID: 6581 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019B5")]
	[Address(RVA = "0x101C3C0", Offset = "0x101B1C0", VA = "0x18101C3C0")]
	public void ClearAllIceLockUI()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019B6 RID: 6582 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019B6")]
	[Address(RVA = "0x101C1D0", Offset = "0x101AFD0", VA = "0x18101C1D0")]
	public void AddFireLockUI(Transform source)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019B7 RID: 6583 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019B7")]
	[Address(RVA = "0x101C8F0", Offset = "0x101B6F0", VA = "0x18101C8F0")]
	public void RemoveFireLockUI(Transform source)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019B8 RID: 6584 RVA: 0x0003E164 File Offset: 0x0003C364
	[Token(Token = "0x60019B8")]
	[Address(RVA = "0x101CAF0", Offset = "0x101B8F0", VA = "0x18101CAF0")]
	public void SwapFireLockTarget(Transform newTarget)
	{
		this.uiFireLock.Appear(newTarget);
	}

	// Token: 0x060019B9 RID: 6585 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019B9")]
	[Address(RVA = "0x101C4C0", Offset = "0x101B2C0", VA = "0x18101C4C0")]
	public void ClearFireLockUI()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019BA RID: 6586 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019BA")]
	[Address(RVA = "0x101C5A0", Offset = "0x101B3A0", VA = "0x18101C5A0")]
	public void Dispose()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019BB RID: 6587 RVA: 0x0003E184 File Offset: 0x0003C384
	[Token(Token = "0x60019BB")]
	[Address(RVA = "0x3D8B20", Offset = "0x3D7920", VA = "0x1803D8B20")]
	public UIMagicLockController()
	{
	}

	// Token: 0x060019BC RID: 6588 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019BC")]
	[Address(RVA = "0x101CCD0", Offset = "0x101BAD0", VA = "0x18101CCD0")]
	[CompilerGenerated]
	private IEnumerator<float> <AddIceLockUI>g__UpdateIceLockPosition|6_0()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019BD RID: 6589 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019BD")]
	[Address(RVA = "0x101CD40", Offset = "0x101BB40", VA = "0x18101CD40")]
	[CompilerGenerated]
	private IEnumerator<float> <ClearAllIceLockUI>g__RecycleUI|9_0()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019BE RID: 6590 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019BE")]
	[Address(RVA = "0x101CC60", Offset = "0x101BA60", VA = "0x18101CC60")]
	[CompilerGenerated]
	private IEnumerator<float> <AddFireLockUI>g__UpdateFireLockPosition|10_0()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060019BF RID: 6591 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60019BF")]
	[Address(RVA = "0x101CDB0", Offset = "0x101BBB0", VA = "0x18101CDB0")]
	[CompilerGenerated]
	private IEnumerator<float> <ClearFireLockUI>g__RecycleUI|13_0()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x04002366 RID: 9062
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4002366")]
	private GameObjectPool<UIMagicLock> iceLockPool;

	// Token: 0x04002367 RID: 9063
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4002367")]
	private CoroutineHandle iceLockCoroutine;

	// Token: 0x04002368 RID: 9064
	[FieldOffset(Offset = "0x1C")]
	[Token(Token = "0x4002368")]
	private CoroutineHandle fireLockCoroutine;

	// Token: 0x04002369 RID: 9065
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4002369")]
	private UIMagicLock uiFireLock;
}
