using System;
using System.Collections.Generic;
using System.IO;
using Cpp2IlInjected;

namespace MarsSDK
{
	// Token: 0x02000642 RID: 1602
	[Token(Token = "0x2000642")]
	public class StandaloneFileSystem : IFileSystem
	{
		// Token: 0x06003287 RID: 12935 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003287")]
		[Address(RVA = "0x985450", Offset = "0x984450", VA = "0x180985450")]
		public StandaloneFileSystem(IReadOnlyList<string> dataPathGroups, string dataExtension = ".dat")
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06003288 RID: 12936 RVA: 0x0006CB84 File Offset: 0x0006AD84
		[Token(Token = "0x6003288")]
		[Address(RVA = "0x985230", Offset = "0x984230", VA = "0x180985230", Slot = "4")]
		public bool HasFile(int fileGroup, string dataName)
		{
			return File.Exists(this.GetFilePath(fileGroup, dataName));
		}

		// Token: 0x06003289 RID: 12937 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6003289")]
		[Address(RVA = "0x985310", Offset = "0x984310", VA = "0x180985310", Slot = "5")]
		public WriteFileResult WriteFile(int fileGroup, string dataName, byte[] data)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600328A RID: 12938 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600328A")]
		[Address(RVA = "0x985250", Offset = "0x984250", VA = "0x180985250", Slot = "6")]
		public ReadFileResult ReadFile(int fileGroup, string dataName, out byte[] data)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600328B RID: 12939 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x600328B")]
		[Address(RVA = "0x9850E0", Offset = "0x9840E0", VA = "0x1809850E0", Slot = "7")]
		public void DeleteFile(int fileGroup, string dataName)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x0600328C RID: 12940 RVA: 0x0006CBA0 File Offset: 0x0006ADA0
		[Token(Token = "0x600328C")]
		[Address(RVA = "0x985180", Offset = "0x984180", VA = "0x180985180")]
		private string GetFilePath(int fileGroup, string fileName)
		{
			string[] array = this.pathGroups;
			string text = this.dataExtension;
			string text2 = array[fileGroup];
			string text3 = fileName + text;
			return Path.Combine(text2, text3);
		}

		// Token: 0x04003CEE RID: 15598
		[FieldOffset(Offset = "0x10")]
		[Token(Token = "0x4003CEE")]
		private readonly string dataExtension;

		// Token: 0x04003CEF RID: 15599
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003CEF")]
		private readonly string[] pathGroups;
	}
}
