using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using UnityEngine;

namespace MTAssets.UltimateLODSystem
{
	// Token: 0x02000672 RID: 1650
	public class UltimateLevelOfDetailGlobal : MonoBehaviour
	{
		// Token: 0x0600A876 RID: 43126 RVA: 0x002B2A64 File Offset: 0x002B0C64
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656415, XrefRangeEnd = 656419, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static bool isGlobalULodSystemEnabled()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_isGlobalULodSystemEnabled_Public_Static_Boolean_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A877 RID: 43127 RVA: 0x002B2AA8 File Offset: 0x002B0CA8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656419, XrefRangeEnd = 656423, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void EnableGlobalULodSystem(bool enable)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref enable;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_EnableGlobalULodSystem_Public_Static_Void_Boolean_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600A878 RID: 43128 RVA: 0x002B2AF0 File Offset: 0x002B0CF0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656423, XrefRangeEnd = 656427, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static void SetGlobalLodDistanceMultiplier(float multiplier)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref multiplier;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_SetGlobalLodDistanceMultiplier_Public_Static_Void_Single_0, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x0600A879 RID: 43129 RVA: 0x002B2B38 File Offset: 0x002B0D38
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656427, XrefRangeEnd = 656431, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static float GetGlobalLodDistanceMultiplier()
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetGlobalLodDistanceMultiplier_Public_Static_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A87A RID: 43130 RVA: 0x002B2B7C File Offset: 0x002B0D7C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 656431, XrefRangeEnd = 656441, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe static Mesh GetSimplifiedVersionOfThisMesh(Mesh meshToSimplify, bool isSkinnedMesh, bool skinnedAnimsCompatibilityMode, bool simplificationDestroyerMode, bool preventArtifacts, float percentOfVerticesOfSimplifyiedVersion)
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)6) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(meshToSimplify);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref isSkinnedMesh;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref skinnedAnimsCompatibilityMode;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref simplificationDestroyerMode;
			ptr[checked(unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref preventArtifacts;
			ptr[checked(unchecked((UIntPtr)5) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref percentOfVerticesOfSimplifyiedVersion;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetSimplifiedVersionOfThisMesh_Public_Static_Mesh_Mesh_Boolean_Boolean_Boolean_Boolean_Single_0, 0, (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			IntPtr intPtr3 = intPtr;
			return (intPtr3 != 0) ? new Mesh(intPtr3) : null;
		}

		// Token: 0x0600A87B RID: 43131 RVA: 0x002B2C3C File Offset: 0x002B0E3C
		[CallerCount(67)]
		[CachedScanResults(RefRangeStart = 166362, RefRangeEnd = 166429, XrefRangeStart = 166362, XrefRangeEnd = 166429, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe UltimateLevelOfDetailGlobal()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(UltimateLevelOfDetailGlobal.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A87C RID: 43132 RVA: 0x002B2C88 File Offset: 0x002B0E88
		// Note: this type is marked as 'beforefieldinit'.
		static UltimateLevelOfDetailGlobal()
		{
			Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem", "UltimateLevelOfDetailGlobal");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr);
			UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_enableGlobalUlodSystem = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, "enableGlobalUlodSystem");
			UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_lodDistanceMultiplier = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, "lodDistanceMultiplier");
			UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, "currentCameraThatIsOnTopOfScreenInThisScene");
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_isGlobalULodSystemEnabled_Public_Static_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100676327);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_EnableGlobalULodSystem_Public_Static_Void_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100676328);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_SetGlobalLodDistanceMultiplier_Public_Static_Void_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100676329);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetGlobalLodDistanceMultiplier_Public_Static_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100676330);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr_GetSimplifiedVersionOfThisMesh_Public_Static_Mesh_Mesh_Boolean_Boolean_Boolean_Boolean_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100676331);
			UltimateLevelOfDetailGlobal.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<UltimateLevelOfDetailGlobal>.NativeClassPtr, 100676332);
		}

		// Token: 0x0600A87D RID: 43133 RVA: 0x0000351C File Offset: 0x0000171C
		public UltimateLevelOfDetailGlobal(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170038F4 RID: 14580
		// (get) Token: 0x0600A87E RID: 43134 RVA: 0x002B2D6C File Offset: 0x002B0F6C
		// (set) Token: 0x0600A87F RID: 43135 RVA: 0x002B2D8A File Offset: 0x002B0F8A
		public unsafe static bool enableGlobalUlodSystem
		{
			get
			{
				bool flag;
				IL2CPP.il2cpp_field_static_get_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_enableGlobalUlodSystem, (void*)(&flag));
				return flag;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_enableGlobalUlodSystem, (void*)(&value));
			}
		}

		// Token: 0x170038F5 RID: 14581
		// (get) Token: 0x0600A880 RID: 43136 RVA: 0x002B2D9C File Offset: 0x002B0F9C
		// (set) Token: 0x0600A881 RID: 43137 RVA: 0x002B2DBA File Offset: 0x002B0FBA
		public unsafe static float lodDistanceMultiplier
		{
			get
			{
				float num;
				IL2CPP.il2cpp_field_static_get_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_lodDistanceMultiplier, (void*)(&num));
				return num;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_lodDistanceMultiplier, (void*)(&value));
			}
		}

		// Token: 0x170038F6 RID: 14582
		// (get) Token: 0x0600A882 RID: 43138 RVA: 0x002B2DCC File Offset: 0x002B0FCC
		// (set) Token: 0x0600A883 RID: 43139 RVA: 0x002B2DF7 File Offset: 0x002B0FF7
		public unsafe static Camera currentCameraThatIsOnTopOfScreenInThisScene
		{
			get
			{
				IntPtr intPtr;
				IL2CPP.il2cpp_field_static_get_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene, (void*)(&intPtr));
				IntPtr intPtr2 = intPtr;
				return (intPtr2 != 0) ? new Camera(intPtr2) : null;
			}
			set
			{
				IL2CPP.il2cpp_field_static_set_value(UltimateLevelOfDetailGlobal.NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene, IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x040070E8 RID: 28904
		private static readonly IntPtr NativeFieldInfoPtr_enableGlobalUlodSystem;

		// Token: 0x040070E9 RID: 28905
		private static readonly IntPtr NativeFieldInfoPtr_lodDistanceMultiplier;

		// Token: 0x040070EA RID: 28906
		private static readonly IntPtr NativeFieldInfoPtr_currentCameraThatIsOnTopOfScreenInThisScene;

		// Token: 0x040070EB RID: 28907
		private static readonly IntPtr NativeMethodInfoPtr_isGlobalULodSystemEnabled_Public_Static_Boolean_0;

		// Token: 0x040070EC RID: 28908
		private static readonly IntPtr NativeMethodInfoPtr_EnableGlobalULodSystem_Public_Static_Void_Boolean_0;

		// Token: 0x040070ED RID: 28909
		private static readonly IntPtr NativeMethodInfoPtr_SetGlobalLodDistanceMultiplier_Public_Static_Void_Single_0;

		// Token: 0x040070EE RID: 28910
		private static readonly IntPtr NativeMethodInfoPtr_GetGlobalLodDistanceMultiplier_Public_Static_Single_0;

		// Token: 0x040070EF RID: 28911
		private static readonly IntPtr NativeMethodInfoPtr_GetSimplifiedVersionOfThisMesh_Public_Static_Mesh_Mesh_Boolean_Boolean_Boolean_Boolean_Single_0;

		// Token: 0x040070F0 RID: 28912
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;
	}
}
