using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;
using Il2CppSystem.Collections;

namespace Obi
{
	// Token: 0x020004D4 RID: 1236
	public class EditorCoroutine : Object
	{
		// Token: 0x06008E9E RID: 36510 RVA: 0x0024AD20 File Offset: 0x00248F20
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610628, XrefRangeEnd = 610640, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static EditorCoroutine StartCoroutine(IEnumerator _routine)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(_routine);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_StartCoroutine_Public_Static_EditorCoroutine_IEnumerator_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new EditorCoroutine(intPtr3) : null;
			}
		}

		// Token: 0x17003065 RID: 12389
		// (get) Token: 0x06008E9F RID: 36511 RVA: 0x0024AD80 File Offset: 0x00248F80
		public unsafe Object Result
		{
			[CallerCount(10)]
			[CachedScanResults(RefRangeStart = 7233, RefRangeEnd = 7243, XrefRangeStart = 7233, XrefRangeEnd = 7243, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_get_Result_Public_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				IntPtr intPtr3 = intPtr;
				return (intPtr3 != 0) ? new Object(intPtr3) : null;
			}
		}

		// Token: 0x17003066 RID: 12390
		// (get) Token: 0x06008EA0 RID: 36512 RVA: 0x0024ADD8 File Offset: 0x00248FD8
		public unsafe bool IsDone
		{
			[CallerCount(0)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_get_IsDone_Public_get_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008EA1 RID: 36513 RVA: 0x0024AE28 File Offset: 0x00249028
		[CallerCount(124)]
		[CachedScanResults(RefRangeStart = 17067, RefRangeEnd = 17191, XrefRangeStart = 17067, XrefRangeEnd = 17191, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe EditorCoroutine(IEnumerator _routine)
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr))
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(_routine);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr__ctor_Private_Void_IEnumerator_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06008EA2 RID: 36514 RVA: 0x0024AE8C File Offset: 0x0024908C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610640, XrefRangeEnd = 610647, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Start()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_Start_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008EA3 RID: 36515 RVA: 0x0024AED0 File Offset: 0x002490D0
		[CallerCount(0)]
		public unsafe void Stop()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_Stop_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008EA4 RID: 36516 RVA: 0x0024AF14 File Offset: 0x00249114
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 610647, XrefRangeEnd = 610653, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Update()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_Update_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008EA5 RID: 36517 RVA: 0x0024AF58 File Offset: 0x00249158
		[CallerCount(5585)]
		[CachedScanResults(RefRangeStart = 24, RefRangeEnd = 5609, XrefRangeStart = 24, XrefRangeEnd = 5609, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void ShowCoroutineProgressBar(string title, EditorCoroutine coroutine)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.ManagedStringToIl2Cpp(title);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(coroutine);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EditorCoroutine.NativeMethodInfoPtr_ShowCoroutineProgressBar_Public_Static_Void_String_EditorCoroutine_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008EA6 RID: 36518 RVA: 0x0024AFBC File Offset: 0x002491BC
		// Note: this type is marked as 'beforefieldinit'.
		static EditorCoroutine()
		{
			Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "EditorCoroutine");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr);
			EditorCoroutine.NativeFieldInfoPtr_routine = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, "routine");
			EditorCoroutine.NativeFieldInfoPtr_result = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, "result");
			EditorCoroutine.NativeFieldInfoPtr_isDone = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, "isDone");
			EditorCoroutine.NativeMethodInfoPtr_StartCoroutine_Public_Static_EditorCoroutine_IEnumerator_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674332);
			EditorCoroutine.NativeMethodInfoPtr_get_Result_Public_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674333);
			EditorCoroutine.NativeMethodInfoPtr_get_IsDone_Public_get_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674334);
			EditorCoroutine.NativeMethodInfoPtr__ctor_Private_Void_IEnumerator_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674335);
			EditorCoroutine.NativeMethodInfoPtr_Start_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674336);
			EditorCoroutine.NativeMethodInfoPtr_Stop_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674337);
			EditorCoroutine.NativeMethodInfoPtr_Update_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674338);
			EditorCoroutine.NativeMethodInfoPtr_ShowCoroutineProgressBar_Public_Static_Void_String_EditorCoroutine_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EditorCoroutine>.NativeClassPtr, 100674339);
		}

		// Token: 0x06008EA7 RID: 36519 RVA: 0x0000A688 File Offset: 0x00008888
		public EditorCoroutine(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003062 RID: 12386
		// (get) Token: 0x06008EA8 RID: 36520 RVA: 0x0024B0C8 File Offset: 0x002492C8
		// (set) Token: 0x06008EA9 RID: 36521 RVA: 0x0024B0FC File Offset: 0x002492FC
		public unsafe IEnumerator routine
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EditorCoroutine.NativeFieldInfoPtr_routine);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new IEnumerator(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(EditorCoroutine.NativeFieldInfoPtr_routine), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003063 RID: 12387
		// (get) Token: 0x06008EAA RID: 36522 RVA: 0x0024B124 File Offset: 0x00249324
		// (set) Token: 0x06008EAB RID: 36523 RVA: 0x0024B158 File Offset: 0x00249358
		public unsafe Object result
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EditorCoroutine.NativeFieldInfoPtr_result);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Object(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(EditorCoroutine.NativeFieldInfoPtr_result), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003064 RID: 12388
		// (get) Token: 0x06008EAC RID: 36524 RVA: 0x0024B180 File Offset: 0x00249380
		// (set) Token: 0x06008EAD RID: 36525 RVA: 0x0024B1A8 File Offset: 0x002493A8
		public unsafe bool isDone
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EditorCoroutine.NativeFieldInfoPtr_isDone);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EditorCoroutine.NativeFieldInfoPtr_isDone)) = value;
			}
		}

		// Token: 0x04005F0D RID: 24333
		private static readonly IntPtr NativeFieldInfoPtr_routine;

		// Token: 0x04005F0E RID: 24334
		private static readonly IntPtr NativeFieldInfoPtr_result;

		// Token: 0x04005F0F RID: 24335
		private static readonly IntPtr NativeFieldInfoPtr_isDone;

		// Token: 0x04005F10 RID: 24336
		private static readonly IntPtr NativeMethodInfoPtr_StartCoroutine_Public_Static_EditorCoroutine_IEnumerator_0;

		// Token: 0x04005F11 RID: 24337
		private static readonly IntPtr NativeMethodInfoPtr_get_Result_Public_get_Object_0;

		// Token: 0x04005F12 RID: 24338
		private static readonly IntPtr NativeMethodInfoPtr_get_IsDone_Public_get_Boolean_0;

		// Token: 0x04005F13 RID: 24339
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Private_Void_IEnumerator_0;

		// Token: 0x04005F14 RID: 24340
		private static readonly IntPtr NativeMethodInfoPtr_Start_Private_Void_0;

		// Token: 0x04005F15 RID: 24341
		private static readonly IntPtr NativeMethodInfoPtr_Stop_Public_Void_0;

		// Token: 0x04005F16 RID: 24342
		private static readonly IntPtr NativeMethodInfoPtr_Update_Private_Void_0;

		// Token: 0x04005F17 RID: 24343
		private static readonly IntPtr NativeMethodInfoPtr_ShowCoroutineProgressBar_Public_Static_Void_String_EditorCoroutine_0;
	}
}
