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

namespace Obi
{
	// Token: 0x020004F3 RID: 1267
	public class ObiExternalForce : MonoBehaviour
	{
		// Token: 0x060090C6 RID: 37062 RVA: 0x00253E24 File Offset: 0x00252024
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 612342, XrefRangeEnd = 612362, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void LateUpdate()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiExternalForce.NativeMethodInfoPtr_LateUpdate_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060090C7 RID: 37063 RVA: 0x00253E68 File Offset: 0x00252068
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 612364, RefRangeEnd = 612366, XrefRangeStart = 612362, XrefRangeEnd = 612364, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe float GetTurbulence(float turbulenceIntensity)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref turbulenceIntensity;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiExternalForce.NativeMethodInfoPtr_GetTurbulence_Protected_Single_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x060090C8 RID: 37064 RVA: 0x00253ECC File Offset: 0x002520CC
		[CallerCount(0)]
		public unsafe virtual void ApplyForcesToActor(ObiActor actor)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(actor);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), ObiExternalForce.NativeMethodInfoPtr_ApplyForcesToActor_Public_Abstract_Virtual_New_Void_ObiActor_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x060090C9 RID: 37065 RVA: 0x00253F30 File Offset: 0x00252130
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 516526, RefRangeEnd = 516527, XrefRangeStart = 516526, XrefRangeEnd = 516527, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ObiExternalForce()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ObiExternalForce.NativeMethodInfoPtr__ctor_Protected_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060090CA RID: 37066 RVA: 0x00253F7C File Offset: 0x0025217C
		// Note: this type is marked as 'beforefieldinit'.
		static ObiExternalForce()
		{
			Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "Obi", "ObiExternalForce");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr);
			ObiExternalForce.NativeFieldInfoPtr_intensity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, "intensity");
			ObiExternalForce.NativeFieldInfoPtr_turbulence = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, "turbulence");
			ObiExternalForce.NativeFieldInfoPtr_turbulenceFrequency = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, "turbulenceFrequency");
			ObiExternalForce.NativeFieldInfoPtr_turbulenceSeed = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, "turbulenceSeed");
			ObiExternalForce.NativeFieldInfoPtr_affectedSolvers = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, "affectedSolvers");
			ObiExternalForce.NativeMethodInfoPtr_LateUpdate_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, 100674529);
			ObiExternalForce.NativeMethodInfoPtr_GetTurbulence_Protected_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, 100674530);
			ObiExternalForce.NativeMethodInfoPtr_ApplyForcesToActor_Public_Abstract_Virtual_New_Void_ObiActor_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, 100674531);
			ObiExternalForce.NativeMethodInfoPtr__ctor_Protected_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ObiExternalForce>.NativeClassPtr, 100674532);
		}

		// Token: 0x060090CB RID: 37067 RVA: 0x0000351C File Offset: 0x0000171C
		public ObiExternalForce(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003119 RID: 12569
		// (get) Token: 0x060090CC RID: 37068 RVA: 0x00254060 File Offset: 0x00252260
		// (set) Token: 0x060090CD RID: 37069 RVA: 0x00254088 File Offset: 0x00252288
		public unsafe float intensity
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_intensity);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_intensity)) = value;
			}
		}

		// Token: 0x1700311A RID: 12570
		// (get) Token: 0x060090CE RID: 37070 RVA: 0x002540AC File Offset: 0x002522AC
		// (set) Token: 0x060090CF RID: 37071 RVA: 0x002540D4 File Offset: 0x002522D4
		public unsafe float turbulence
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_turbulence);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_turbulence)) = value;
			}
		}

		// Token: 0x1700311B RID: 12571
		// (get) Token: 0x060090D0 RID: 37072 RVA: 0x002540F8 File Offset: 0x002522F8
		// (set) Token: 0x060090D1 RID: 37073 RVA: 0x00254120 File Offset: 0x00252320
		public unsafe float turbulenceFrequency
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_turbulenceFrequency);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_turbulenceFrequency)) = value;
			}
		}

		// Token: 0x1700311C RID: 12572
		// (get) Token: 0x060090D2 RID: 37074 RVA: 0x00254144 File Offset: 0x00252344
		// (set) Token: 0x060090D3 RID: 37075 RVA: 0x0025416C File Offset: 0x0025236C
		public unsafe float turbulenceSeed
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_turbulenceSeed);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_turbulenceSeed)) = value;
			}
		}

		// Token: 0x1700311D RID: 12573
		// (get) Token: 0x060090D4 RID: 37076 RVA: 0x00254190 File Offset: 0x00252390
		// (set) Token: 0x060090D5 RID: 37077 RVA: 0x002541C4 File Offset: 0x002523C4
		public unsafe Il2CppReferenceArray<ObiSolver> affectedSolvers
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_affectedSolvers);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Il2CppReferenceArray<ObiSolver>(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ObiExternalForce.NativeFieldInfoPtr_affectedSolvers), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x0400608C RID: 24716
		private static readonly IntPtr NativeFieldInfoPtr_intensity;

		// Token: 0x0400608D RID: 24717
		private static readonly IntPtr NativeFieldInfoPtr_turbulence;

		// Token: 0x0400608E RID: 24718
		private static readonly IntPtr NativeFieldInfoPtr_turbulenceFrequency;

		// Token: 0x0400608F RID: 24719
		private static readonly IntPtr NativeFieldInfoPtr_turbulenceSeed;

		// Token: 0x04006090 RID: 24720
		private static readonly IntPtr NativeFieldInfoPtr_affectedSolvers;

		// Token: 0x04006091 RID: 24721
		private static readonly IntPtr NativeMethodInfoPtr_LateUpdate_Public_Void_0;

		// Token: 0x04006092 RID: 24722
		private static readonly IntPtr NativeMethodInfoPtr_GetTurbulence_Protected_Single_Single_0;

		// Token: 0x04006093 RID: 24723
		private static readonly IntPtr NativeMethodInfoPtr_ApplyForcesToActor_Public_Abstract_Virtual_New_Void_ObiActor_0;

		// Token: 0x04006094 RID: 24724
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Protected_Void_0;
	}
}
