using System;
using Cpp2IlInjected;
using UnityEngine;

namespace Obi
{
	// Token: 0x020004D0 RID: 1232
	[Token(Token = "0x20004D0")]
	public abstract class ObiEmitterMaterial : ScriptableObject
	{
		// Token: 0x14000012 RID: 18
		// (add) Token: 0x06002B72 RID: 11122 RVA: 0x0005DDAC File Offset: 0x0005BFAC
		// (remove) Token: 0x06002B73 RID: 11123 RVA: 0x0005DE00 File Offset: 0x0005C000
		[Token(Token = "0x14000012")]
		public event EventHandler<ObiEmitterMaterial.MaterialChangeEventArgs> OnChangesMade
		{
			[Token(Token = "0x6002B72")]
			[Address(RVA = "0x100F3A0", Offset = "0x100E1A0", VA = "0x18100F3A0")]
			add
			{
				Delegate @delegate = Delegate.Remove(this.onChangesMade, value);
				int num = 0;
				if (@delegate == 0 || @delegate != 0)
				{
					this.onChangesMade = num;
					Delegate delegate2 = Delegate.Combine(this.onChangesMade, value);
					if (delegate2 != 0 && delegate2 == 0)
					{
						throw new InvalidCastException();
					}
					this.onChangesMade = delegate2;
				}
				throw new InvalidCastException();
			}
			[Token(Token = "0x6002B73")]
			[Address(RVA = "0x100F470", Offset = "0x100E270", VA = "0x18100F470")]
			remove
			{
				Delegate @delegate = Delegate.Remove(this.onChangesMade, value);
				int num = 0;
				if (@delegate == 0 || @delegate != 0)
				{
					this.onChangesMade = num;
				}
				throw new InvalidCastException();
			}
		}

		// Token: 0x06002B74 RID: 11124 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B74")]
		[Address(RVA = "0x100F230", Offset = "0x100E030", VA = "0x18100F230")]
		public void CommitChanges(ObiEmitterMaterial.MaterialChanges changes)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B75 RID: 11125 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B75")]
		[Address(RVA = "0x100F340", Offset = "0x100E140", VA = "0x18100F340")]
		public float GetParticleSize(Oni.SolverParameters.Mode mode)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B76 RID: 11126 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002B76")]
		[Address(RVA = "0x100F2C0", Offset = "0x100E0C0", VA = "0x18100F2C0")]
		public float GetParticleMass(Oni.SolverParameters.Mode mode)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002B77 RID: 11127
		[Token(Token = "0x6002B77")]
		[Address(Slot = "4")]
		public abstract Oni.FluidMaterial GetEquivalentOniMaterial(Oni.SolverParameters.Mode mode);

		// Token: 0x06002B78 RID: 11128 RVA: 0x0005DE30 File Offset: 0x0005C030
		[Token(Token = "0x6002B78")]
		[Address(RVA = "0x100F210", Offset = "0x100E010", VA = "0x18100F210")]
		protected ObiEmitterMaterial()
		{
		}

		// Token: 0x040033E9 RID: 13289
		[FieldOffset(Offset = "0x18")]
		[Token(Token = "0x40033E9")]
		public float resolution = 1f;

		// Token: 0x040033EA RID: 13290
		[FieldOffset(Offset = "0x1C")]
		[Token(Token = "0x40033EA")]
		public float restDensity = 1000f;

		// Token: 0x040033EB RID: 13291
		[FieldOffset(Offset = "0x20")]
		[Token(Token = "0x40033EB")]
		private EventHandler<ObiEmitterMaterial.MaterialChangeEventArgs> onChangesMade;

		// Token: 0x020004D1 RID: 1233
		[Token(Token = "0x20004D1")]
		public class MaterialChangeEventArgs : EventArgs
		{
			// Token: 0x06002B79 RID: 11129 RVA: 0x0005DE5C File Offset: 0x0005C05C
			[Token(Token = "0x6002B79")]
			[Address(RVA = "0x69F210", Offset = "0x69E010", VA = "0x18069F210")]
			public MaterialChangeEventArgs(ObiEmitterMaterial.MaterialChanges changes)
			{
				this.changes = changes;
			}

			// Token: 0x040033EC RID: 13292
			[FieldOffset(Offset = "0x10")]
			[Token(Token = "0x40033EC")]
			public ObiEmitterMaterial.MaterialChanges changes;
		}

		// Token: 0x020004D2 RID: 1234
		[Token(Token = "0x20004D2")]
		[Flags]
		public enum MaterialChanges
		{
			// Token: 0x040033EE RID: 13294
			[Token(Token = "0x40033EE")]
			PER_MATERIAL_DATA = 0,
			// Token: 0x040033EF RID: 13295
			[Token(Token = "0x40033EF")]
			PER_PARTICLE_DATA = 1
		}
	}
}
