using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x02000180 RID: 384
[Token(Token = "0x2000180")]
public class Item : PassiveEvent
{
	// Token: 0x060012F8 RID: 4856 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F8")]
	[Address(RVA = "0x10516A0", Offset = "0x10506A0", VA = "0x1810516A0", Slot = "5")]
	public override void Init()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012F9 RID: 4857 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60012F9")]
	[Address(RVA = "0x10518B0", Offset = "0x10508B0", VA = "0x1810518B0", Slot = "6")]
	protected override void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060012FA RID: 4858 RVA: 0x0002B0EC File Offset: 0x000292EC
	[Token(Token = "0x60012FA")]
	[Address(RVA = "0x1051820", Offset = "0x1050820", VA = "0x181051820")]
	private void OnEnable()
	{
		this.g_fFall = 3f;
		Transform transform = this.CheckFloor();
	}

	// Token: 0x060012FB RID: 4859 RVA: 0x0002B10C File Offset: 0x0002930C
	[Token(Token = "0x60012FB")]
	[Address(RVA = "0x10513F0", Offset = "0x10503F0", VA = "0x1810513F0")]
	private void CheckAliveTime(float deltaTime)
	{
		float num = this.aliveTime;
		if (0 < (int)num)
		{
			this.aliveTime = num;
			GameObject gameObject = base.gameObject;
			int num2 = 0;
			gameObject.SetActive(num2 != 0);
			Action action = this.returnHandler;
			if (action != 0)
			{
				action();
				return;
			}
		}
	}

