using System;
using Cpp2IlInjected;
using UnityEngine;

// Token: 0x02000154 RID: 340
[Token(Token = "0x2000154")]
public class Item : PassiveEvent
{
	// Token: 0x06001180 RID: 4480 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001180")]
	[Address(RVA = "0x10E1820", Offset = "0x10E0620", VA = "0x1810E1820", Slot = "5")]
	public override void Init()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001181 RID: 4481 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x6001181")]
	[Address(RVA = "0x10E1A40", Offset = "0x10E0840", VA = "0x1810E1A40", Slot = "6")]
	protected override void Update()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x06001182 RID: 4482 RVA: 0x000282D4 File Offset: 0x000264D4
	[Token(Token = "0x6001182")]
	[Address(RVA = "0x10E19A0", Offset = "0x10E07A0", VA = "0x1810E19A0")]
	private void OnEnable()
	{
		this.g_fFall = 3f;
		Transform transform = this.CheckFloor();
	}

	// Token: 0x06001183 RID: 4483 RVA: 0x000282F4 File Offset: 0x000264F4
	[Token(Token = "0x6001183")]
	[Address(RVA = "0x10E1620", Offset = "0x10E0420", VA = "0x1810E1620")]
	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: 0x06001184 RID: 4484 RVA: 0x0002833C File Offset: 0x0002653C
	[Token(Token = "0x6001184")]
	[Address(RVA = "0x5EA8C0", Offset = "0x5E96C0", VA = "0x1805EA8C0")]
	public void BindReturnHandlerEvent(Action returnHandler)
	{
		/*
An exception occurred when decompiling this method (06001184)

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: 0x06001185 RID: 4485 RVA: 0x00028350 File Offset: 0x00026550
	[Token(Token = "0x6001185")]
	[Address(RVA = "0x58EB10", Offset = "0x58D910", VA = "0x18058EB10")]
	public void SetItemType(ItemSystem.ItemType Type)
	{
		this.currentItemType = Type;
	}

	// Token: 0x06001186 RID: 4486 RVA: 0x00028364 File Offset: 0x00026564
	[Token(Token = "0x6001186")]
	[Address(RVA = "0x44D8B0", Offset = "0x44C6B0", VA = "0x18044D8B0")]
	public ItemSystem.ItemType GetItemType()
	{
		return this.currentItemType;
	}

	// Token: 0x06001187 RID: 4487 RVA: 0x00028378 File Offset: 0x00026578
	[Token(Token = "0x6001187")]
	[Address(RVA = "0x10E1A00", Offset = "0x10E0800", VA = "0x1810E1A00")]
	public void SetCanSave(bool bSave)
	{
		this.g_bCanSave = bSave;
	}

	// Token: 0x06001188 RID: 4488 RVA: 0x0002838C File Offset: 0x0002658C
	[Token(Token = "0x6001188")]
	[Address(RVA = "0x963930", Offset = "0x962730", VA = "0x180963930")]
	public bool GetCanSave()
	{
		return this.g_bCanSave;
	}

	// Token: 0x06001189 RID: 4489 RVA: 0x000283A0 File Offset: 0x000265A0
	[Token(Token = "0x6001189")]
	[Address(RVA = "0x10E1A10", Offset = "0x10E0810", VA = "0x1810E1A10")]
	public void SetDiscard(bool bDiscard)
	{
		this.g_bDiscard = bDiscard;
		this.boxCollider.enabled = bDiscard;
	}

	// Token: 0x0600118A RID: 4490 RVA: 0x000283C8 File Offset: 0x000265C8
	[Token(Token = "0x600118A")]
	[Address(RVA = "0x10E19B0", Offset = "0x10E07B0", VA = "0x1810E19B0")]
	public void PickUp()
	{
		GameObject gameObject = base.gameObject;
		int num = 0;
		gameObject.SetActive(num != 0);
		Action action = this.returnHandler;
		if (action != 0)
		{
			action();
			return;
		}
	}

	// Token: 0x0600118B RID: 4491 RVA: 0x00028400 File Offset: 0x00026600
	[Token(Token = "0x600118B")]
	[Address(RVA = "0x10E19B0", Offset = "0x10E07B0", VA = "0x1810E19B0")]
	private void ReturnItem()
	{
		GameObject gameObject = base.gameObject;
		int num = 0;
		gameObject.SetActive(num != 0);
		Action action = this.returnHandler;
		if (action != 0)
		{
			action();
			return;
		}
	}

	// Token: 0x0600118C RID: 4492 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x600118C")]
	[Address(RVA = "0x10E1680", Offset = "0x10E0480", VA = "0x1810E1680")]
	public Transform CheckFloor()
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x0600118D RID: 4493 RVA: 0x00028438 File Offset: 0x00026638
	[Token(Token = "0x600118D")]
	[Address(RVA = "0x468190", Offset = "0x466F90", VA = "0x180468190")]
	public float GetUseItem()
	{
		return this.g_fUseTime;
	}

	// Token: 0x0600118E RID: 4494 RVA: 0x0002844C File Offset: 0x0002664C
	[Token(Token = "0x600118E")]
	[Address(RVA = "0x94F220", Offset = "0x94E020", VA = "0x18094F220")]
	public void SetAliveTime(float time)
	{
		this.aliveTime = time;
	}

	// Token: 0x0600118F RID: 4495 RVA: 0x00028460 File Offset: 0x00026660
	[Token(Token = "0x600118F")]
	[Address(RVA = "0x6FE370", Offset = "0x6FD170", VA = "0x1806FE370")]
	public void SetPropertyID(int ID)
	{
		this.g_iPropertyID = ID;
	}

	// Token: 0x06001190 RID: 4496 RVA: 0x00028474 File Offset: 0x00026674
	[Token(Token = "0x6001190")]
	[Address(RVA = "0x6EB330", Offset = "0x6EA130", VA = "0x1806EB330")]
	public int GetPropertyID()
	{
		return this.g_iPropertyID;
	}

	// Token: 0x06001191 RID: 4497 RVA: 0x00028488 File Offset: 0x00026688
	[Token(Token = "0x6001191")]
	[Address(RVA = "0x10E21F0", Offset = "0x10E0FF0", VA = "0x1810E21F0")]
	public Item()
	{
	}

	// Token: 0x04001B4F RID: 6991
	[FieldOffset(Offset = "0x20")]
	[Token(Token = "0x4001B4F")]
	private ItemSystem g_IM;

	// Token: 0x04001B50 RID: 6992
	[FieldOffset(Offset = "0x28")]
	[Token(Token = "0x4001B50")]
	public Transform ItemObject;

	// Token: 0x04001B51 RID: 6993
	[FieldOffset(Offset = "0x30")]
	[Token(Token = "0x4001B51")]
	private ItemSystem.ItemType currentItemType;

	// Token: 0x04001B52 RID: 6994
	[FieldOffset(Offset = "0x38")]
	[Token(Token = "0x4001B52")]
	private BoxCollider boxCollider;

	// Token: 0x04001B53 RID: 6995
	[FieldOffset(Offset = "0x40")]
	[Token(Token = "0x4001B53")]
	private bool g_bFall;

	// Token: 0x04001B54 RID: 6996
	[Token(Token = "0x4001B54")]
	private const float g_fGravity = 20f;

	// Token: 0x04001B55 RID: 6997
	[Token(Token = "0x4001B55")]
	private const float g_fFallMax = -10f;

	// Token: 0x04001B56 RID: 6998
	[FieldOffset(Offset = "0x44")]
	[Token(Token = "0x4001B56")]
	private float g_fFall;

	// Token: 0x04001B57 RID: 6999
	[FieldOffset(Offset = "0x48")]
	[Token(Token = "0x4001B57")]
	private float g_fFloorY;

	// Token: 0x04001B58 RID: 7000
	[FieldOffset(Offset = "0x4C")]
	[Token(Token = "0x4001B58")]
	private float g_fRotateSpeed = 100f;

	// Token: 0x04001B59 RID: 7001
	[FieldOffset(Offset = "0x50")]
	[Token(Token = "0x4001B59")]
	public float g_fUseTime = 1f;

	// Token: 0x04001B5A RID: 7002
	[FieldOffset(Offset = "0x54")]
	[Token(Token = "0x4001B5A")]
	private float aliveTime;

	// Token: 0x04001B5B RID: 7003
	[FieldOffset(Offset = "0x58")]
	[Token(Token = "0x4001B5B")]
	private LayerMask g_FloorMask;

	// Token: 0x04001B5C RID: 7004
	[FieldOffset(Offset = "0x5C")]
	[Token(Token = "0x4001B5C")]
	private bool g_bDiscard;

	// Token: 0x04001B5D RID: 7005
	[FieldOffset(Offset = "0x5D")]
	[Token(Token = "0x4001B5D")]
	private bool g_bCanSave;

	// Token: 0x04001B5E RID: 7006
	[FieldOffset(Offset = "0x60")]
	[Token(Token = "0x4001B5E")]
	private int g_iPropertyID = (int)((ulong)4294967295L);

	// Token: 0x04001B5F RID: 7007
	[FieldOffset(Offset = "0x68")]
	[Token(Token = "0x4001B5F")]
	private Action returnHandler;
}
