using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections;
using Il2CppSystem.Collections.Generic;
using UnityEngine;

namespace MTAssets.UltimateLODSystem
{
	// Token: 0x02000674 RID: 1652
	public class UltimateLevelOfDetailOptimizer : MonoBehaviour
	{
		// Token: 0x0600A892 RID: 43154 RVA: 0x002B3298 File Offset: 0x002B1498
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656584, XrefRangeEnd = 656591, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Awake()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_Awake_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A893 RID: 43155 RVA: 0x002B32DC File Offset: 0x002B14DC
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 656611, RefRangeEnd = 656613, XrefRangeStart = 656591, XrefRangeEnd = 656611, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe bool isThisUlodPresentOnUlodsToBeIgnored(UltimateLevelOfDetail ulod)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(ulod);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_isThisUlodPresentOnUlodsToBeIgnored_Private_Boolean_UltimateLevelOfDetail_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x0600A894 RID: 43156 RVA: 0x002B3344 File Offset: 0x002B1544
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656613, XrefRangeEnd = 656618, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe IEnumerator UlodOptimizationLoop()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_UlodOptimizationLoop_Private_IEnumerator_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new IEnumerator(intPtr3) : null;
		}

		// Token: 0x0600A895 RID: 43157 RVA: 0x002B339C File Offset: 0x002B159C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656618, XrefRangeEnd = 656639, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe UltimateLevelOfDetailOptimizer()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A896 RID: 43158 RVA: 0x002B33E8 File Offset: 0x002B15E8
		// Note: this type is marked as 'beforefieldinit'.
		static UltimateLevelOfDetailOptimizer()
		{
			Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem", "UltimateLevelOfDetailOptimizer");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr);
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "DELAY_BETWEEN_OPTIMIZATION_UPDATES");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "ADITIONAL_CULLING_DISTANCE_OFFSET");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_runtimeInstancesDetector = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "runtimeInstancesDetector");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_instructionsToMakeOnUlods = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "instructionsToMakeOnUlods");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_enableOptimizationTasks = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "enableOptimizationTasks");
			UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ulodsToBeIgnored = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "ulodsToBeIgnored");
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_Awake_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100676342);
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_isThisUlodPresentOnUlodsToBeIgnored_Private_Boolean_UltimateLevelOfDetail_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100676343);
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr_UlodOptimizationLoop_Private_IEnumerator_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100676344);
			UltimateLevelOfDetailOptimizer.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, 100676345);
		}

		// Token: 0x0600A897 RID: 43159 RVA: 0x0000351C File Offset: 0x0000171C
		public UltimateLevelOfDetailOptimizer(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170038F9 RID: 14585
		// (get) Token: 0x0600A898 RID: 43160 RVA: 0x002B34F4 File Offset: 0x002B16F4
		// (set) Token: 0x0600A899 RID: 43161 RVA: 0x002B3528 File Offset: 0x002B1728
		public unsafe WaitForSecondsRealtime DELAY_BETWEEN_OPTIMIZATION_UPDATES
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new WaitForSecondsRealtime(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170038FA RID: 14586
		// (get) Token: 0x0600A89A RID: 43162 RVA: 0x002B3550 File Offset: 0x002B1750
		// (set) Token: 0x0600A89B RID: 43163 RVA: 0x002B3584 File Offset: 0x002B1784
		public unsafe WaitForSecondsRealtime DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new WaitForSecondsRealtime(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170038FB RID: 14587
		// (get) Token: 0x0600A89C RID: 43164 RVA: 0x002B35AC File Offset: 0x002B17AC
		// (set) Token: 0x0600A89D RID: 43165 RVA: 0x002B35D4 File Offset: 0x002B17D4
		public unsafe float ADITIONAL_CULLING_DISTANCE_OFFSET
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET)) = value;
			}
		}

		// Token: 0x170038FC RID: 14588
		// (get) Token: 0x0600A89E RID: 43166 RVA: 0x002B35F8 File Offset: 0x002B17F8
		// (set) Token: 0x0600A89F RID: 43167 RVA: 0x002B362C File Offset: 0x002B182C
		public unsafe RuntimeInstancesDetector runtimeInstancesDetector
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_runtimeInstancesDetector);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new RuntimeInstancesDetector(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_runtimeInstancesDetector), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170038FD RID: 14589
		// (get) Token: 0x0600A8A0 RID: 43168 RVA: 0x002B3654 File Offset: 0x002B1854
		// (set) Token: 0x0600A8A1 RID: 43169 RVA: 0x002B3688 File Offset: 0x002B1888
		public unsafe Il2CppStructArray<int> instructionsToMakeOnUlods
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_instructionsToMakeOnUlods);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppStructArray<int>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_instructionsToMakeOnUlods), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170038FE RID: 14590
		// (get) Token: 0x0600A8A2 RID: 43170 RVA: 0x002B36B0 File Offset: 0x002B18B0
		// (set) Token: 0x0600A8A3 RID: 43171 RVA: 0x002B36D8 File Offset: 0x002B18D8
		public unsafe bool enableOptimizationTasks
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_enableOptimizationTasks);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_enableOptimizationTasks)) = value;
			}
		}

		// Token: 0x170038FF RID: 14591
		// (get) Token: 0x0600A8A4 RID: 43172 RVA: 0x002B36FC File Offset: 0x002B18FC
		// (set) Token: 0x0600A8A5 RID: 43173 RVA: 0x002B3730 File Offset: 0x002B1930
		public unsafe List<UltimateLevelOfDetail> ulodsToBeIgnored
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ulodsToBeIgnored);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<UltimateLevelOfDetail>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer.NativeFieldInfoPtr_ulodsToBeIgnored), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x040070FB RID: 28923
		private static readonly IntPtr NativeFieldInfoPtr_DELAY_BETWEEN_OPTIMIZATION_UPDATES;

		// Token: 0x040070FC RID: 28924
		private static readonly IntPtr NativeFieldInfoPtr_DELAY_BETWEEN_GAMEOBJECTS_STATE_CHANGE;

		// Token: 0x040070FD RID: 28925
		private static readonly IntPtr NativeFieldInfoPtr_ADITIONAL_CULLING_DISTANCE_OFFSET;

		// Token: 0x040070FE RID: 28926
		private static readonly IntPtr NativeFieldInfoPtr_runtimeInstancesDetector;

		// Token: 0x040070FF RID: 28927
		private static readonly IntPtr NativeFieldInfoPtr_instructionsToMakeOnUlods;

		// Token: 0x04007100 RID: 28928
		private static readonly IntPtr NativeFieldInfoPtr_enableOptimizationTasks;

		// Token: 0x04007101 RID: 28929
		private static readonly IntPtr NativeFieldInfoPtr_ulodsToBeIgnored;

		// Token: 0x04007102 RID: 28930
		private static readonly IntPtr NativeMethodInfoPtr_Awake_Public_Void_0;

		// Token: 0x04007103 RID: 28931
		private static readonly IntPtr NativeMethodInfoPtr_isThisUlodPresentOnUlodsToBeIgnored_Private_Boolean_UltimateLevelOfDetail_0;

		// Token: 0x04007104 RID: 28932
		private static readonly IntPtr NativeMethodInfoPtr_UlodOptimizationLoop_Private_IEnumerator_0;

		// Token: 0x04007105 RID: 28933
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000675 RID: 1653
		[ObfuscatedName("MTAssets.UltimateLODSystem.UltimateLevelOfDetailOptimizer/<UlodOptimizationLoop>d__9")]
		public sealed class _UlodOptimizationLoop_d__9 : Il2CppSystem.Object
		{
			// Token: 0x0600A8A6 RID: 43174 RVA: 0x002B3758 File Offset: 0x002B1958
			[CallerCount(350)]
			[CachedScanResults(RefRangeStart = 11975, RefRangeEnd = 12325, XrefRangeStart = 11975, XrefRangeEnd = 12325, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe _UlodOptimizationLoop_d__9(int <>1__state)
				: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr))
			{
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref <>1__state;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr__ctor_Public_Void_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}

			// Token: 0x0600A8A7 RID: 43175 RVA: 0x002B37B8 File Offset: 0x002B19B8
			[CallerCount(1)]
			[CachedScanResults(RefRangeStart = 656482, RefRangeEnd = 656483, XrefRangeStart = 656478, XrefRangeEnd = 656482, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_IDisposable_Dispose()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x0600A8A8 RID: 43176 RVA: 0x002B37FC File Offset: 0x002B19FC
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656483, XrefRangeEnd = 656576, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe bool MoveNext()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}

			// Token: 0x0600A8A9 RID: 43177 RVA: 0x002B384C File Offset: 0x002B1A4C
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656576, XrefRangeEnd = 656579, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void __m__Finally1()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr___m__Finally1_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x17003905 RID: 14597
			// (get) Token: 0x0600A8AA RID: 43178 RVA: 0x002B3890 File Offset: 0x002B1A90
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7527, RefRangeEnd = 7537, XrefRangeStart = 7527, XrefRangeEnd = 7537, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A8AB RID: 43179 RVA: 0x002B38E8 File Offset: 0x002B1AE8
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656579, XrefRangeEnd = 656584, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe void System_Collections_IEnumerator_Reset()
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x17003906 RID: 14598
			// (get) Token: 0x0600A8AC RID: 43180 RVA: 0x002B392C File Offset: 0x002B1B2C
			public unsafe Il2CppSystem.Object Current
			{
				[CallerCount(10)]
				[CachedScanResults(RefRangeStart = 7527, RefRangeEnd = 7537, XrefRangeStart = 7527, XrefRangeEnd = 7537, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					IntPtr intPtr3 = intPtr;
					return (intPtr3 != 0) ? new Il2CppSystem.Object(intPtr3) : null;
				}
			}

			// Token: 0x0600A8AD RID: 43181 RVA: 0x002B3984 File Offset: 0x002B1B84
			// Note: this type is marked as 'beforefieldinit'.
			static _UlodOptimizationLoop_d__9()
			{
				Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer>.NativeClassPtr, "<UlodOptimizationLoop>d__9");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___1__state = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>1__state");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___2__current = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>2__current");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___4__this = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>4__this");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr__i_5__2 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<i>5__2");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___7__wrap2 = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, "<>7__wrap2");
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr__ctor_Public_Void_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676346);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676347);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676348);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr___m__Finally1_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676349);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676350);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676351);
				UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9>.NativeClassPtr, 100676352);
			}

			// Token: 0x0600A8AE RID: 43182 RVA: 0x0000A74C File Offset: 0x0000894C
			public _UlodOptimizationLoop_d__9(IntPtr pointer)
				: base(pointer)
			{
			}

			// Token: 0x17003900 RID: 14592
			// (get) Token: 0x0600A8AF RID: 43183 RVA: 0x002B3AA0 File Offset: 0x002B1CA0
			// (set) Token: 0x0600A8B0 RID: 43184 RVA: 0x002B3AC8 File Offset: 0x002B1CC8
			public unsafe int __1__state
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___1__state);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___1__state)) = value;
				}
			}

			// Token: 0x17003901 RID: 14593
			// (get) Token: 0x0600A8B1 RID: 43185 RVA: 0x002B3AEC File Offset: 0x002B1CEC
			// (set) Token: 0x0600A8B2 RID: 43186 RVA: 0x002B3B20 File Offset: 0x002B1D20
			public unsafe Il2CppSystem.Object __2__current
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___2__current);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new Il2CppSystem.Object(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___2__current), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003902 RID: 14594
			// (get) Token: 0x0600A8B3 RID: 43187 RVA: 0x002B3B48 File Offset: 0x002B1D48
			// (set) Token: 0x0600A8B4 RID: 43188 RVA: 0x002B3B7C File Offset: 0x002B1D7C
			public unsafe UltimateLevelOfDetailOptimizer __4__this
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___4__this);
					IntPtr intPtr2 = *intPtr;
					return (intPtr2 != 0) ? new UltimateLevelOfDetailOptimizer(intPtr2) : null;
				}
				set
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
					IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___4__this), IL2CPP.Il2CppObjectBaseToPtr(value));
				}
			}

			// Token: 0x17003903 RID: 14595
			// (get) Token: 0x0600A8B5 RID: 43189 RVA: 0x002B3BA4 File Offset: 0x002B1DA4
			// (set) Token: 0x0600A8B6 RID: 43190 RVA: 0x002B3BCC File Offset: 0x002B1DCC
			public unsafe int _i_5__2
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr__i_5__2);
					return *intPtr;
				}
				set
				{
					*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr__i_5__2)) = value;
				}
			}

			// Token: 0x17003904 RID: 14596
			// (get) Token: 0x0600A8B7 RID: 43191 RVA: 0x002B3BF0 File Offset: 0x002B1DF0
			// (set) Token: 0x0600A8B8 RID: 43192 RVA: 0x002B3C22 File Offset: 0x002B1E22
			public List<UltimateLevelOfDetail>.Enumerator __7__wrap2
			{
				get
				{
					IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___7__wrap2);
					return new List<UltimateLevelOfDetail>.Enumerator(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<List<UltimateLevelOfDetail>.Enumerator>.NativeClassPtr, intPtr));
				}
				set
				{
					cpblk(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(UltimateLevelOfDetailOptimizer._UlodOptimizationLoop_d__9.NativeFieldInfoPtr___7__wrap2), IL2CPP.il2cpp_object_unbox(IL2CPP.Il2CppObjectBaseToPtr(value)), IL2CPP.il2cpp_class_value_size(Il2CppClassPointerStore<List<UltimateLevelOfDetail>.Enumerator>.NativeClassPtr, (UIntPtr)0));
				}
			}

			// Token: 0x04007106 RID: 28934
			private static readonly IntPtr NativeFieldInfoPtr___1__state;

			// Token: 0x04007107 RID: 28935
			private static readonly IntPtr NativeFieldInfoPtr___2__current;

			// Token: 0x04007108 RID: 28936
			private static readonly IntPtr NativeFieldInfoPtr___4__this;

			// Token: 0x04007109 RID: 28937
			private static readonly IntPtr NativeFieldInfoPtr__i_5__2;

			// Token: 0x0400710A RID: 28938
			private static readonly IntPtr NativeFieldInfoPtr___7__wrap2;

			// Token: 0x0400710B RID: 28939
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Int32_0;

			// Token: 0x0400710C RID: 28940
			private static readonly IntPtr NativeMethodInfoPtr_System_IDisposable_Dispose_Private_Virtual_Final_New_Void_0;

			// Token: 0x0400710D RID: 28941
			private static readonly IntPtr NativeMethodInfoPtr_MoveNext_Private_Virtual_Final_New_Boolean_0;

			// Token: 0x0400710E RID: 28942
			private static readonly IntPtr NativeMethodInfoPtr___m__Finally1_Private_Void_0;

			// Token: 0x0400710F RID: 28943
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_Generic_IEnumerator_System_Object__get_Current_Private_Virtual_Final_New_get_Object_0;

			// Token: 0x04007110 RID: 28944
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_Reset_Private_Virtual_Final_New_Void_0;

			// Token: 0x04007111 RID: 28945
			private static readonly IntPtr NativeMethodInfoPtr_System_Collections_IEnumerator_get_Current_Private_Virtual_Final_New_get_Object_0;
		}
	}
}
