using System;
using Cpp2IlInjected;
using MarsSDK;
using UnityEngine;

// Token: 0x0200001F RID: 31
[Token(Token = "0x200001F")]
public class SoundEffectPool : IDisposable
{
	// Token: 0x060000CE RID: 206 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000CE")]
	[Address(RVA = "0x1466810", Offset = "0x1465810", VA = "0x181466810")]
	public SoundEffectPool(string soundEffectName, string rootPath, Transform root, int size, bool affectTimeScale = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000CF RID: 207 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000CF")]
	[Address(RVA = "0x1466A50", Offset = "0x1465A50", VA = "0x181466A50")]
	public SoundEffectPool(GameObject soundEffectObj, Transform root, int size, bool affectTimeScale = true)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000D0 RID: 208 RVA: 0x0000448C File Offset: 0x0000268C
	[Token(Token = "0x60000D0")]
	[Address(RVA = "0x14667C0", Offset = "0x14657C0", VA = "0x1814667C0")]
	public void Update()
	{
		GameObjectPoolLimited<SoundEffect> gameObjectPoolLimited = this.pooledSoundEffects;
		Action<SoundEffect> action = this.soundEffectProcessor;
		gameObjectPoolLimited.ProcessActivePool(action);
	}

	// Token: 0x060000D1 RID: 209 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000D1")]
	[Address(RVA = "0x1466410", Offset = "0x1465410", VA = "0x181466410")]
	public void NewUse(Vector3 position, Quaternion rotation)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000D2 RID: 210 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000D2")]
	[Address(RVA = "0x1466510", Offset = "0x1465510", VA = "0x181466510")]
	public void NewUse(Vector3 position, Quaternion rotation, int clipIndex, float volume = 1f, float pitch = 1f)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000D3 RID: 211 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000D3")]
	[Address(RVA = "0x1466320", Offset = "0x1465320", VA = "0x181466320")]
	public SoundEffect GetNewSoundEffect(Vector3 position, Quaternion rotation)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000D4 RID: 212 RVA: 0x000044B4 File Offset: 0x000026B4
	[Token(Token = "0x60000D4")]
	[Address(RVA = "0x1466630", Offset = "0x1465630", VA = "0x181466630")]
	public void ProcessActiveAll(Action<SoundEffect> processor)
	{
		this.pooledSoundEffects.ProcessActivePool(processor);
	}

	// Token: 0x060000D5 RID: 213 RVA: 0x000044D4 File Offset: 0x000026D4
	[Token(Token = "0x60000D5")]
	[Address(RVA = "0x14662D0", Offset = "0x14652D0", VA = "0x1814662D0", Slot = "4")]
	public void Dispose()
	{
		this.pooledSoundEffects.Dispose();
	}

	// Token: 0x060000D6 RID: 214 RVA: 0x000044F4 File Offset: 0x000026F4
	[Token(Token = "0x60000D6")]
	[Address(RVA = "0x1466690", Offset = "0x1465690", VA = "0x181466690")]
	private void RegisterSoundEffectProcessor()
	{
		/*
An exception occurred when decompiling this method (060000D6)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void SoundEffectPool::RegisterSoundEffectProcessor()

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stloc:class [mscorlib]System.Action`1<class SoundEffect>(var_0_0C, newobj:Action`1[exp:class [mscorlib]System.Action`1<class SoundEffect>](Action`1::.ctor, ldloc:SoundEffectPool[exp:object](this), ldftn:native int(SoundEffectPool::<RegisterSoundEffectProcessor>b__10_0))); 	stfld:class [mscorlib]System.Action`1<class SoundEffect>(SoundEffectPool::soundEffectProcessor, ldloc:SoundEffectPool(this), ldloc:class [mscorlib]System.Action`1<class SoundEffect>(var_0_0C)); }; 
   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: 0x0400012B RID: 299
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x400012B")]
	private GameObjectPoolLimited<SoundEffect> pooledSoundEffects;

	// Token: 0x0400012C RID: 300
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x400012C")]
	private Action<SoundEffect> soundEffectProcessor;
}
