using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi
{
	// Token: 0x020004B5 RID: 1205
	[Token(Token = "0x20004B5")]
	[ExecuteInEditMode]
	public abstract class ObiBatchedConstraints : MonoBehaviour, IObiSolverClient
	{
		// Token: 0x170002E5 RID: 741
		// (get) Token: 0x06002ABE RID: 10942 RVA: 0x0005D00C File Offset: 0x0005B20C
		[Token(Token = "0x170002E5")]
		public ObiActor Actor
		{
			[Token(Token = "0x6002ABE")]
			[Address(RVA = "0x28C210", Offset = "0x28B010", VA = "0x18028C210")]
			get
			{
				return this.actor;
			}
		}

		// Token: 0x170002E6 RID: 742
		// (get) Token: 0x06002ABF RID: 10943 RVA: 0x0005D020 File Offset: 0x0005B220
		[Token(Token = "0x170002E6")]
		public bool InSolver
		{
			[Token(Token = "0x6002ABF")]
			[Address(RVA = "0x5D3320", Offset = "0x5D2120", VA = "0x1805D3320")]
			get
			{
				return this.inSolver;
			}
		}

		// Token: 0x06002AC0 RID: 10944
		[Token(Token = "0x6002AC0")]
		[Address(Slot = "8")]
		public abstract Oni.ConstraintType GetConstraintType();

		// Token: 0x06002AC1 RID: 10945
		[Token(Token = "0x6002AC1")]
		[Address(Slot = "9")]
		public abstract List<ObiConstraintBatch> GetBatches();

		// Token: 0x06002AC2 RID: 10946
		[Token(Token = "0x6002AC2")]
		[Address(Slot = "10")]
		public abstract void Clear();

		// Token: 0x06002AC3 RID: 10947 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC3")]
		[Address(RVA = "0xFFCC00", Offset = "0xFFBA00", VA = "0x180FFCC00")]
		protected void OnAddToSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AC4 RID: 10948 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC4")]
		[Address(RVA = "0xFFCE30", Offset = "0xFFBC30", VA = "0x180FFCE30")]
		protected void OnRemoveFromSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AC5 RID: 10949 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC5")]
		[Address(RVA = "0xFFD0D0", Offset = "0xFFBED0", VA = "0x180FFD0D0", Slot = "6")]
		public void PushDataToSolver(ParticleData data = ParticleData.NONE)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AC6 RID: 10950 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC6")]
		[Address(RVA = "0xFFCFC0", Offset = "0xFFBDC0", VA = "0x180FFCFC0", Slot = "7")]
		public void PullDataFromSolver(ParticleData data = ParticleData.NONE)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AC7 RID: 10951 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC7")]
		[Address(RVA = "0xFFD290", Offset = "0xFFC090", VA = "0x180FFD290")]
		public void SetActiveConstraints()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AC8 RID: 10952 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC8")]
		[Address(RVA = "0xFFCAA0", Offset = "0xFFB8A0", VA = "0x180FFCAA0")]
		public void Enable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002AC9 RID: 10953 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002AC9")]
		[Address(RVA = "0xFFC990", Offset = "0xFFB790", VA = "0x180FFC990")]
		public void Disable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002ACA RID: 10954 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002ACA")]
		[Address(RVA = "0xFFC890", Offset = "0xFFB690", VA = "0x180FFC890", Slot = "4")]
		public bool AddToSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002ACB RID: 10955 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002ACB")]
		[Address(RVA = "0xFFD1E0", Offset = "0xFFBFE0", VA = "0x180FFD1E0", Slot = "5")]
		public bool RemoveFromSolver(object info)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002ACC RID: 10956 RVA: 0x0005D034 File Offset: 0x0005B234
		[Token(Token = "0x6002ACC")]
		[Address(RVA = "0xFFCBB0", Offset = "0xFFB9B0", VA = "0x180FFCBB0")]
		public void GrabActor()
		{
			/*
An exception occurred when decompiling this method (06002ACC)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void Obi.ObiBatchedConstraints::GrabActor()

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	Block_0:; 	stloc:ObiActor(var_0_06, call:ObiActor(Component::GetComponent, ldloc:ObiBatchedConstraints[exp:Component](this))); 	stfld:ObiActor(ObiBatchedConstraints::actor, ldloc:ObiBatchedConstraints(this), ldloc:ObiActor(var_0_06)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x06002ACD RID: 10957 RVA: 0x0005D050 File Offset: 0x0005B250
		[Token(Token = "0x6002ACD")]
		[Address(RVA = "0xFFCE20", Offset = "0xFFBC20", VA = "0x180FFCE20")]
		public void OnEnable()
		{
			this.Enable();
		}

		// Token: 0x06002ACE RID: 10958 RVA: 0x0005D064 File Offset: 0x0005B264
		[Token(Token = "0x6002ACE")]
		[Address(RVA = "0xFFCD90", Offset = "0xFFBB90", VA = "0x180FFCD90")]
		public void OnDisable()
		{
			ObiActor obiActor = this.actor;
			int num = 0;
			if (!(obiActor == num) && this.actor.inSolver)
			{
				this.Disable();
			}
		}

		// Token: 0x06002ACF RID: 10959 RVA: 0x0005D0A0 File Offset: 0x0005B2A0
		[Token(Token = "0x6002ACF")]
		[Address(RVA = "0xFFCD80", Offset = "0xFFBB80", VA = "0x180FFCD80")]
		public void OnDestroy()
		{
			int num = 0;
			bool flag = this.RemoveFromSolver(num);
		}

		// Token: 0x06002AD0 RID: 10960 RVA: 0x0005D0B8 File Offset: 0x0005B2B8
		[Token(Token = "0x6002AD0")]
		[Address(RVA = "0x3088F0", Offset = "0x3076F0", VA = "0x1803088F0")]
		protected ObiBatchedConstraints()
		{
		}

		// Token: 0x04003372 RID: 13170
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x4003372")]
		public bool visualize;

		// Token: 0x04003373 RID: 13171
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x4003373")]
		[NonSerialized]
		protected ObiActor actor;

		// Token: 0x04003374 RID: 13172
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x4003374")]
		[NonSerialized]
		protected bool inSolver;
	}
}
