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

namespace Obi
{
	// Token: 0x0200053C RID: 1340
	public class ObiEmitterShape : MonoBehaviour
	{
		// Token: 0x1700336B RID: 13163
		// (get) Token: 0x06009819 RID: 38937 RVA: 0x002727F4 File Offset: 0x002709F4
		public unsafe int DistributionPointsCount
		{
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 643798, XrefRangeEnd = 643799, 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: 0x0600981A RID: 38938 RVA: 0x00272844 File Offset: 0x00270A44
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 643799, XrefRangeEnd = 643807, 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: 0x0600981B RID: 38939 RVA: 0x00272888 File Offset: 0x00270A88
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 643807, XrefRangeEnd = 643815, 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: 0x0600981C RID: 38940 RVA: 0x002728CC File Offset: 0x00270ACC
		[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: 0x0600981D RID: 38941 RVA: 0x0027291C File Offset: 0x00270B1C
		[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: 0x0600981E RID: 38942 RVA: 0x00272978 File Offset: 0x00270B78
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 643815, XrefRangeEnd = 643818, 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: 0x0600981F RID: 38943 RVA: 0x002729C8 File Offset: 0x00270BC8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 643818, XrefRangeEnd = 643826, 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: 0x06009820 RID: 38944 RVA: 0x00272A14 File Offset: 0x00270C14
		// 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, 100675145);
			ObiEmitterShape.NativeMethodInfoPtr_OnEnable_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100675146);
			ObiEmitterShape.NativeMethodInfoPtr_OnDisable_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100675147);
			ObiEmitterShape.NativeMethodInfoPtr_GenerateDistribution_Public_Abstract_Virtual_New_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100675148);
			ObiEmitterShape.NativeMethodInfoPtr_SupportsAllSamplingMethods_Public_Abstract_Virtual_New_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100675149);
			ObiEmitterShape.NativeMethodInfoPtr_GetDistributionPoint_Public_DistributionPoint_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100675150);
			ObiEmitterShape.NativeMethodInfoPtr__ctor_Protected_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape>.NativeClassPtr, 100675151);
		}

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

		// Token: 0x17003367 RID: 13159
		// (get) Token: 0x06009822 RID: 38946 RVA: 0x00272B20 File Offset: 0x00270D20
		// (set) Token: 0x06009823 RID: 38947 RVA: 0x00272B48 File Offset: 0x00270D48
		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: 0x17003368 RID: 13160
		// (get) Token: 0x06009824 RID: 38948 RVA: 0x00272B6C File Offset: 0x00270D6C
		// (set) Token: 0x06009825 RID: 38949 RVA: 0x00272B94 File Offset: 0x00270D94
		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: 0x17003369 RID: 13161
		// (get) Token: 0x06009826 RID: 38950 RVA: 0x00272BB8 File Offset: 0x00270DB8
		// (set) Token: 0x06009827 RID: 38951 RVA: 0x00272BEC File Offset: 0x00270DEC
		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: 0x1700336A RID: 13162
		// (get) Token: 0x06009828 RID: 38952 RVA: 0x00272C14 File Offset: 0x00270E14
		// (set) Token: 0x06009829 RID: 38953 RVA: 0x00272C3C File Offset: 0x00270E3C
		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: 0x04006576 RID: 25974
		private static readonly IntPtr NativeFieldInfoPtr_samplingMethod;

		// Token: 0x04006577 RID: 25975
		private static readonly IntPtr NativeFieldInfoPtr_particleSize;

		// Token: 0x04006578 RID: 25976
		private static readonly IntPtr NativeFieldInfoPtr_distribution;

		// Token: 0x04006579 RID: 25977
		private static readonly IntPtr NativeFieldInfoPtr_lastDistributionPoint;

		// Token: 0x0400657A RID: 25978
		private static readonly IntPtr NativeMethodInfoPtr_get_DistributionPointsCount_Public_get_Int32_0;

		// Token: 0x0400657B RID: 25979
		private static readonly IntPtr NativeMethodInfoPtr_OnEnable_Public_Void_0;

		// Token: 0x0400657C RID: 25980
		private static readonly IntPtr NativeMethodInfoPtr_OnDisable_Public_Void_0;

		// Token: 0x0400657D RID: 25981
		private static readonly IntPtr NativeMethodInfoPtr_GenerateDistribution_Public_Abstract_Virtual_New_Void_0;

		// Token: 0x0400657E RID: 25982
		private static readonly IntPtr NativeMethodInfoPtr_SupportsAllSamplingMethods_Public_Abstract_Virtual_New_Boolean_0;

		// Token: 0x0400657F RID: 25983
		private static readonly IntPtr NativeMethodInfoPtr_GetDistributionPoint_Public_DistributionPoint_0;

		// Token: 0x04006580 RID: 25984
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Protected_Void_0;

		// Token: 0x0200053D RID: 1341
		public enum SamplingMethod
		{
			// Token: 0x04006582 RID: 25986
			SURFACE,
			// Token: 0x04006583 RID: 25987
			LAYER,
			// Token: 0x04006584 RID: 25988
			FILL
		}

		// Token: 0x0200053E RID: 1342
		[StructLayout(2)]
		public struct DistributionPoint
		{
			// Token: 0x0600982A RID: 38954 RVA: 0x00272C60 File Offset: 0x00270E60
			[CallerCount(0)]
			[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 643797, XrefRangeEnd = 643798, 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: 0x0600982B RID: 38955 RVA: 0x00272CB8 File Offset: 0x00270EB8
			[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: 0x0600982C RID: 38956 RVA: 0x00272D24 File Offset: 0x00270F24
			// 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, 100675152);
				ObiEmitterShape.DistributionPoint.NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_Color_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, 100675153);
			}

			// Token: 0x0600982D RID: 38957 RVA: 0x00272DB3 File Offset: 0x00270FB3
			public Il2CppSystem.Object BoxIl2CppObject()
			{
				return new Il2CppSystem.Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<ObiEmitterShape.DistributionPoint>.NativeClassPtr, ref this));
			}

			// Token: 0x04006585 RID: 25989
			private static readonly IntPtr NativeFieldInfoPtr_position;

			// Token: 0x04006586 RID: 25990
			private static readonly IntPtr NativeFieldInfoPtr_velocity;

			// Token: 0x04006587 RID: 25991
			private static readonly IntPtr NativeFieldInfoPtr_color;

			// Token: 0x04006588 RID: 25992
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_0;

			// Token: 0x04006589 RID: 25993
			private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_Vector3_Vector3_Color_0;

			// Token: 0x0400658A RID: 25994
			[FieldOffset(0)]
			public Vector3 position;

			// Token: 0x0400658B RID: 25995
			[FieldOffset(12)]
			public Vector3 velocity;

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