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

namespace Obi
{
	// Token: 0x020004E4 RID: 1252
	public class ObiEmitterShape : MonoBehaviour
	{
		// Token: 0x170030D0 RID: 12496
		// (get) Token: 0x06008FC6 RID: 36806 RVA: 0x0024FAB8 File Offset: 0x0024DCB8
		public unsafe int DistributionPointsCount
		{
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 611488, XrefRangeEnd = 611489, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.NativeMethodInfoPtr_get_DistributionPointsCount_Public_get_Int32_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x06008FC7 RID: 36807 RVA: 0x0024FB08 File Offset: 0x0024DD08
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 611489, XrefRangeEnd = 611497, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnEnable()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.NativeMethodInfoPtr_OnEnable_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC8 RID: 36808 RVA: 0x0024FB4C File Offset: 0x0024DD4C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 611497, XrefRangeEnd = 611505, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDisable()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.NativeMethodInfoPtr_OnDisable_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FC9 RID: 36809 RVA: 0x0024FB90 File Offset: 0x0024DD90
		[CallerCount(0)]
		public unsafe virtual void GenerateDistribution()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiEmitterShape.NativeMethodInfoPtr_GenerateDistribution_Public_Abstract_Virtual_New_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FCA RID: 36810 RVA: 0x0024FBE0 File Offset: 0x0024DDE0
		[CallerCount(0)]
		public unsafe virtual bool SupportsAllSamplingMethods()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiEmitterShape.NativeMethodInfoPtr_SupportsAllSamplingMethods_Public_Abstract_Virtual_New_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008FCB RID: 36811 RVA: 0x0024FC3C File Offset: 0x0024DE3C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 611505, XrefRangeEnd = 611508, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiEmitterShape.DistributionPoint GetDistributionPoint()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.NativeMethodInfoPtr_GetDistributionPoint_Public_DistributionPoint_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x06008FCC RID: 36812 RVA: 0x0024FC8C File Offset: 0x0024DE8C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 611508, XrefRangeEnd = 611516, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiEmitterShape()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.NativeMethodInfoPtr__ctor_Protected_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06008FCD RID: 36813 RVA: 0x0024FCD8 File Offset: 0x0024DED8
		// Note: this type is marked as 'beforefieldinit'.
		static ObiEmitterShape()
		{
			Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiEmitterShape");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr);
			ObiEmitterShape.NativeFieldInfoPtr_samplingMethod = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, "samplingMethod");
			ObiEmitterShape.NativeFieldInfoPtr_particleSize = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, "particleSize");
			ObiEmitterShape.NativeFieldInfoPtr_distribution = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, "distribution");
			ObiEmitterShape.NativeFieldInfoPtr_lastDistributionPoint = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, "lastDistributionPoint");
			ObiEmitterShape.NativeMethodInfoPtr_get_DistributionPointsCount_Public_get_Int32_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674432);
			ObiEmitterShape.NativeMethodInfoPtr_OnEnable_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674433);
			ObiEmitterShape.NativeMethodInfoPtr_OnDisable_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674434);
			ObiEmitterShape.NativeMethodInfoPtr_GenerateDistribution_Public_Abstract_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674435);
			ObiEmitterShape.NativeMethodInfoPtr_SupportsAllSamplingMethods_Public_Abstract_Virtual_New_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674436);
			ObiEmitterShape.NativeMethodInfoPtr_GetDistributionPoint_Public_DistributionPoint_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674437);
			ObiEmitterShape.NativeMethodInfoPtr__ctor_Protected_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100674438);
		}

		// Token: 0x06008FCE RID: 36814 RVA: 0x0000351C File Offset: 0x0000171C
		public ObiEmitterShape(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170030CC RID: 12492
		// (get) Token: 0x06008FCF RID: 36815 RVA: 0x0024FDE4 File Offset: 0x0024DFE4
		// (set) Token: 0x06008FD0 RID: 36816 RVA: 0x0024FE0C File Offset: 0x0024E00C
		public unsafe ObiEmitterShape.SamplingMethod samplingMethod
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_samplingMethod);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_samplingMethod)) = value;
			}
		}

		// Token: 0x170030CD RID: 12493
		// (get) Token: 0x06008FD1 RID: 36817 RVA: 0x0024FE30 File Offset: 0x0024E030
		// (set) Token: 0x06008FD2 RID: 36818 RVA: 0x0024FE58 File Offset: 0x0024E058
		public unsafe float particleSize
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_particleSize);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_particleSize)) = value;
			}
		}

		// Token: 0x170030CE RID: 12494
		// (get) Token: 0x06008FD3 RID: 36819 RVA: 0x0024FE7C File Offset: 0x0024E07C
		// (set) Token: 0x06008FD4 RID: 36820 RVA: 0x0024FEB0 File Offset: 0x0024E0B0
		public unsafe List<ObiEmitterShape.DistributionPoint> distribution
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_distribution);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new List<ObiEmitterShape.DistributionPoint>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_distribution), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170030CF RID: 12495
		// (get) Token: 0x06008FD5 RID: 36821 RVA: 0x0024FED8 File Offset: 0x0024E0D8
		// (set) Token: 0x06008FD6 RID: 36822 RVA: 0x0024FF00 File Offset: 0x0024E100
		public unsafe int lastDistributionPoint
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_lastDistributionPoint);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiEmitterShape.NativeFieldInfoPtr_lastDistributionPoint)) = value;
			}
		}

		// Token: 0x04005FCD RID: 24525
		private static readonly IntPtr NativeFieldInfoPtr_samplingMethod;

		// Token: 0x04005FCE RID: 24526
		private static readonly IntPtr NativeFieldInfoPtr_particleSize;

		// Token: 0x04005FCF RID: 24527
		private static readonly IntPtr NativeFieldInfoPtr_distribution;

		// Token: 0x04005FD0 RID: 24528
		private static readonly IntPtr NativeFieldInfoPtr_lastDistributionPoint;

		// Token: 0x04005FD1 RID: 24529
		private static readonly IntPtr NativeMethodInfoPtr_get_DistributionPointsCount_Public_get_Int32_0;

		// Token: 0x04005FD2 RID: 24530
		private static readonly IntPtr NativeMethodInfoPtr_OnEnable_Public_Void_0;

		// Token: 0x04005FD3 RID: 24531
		private static readonly IntPtr NativeMethodInfoPtr_OnDisable_Public_Void_0;

		// Token: 0x04005FD4 RID: 24532
		private static readonly IntPtr NativeMethodInfoPtr_GenerateDistribution_Public_Abstract_Virtual_New_Void_0;

		// Token: 0x04005FD5 RID: 24533
		private static readonly IntPtr NativeMethodInfoPtr_SupportsAllSamplingMethods_Public_Abstract_Virtual_New_Boolean_0;

		// Token: 0x04005FD6 RID: 24534
		private static readonly IntPtr NativeMethodInfoPtr_GetDistributionPoint_Public_DistributionPoint_0;

		// Token: 0x04005FD7 RID: 24535
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Protected_Void_0;

		// Token: 0x020004E5 RID: 1253
		public enum SamplingMethod
		{
			// Token: 0x04005FD9 RID: 24537
			SURFACE,
			// Token: 0x04005FDA RID: 24538
			LAYER,
			// Token: 0x04005FDB RID: 24539
			FILL
		}

		// Token: 0x020004E6 RID: 1254
		[StructLayout(LayoutKind.Explicit)]
		public struct DistributionPoint
		{
			// Token: 0x06008FD7 RID: 36823 RVA: 0x0024FF24 File Offset: 0x0024E124
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 611487, XrefRangeEnd = 611488, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
			public unsafe DistributionPoint(Vector3 position, Vector3 velocity)
			{
				IntPtr* ptr;
				checked
				{
					ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref position;
				}
				ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref velocity;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.DistributionPoint.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0, ref this, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x06008FD8 RID: 36824 RVA: 0x0024FF7C File Offset: 0x0024E17C
			[CallerCount(0)]
			public unsafe DistributionPoint(Vector3 position, Vector3 velocity, Color color)
			{
				IntPtr* ptr;
				checked
				{
					ptr = stackalloc IntPtr[unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref position;
				}
				ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref velocity;
				ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref color;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiEmitterShape.DistributionPoint.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_Color_0, ref this, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}

			// Token: 0x06008FD9 RID: 36825 RVA: 0x0024FFE8 File Offset: 0x0024E1E8
			// Note: this type is marked as 'beforefieldinit'.
			static DistributionPoint()
			{
				Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, "DistributionPoint");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr);
				ObiEmitterShape.DistributionPoint.NativeFieldInfoPtr_position = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, "position");
				ObiEmitterShape.DistributionPoint.NativeFieldInfoPtr_velocity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, "velocity");
				ObiEmitterShape.DistributionPoint.NativeFieldInfoPtr_color = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, "color");
				ObiEmitterShape.DistributionPoint.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, 100674439);
				ObiEmitterShape.DistributionPoint.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_Color_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, 100674440);
			}

			// Token: 0x06008FDA RID: 36826 RVA: 0x00250077 File Offset: 0x0024E277
			public Il2CppSystem.Object BoxIl2CppObject()
			{
				return new Il2CppSystem.Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, ref this));
			}

			// Token: 0x04005FDC RID: 24540
			private static readonly IntPtr NativeFieldInfoPtr_position;

			// Token: 0x04005FDD RID: 24541
			private static readonly IntPtr NativeFieldInfoPtr_velocity;

			// Token: 0x04005FDE RID: 24542
			private static readonly IntPtr NativeFieldInfoPtr_color;

			// Token: 0x04005FDF RID: 24543
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0;

			// Token: 0x04005FE0 RID: 24544
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_Color_0;

			// Token: 0x04005FE1 RID: 24545
			[FieldOffset(0)]
			public Vector3 position;

			// Token: 0x04005FE2 RID: 24546
			[FieldOffset(12)]
			public Vector3 velocity;

			// Token: 0x04005FE3 RID: 24547
			[FieldOffset(24)]
			public Color color;
		}
	}
}