	// Token: 0x060012FC RID: 4860 RVA: 0x0002B154 File Offset: 0x00029354
	[Token(Token = "0x60012FC")]
	[Address(RVA = "0x5E87F0", Offset = "0x5E77F0", VA = "0x1805E87F0")]
	public void BindReturnHandlerEvent(Action returnHandler)
	{
		/*
An exception occurred when decompiling this method (060012FC)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Item::BindReturnHandlerEvent(System.Action)

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stfld:Action(Item::returnHandler, ldloc:Item(this), ldloc:Action(returnHandler)); }; 
   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: 0x060012FD RID: 4861 RVA: 0x0002B168 File Offset: 0x00029368
	[Token(Token = "0x60012FD")]
	[Address(RVA = "0x5A0D70", Offset = "0x59FD70", VA = "0x1805A0D70")]
	public void SetItemType(ItemSystem.ItemType Type)
	{
		this.currentItemType = Type;
	}

	// Token: 0x060012FE RID: 4862 RVA: 0x0002B17C File Offset: 0x0002937C
	[Token(Token = "0x60012FE")]
	[Address(RVA = "0x492140", Offset = "0x491140", VA = "0x180492140")]
	public ItemSystem.ItemType GetItemType()
	{
		return this.currentItemType;
	}

	// Token: 0x060012FF RID: 4863 RVA: 0x0002B190 File Offset: 0x00029390
	[Token(Token = "0x60012FF")]
	[Address(RVA = "0xF19F00", Offset = "0xF18F00", VA = "0x180F19F00")]
	public void SetCanSave(bool bSave)
	{
		this.g_bCanSave = bSave;
	}

	// Token: 0x06001300 RID: 4864 RVA: 0x0002B1A4 File Offset: 0x000293A4
	[Token(Token = "0x6001300")]
	[Address(RVA = "0xA0DC50", Offset = "0xA0CC50", VA = "0x180A0DC50")]
	public bool GetCanSave()
	{
		return this.g_bCanSave;
	}

	// Token: 0x06001301 RID: 4865 RVA: 0x0002B1B8 File Offset: 0x000293B8
	[Token(Token = "0x6001301")]
	[Address(RVA = "0x1051880", Offset = "0x1050880", VA = "0x181051880")]
	public void SetDiscard(bool bDiscard)
	{
		this.g_bDiscard = bDiscard;
		this.boxCollider.enabled = bDiscard;
	}

	// Token: 0x06001302 RID: 4866 RVA: 0x0002B1E0 File Offset: 0x000293E0
	[Token(Token = "0x6001302")]
	[Address(RVA = "0x1051830", Offset = "0x1050830", VA = "0x181051830")]
	public void PickUp()
	{
		GameObject gameObject = base.gameObject;
		int num = 0;
		gameObject.SetActive(num != 0);
		Action action = this.returnHandler;
		if (action != 0)
		{
			action();
			return;
		}
	}

	// Token: 0x06001303 RID: 4867 RVA: 0x0002B218 File Offset: 0x00029418
	[Token(Token = "0x6001303")]
	[Address(RVA = "0x1051830", Offset = "0x1050830", VA = "0x181051830")]
	private void ReturnItem()
	{
		GameObject gameObject = base.gameObject;
		int num = 0;
		gameObject.SetActive(num != 0);
		Action action = this.returnHandler;
		if (action != 0)
		{
			action();
			return;
		}
	}

	// Token: 0x06001304 RID: 4868 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001304")]
	[Address(RVA = "0x1051450", Offset = "0x1050450", VA = "0x181051450")]
	public Transform CheckFloor()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001305 RID: 4869 RVA: 0x0002B250 File Offset: 0x00029450
	[Token(Token = "0x6001305")]
	[Address(RVA = "0x4C3B40", Offset = "0x4C2B40", VA = "0x1804C3B40")]
	public float GetUseItem()
	{
		return this.g_fUseTime;
	}

	// Token: 0x06001306 RID: 4870 RVA: 0x0002B264 File Offset: 0x00029464
	[Token(Token = "0x6001306")]
	[Address(RVA = "0x9F9550", Offset = "0x9F8550", VA = "0x1809F9550")]
	public void SetAliveTime(float time)
	{
		this.aliveTime = time;
	}

	// Token: 0x06001307 RID: 4871 RVA: 0x0002B278 File Offset: 0x00029478
	[Token(Token = "0x6001307")]
	[Address(RVA = "0x7720B0", Offset = "0x7710B0", VA = "0x1807720B0")]
	public void SetPropertyID(int ID)
	{
		this.g_iPropertyID = ID;
	}

	// Token: 0x06001308 RID: 4872 RVA: 0x0002B28C File Offset: 0x0002948C
	[Token(Token = "0x6001308")]
	[Address(RVA = "0x75F090", Offset = "0x75E090", VA = "0x18075F090")]
	public int GetPropertyID()
	{
		return this.g_iPropertyID;
	}

	// Token: 0x06001309 RID: 4873 RVA: 0x0002B2A0 File Offset: 0x000294A0
	[Token(Token = "0x6001309")]
	[Address(RVA = "0x1052110", Offset = "0x1051110", VA = "0x181052110")]
	public Item()
	{
	}

	// Token: 0x04001CC1 RID: 7361
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4001CC1")]
	private ItemSystem g_IM;

	// Token: 0x04001CC2 RID: 7362
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4001CC2")]
	public Transform ItemObject;

	// Token: 0x04001CC3 RID: 7363
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4001CC3")]
	private ItemSystem.ItemType currentItemType;

	// Token: 0x04001CC4 RID: 7364
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4001CC4")]
	private BoxCollider boxCollider;

	// Token: 0x04001CC5 RID: 7365
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4001CC5")]
	private bool g_bFall;

	// Token: 0x04001CC6 RID: 7366
	[Token(Token = "0x4001CC6")]
	private const float g_fGravity = 20f;

	// Token: 0x04001CC7 RID: 7367
	[Token(Token = "0x4001CC7")]
	private const float g_fFallMax = -10f;

	// Token: 0x04001CC8 RID: 7368
	[FieldOffset(Offset = "0x44")]
	[Token(Token = "0x4001CC8")]
	private float g_fFall;

	// Token: 0x04001CC9 RID: 7369
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x4001CC9")]
	private float g_fFloorY;

	// Token: 0x04001CCA RID: 7370
	[FieldOffset(Offset = "0x4C")]
	[Token(Token = "0x4001CCA")]
	private float g_fRotateSpeed = 100f;

	// Token: 0x04001CCB RID: 7371
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x4001CCB")]
	public float g_fUseTime = 1f;

	// Token: 0x04001CCC RID: 7372
	[FieldOffset(Offset = "0x54")]
	[Token(Token = "0x4001CCC")]
	private float aliveTime;

	// Token: 0x04001CCD RID: 7373
	[FieldOffset(Offset = "0x58")]
	[Token(Token = "0x4001CCD")]
	private LayerMask g_FloorMask;

	// Token: 0x04001CCE RID: 7374
	[FieldOffset(Offset = "0x5C")]
	[Token(Token = "0x4001CCE")]
	private bool g_bTagMoveFloor;

	// Token: 0x04001CCF RID: 7375
	[FieldOffset(Offset = "0x5D")]
	[Token(Token = "0x4001CCF")]
	private bool g_bDiscard;

	// Token: 0x04001CD0 RID: 7376
	[FieldOffset(Offset = "0x5E")]
	[Token(Token = "0x4001CD0")]
	private bool g_bCanSave;

	// Token: 0x04001CD1 RID: 7377
	[FieldOffset(Offset = "0x60")]
	[Token(Token = "0x4001CD1")]
	private int g_iPropertyID = (int)((ulong)4294967295L);

	// Token: 0x04001CD2 RID: 7378
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x4001CD2")]
	private Action returnHandler;
}
