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

// Token: 0x0200001E RID: 30
[Token(Token = "0x200001E")]
public class SoundEffectPool : IDisposable
{
	// Token: 0x060000CD RID: 205 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000CD")]
	[Address(RVA = "0x11F8860", Offset = "0x11F7660", VA = "0x1811F8860")]
	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: 0x060000CE RID: 206 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000CE")]
	[Address(RVA = "0x11F8AA0", Offset = "0x11F78A0", VA = "0x1811F8AA0")]
	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: 0x060000CF RID: 207 RVA: 0x00004508 File Offset: 0x00002708
	[Token(Token = "0x60000CF")]
	[Address(RVA = "0x11F8810", Offset = "0x11F7610", VA = "0x1811F8810")]
	public void Update()
	{
		GameObjectPoolLimited<SoundEffect> gameObjectPoolLimited = this.pooledSoundEffects;
		Action<SoundEffect> action = this.soundEffectProcessor;
		gameObjectPoolLimited.ProcessActivePool(action);
	}

	// Token: 0x060000D0 RID: 208 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000D0")]
	[Address(RVA = "0x11F8460", Offset = "0x11F7260", VA = "0x1811F8460")]
	public void NewUse(Vector3 position, Quaternion rotation)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000D1 RID: 209 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000D1")]
	[Address(RVA = "0x11F8560", Offset = "0x11F7360", VA = "0x1811F8560")]
	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: 0x060000D2 RID: 210 RVA: 0x000020D3 File Offset: 0x000002D3
	[Token(Token = "0x60000D2")]
	[Address(RVA = "0x11F8370", Offset = "0x11F7170", VA = "0x1811F8370")]
	public SoundEffect GetNewSoundEffect(Vector3 position, Quaternion rotation)
	{
		throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
	}

	// Token: 0x060000D3 RID: 211 RVA: 0x00004530 File Offset: 0x00002730
	[Token(Token = "0x60000D3")]
	[Address(RVA = "0x11F8680", Offset = "0x11F7480", VA = "0x1811F8680")]
	public void ProcessActiveAll(Action<SoundEffect> processor)
	{
		this.pooledSoundEffects.ProcessActivePool(processor);
	}

	// Token: 0x060000D4 RID: 212 RVA: 0x00004550 File Offset: 0x00002750
	[Token(Token = "0x60000D4")]
	[Address(RVA = "0x11F8320", Offset = "0x11F7120", VA = "0x1811F8320", Slot = "4")]
	public void Dispose()
	{
		this.pooledSoundEffects.Dispose();
	}

	// Token: 0x060000D5 RID: 213 RVA: 0x00004570 File Offset: 0x00002770
	[Token(Token = "0x60000D5")]
	[Address(RVA = "0x11F86E0", Offset = "0x11F74E0", VA = "0x1811F86E0")]
	private void RegisterSoundEffectProcessor()
	{
		/*
An exception occurred when decompiling this method (060000D5)

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: 0x04000126 RID: 294
	[FieldOffset(Offset = "0x10")]
	[Token(Token = "0x4000126")]
	private GameObjectPoolLimited<SoundEffect> pooledSoundEffects;

	// Token: 0x04000127 RID: 295
	[FieldOffset(Offset = "0x18")]
	[Token(Token = "0x4000127")]
	private Action<SoundEffect> soundEffectProcessor;
}
