Files
NobetaSource/Cpp2IL/Assembly-CSharp/Obi/ObiStitcher.cs
2023-09-06 22:09:22 +02:00

407 lines
13 KiB
C#

using System;
using System.Collections.Generic;
using Cpp2IlInjected;
using UnityEngine;
namespace Obi
{
// Token: 0x0200049E RID: 1182
[Token(Token = "0x200049E")]
[ExecuteInEditMode]
[AddComponentMenu("Physics/Obi/Obi Stitcher")]
public class ObiStitcher : MonoBehaviour, IObiSolverClient
{
// Token: 0x170002CC RID: 716
// (get) Token: 0x06002A09 RID: 10761 RVA: 0x0005B83C File Offset: 0x00059A3C
// (set) Token: 0x06002A08 RID: 10760 RVA: 0x0005B718 File Offset: 0x00059918
[Token(Token = "0x170002CC")]
public ObiActor Actor1
{
[Token(Token = "0x6002A09")]
[Address(RVA = "0x2990A0", Offset = "0x2978A0", VA = "0x1802990A0")]
get
{
return this.actor1;
}
[Token(Token = "0x6002A08")]
[Address(RVA = "0xE7D7D0", Offset = "0xE7BFD0", VA = "0x180E7D7D0")]
set
{
if (this.actor1 != value)
{
ObiActor obiActor = this.actor1;
int num = 0;
if (obiActor != num)
{
ObiActor obiActor2 = this.actor1;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler = new EventHandler(this.Actor_OnAddedToSolver);
obiActor2.OnAddedToSolver -= eventHandler;
ObiActor obiActor3 = this.actor1;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler2 = new EventHandler(this.Actor_OnRemovedFromSolver);
obiActor3.OnRemovedFromSolver -= eventHandler2;
ObiActor obiActor4 = this.actor1;
if (obiActor4.inSolver)
{
ObiActor.ObiActorSolverArgs obiActorSolverArgs = new ObiActor.ObiActorSolverArgs(obiActor4.solver);
this.Actor_OnRemovedFromSolver(obiActor4, obiActorSolverArgs);
}
}
this.actor1 = value;
ObiActor obiActor5 = this.actor1;
int num2 = 0;
if (obiActor5 != num2)
{
ObiActor obiActor6 = this.actor1;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler3 = new EventHandler(this.Actor_OnAddedToSolver);
obiActor6.OnAddedToSolver += eventHandler3;
ObiActor obiActor7 = this.actor1;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler4 = new EventHandler(this.Actor_OnRemovedFromSolver);
obiActor7.OnRemovedFromSolver += eventHandler4;
ObiActor obiActor8 = this.actor1;
if (obiActor8.inSolver)
{
ObiActor.ObiActorSolverArgs obiActorSolverArgs2 = new ObiActor.ObiActorSolverArgs(obiActor8.solver);
this.Actor_OnAddedToSolver(obiActor8, obiActorSolverArgs2);
}
}
}
}
}
// Token: 0x170002CD RID: 717
// (get) Token: 0x06002A0B RID: 10763 RVA: 0x0005B974 File Offset: 0x00059B74
// (set) Token: 0x06002A0A RID: 10762 RVA: 0x0005B850 File Offset: 0x00059A50
[Token(Token = "0x170002CD")]
public ObiActor Actor2
{
[Token(Token = "0x6002A0B")]
[Address(RVA = "0x4FC850", Offset = "0x4FB050", VA = "0x1804FC850")]
get
{
return this.actor2;
}
[Token(Token = "0x6002A0A")]
[Address(RVA = "0xE7DAC0", Offset = "0xE7C2C0", VA = "0x180E7DAC0")]
set
{
if (this.actor2 != value)
{
ObiActor obiActor = this.actor2;
int num = 0;
if (obiActor != num)
{
ObiActor obiActor2 = this.actor2;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler = new EventHandler(this.Actor_OnAddedToSolver);
obiActor2.OnAddedToSolver -= eventHandler;
ObiActor obiActor3 = this.actor2;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler2 = new EventHandler(this.Actor_OnRemovedFromSolver);
obiActor3.OnRemovedFromSolver -= eventHandler2;
ObiActor obiActor4 = this.actor2;
if (obiActor4.inSolver)
{
ObiActor.ObiActorSolverArgs obiActorSolverArgs = new ObiActor.ObiActorSolverArgs(obiActor4.solver);
this.Actor_OnRemovedFromSolver(obiActor4, obiActorSolverArgs);
}
}
this.actor2 = value;
ObiActor obiActor5 = this.actor2;
int num2 = 0;
if (obiActor5 != num2)
{
ObiActor obiActor6 = this.actor2;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler3 = new EventHandler(this.Actor_OnAddedToSolver);
obiActor6.OnAddedToSolver += eventHandler3;
ObiActor obiActor7 = this.actor2;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler4 = new EventHandler(this.Actor_OnRemovedFromSolver);
obiActor7.OnRemovedFromSolver += eventHandler4;
ObiActor obiActor8 = this.actor2;
if (obiActor8.inSolver)
{
ObiActor.ObiActorSolverArgs obiActorSolverArgs2 = new ObiActor.ObiActorSolverArgs(obiActor8.solver);
this.Actor_OnAddedToSolver(obiActor8, obiActorSolverArgs2);
}
}
}
}
}
// Token: 0x170002CE RID: 718
// (get) Token: 0x06002A0C RID: 10764 RVA: 0x0005B988 File Offset: 0x00059B88
[Token(Token = "0x170002CE")]
public int StitchCount
{
[Token(Token = "0x6002A0C")]
[Address(RVA = "0xE7D740", Offset = "0xE7BF40", VA = "0x180E7D740")]
get
{
return this.stitches._size;
}
}
// Token: 0x170002CF RID: 719
// (get) Token: 0x06002A0D RID: 10765 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x170002CF")]
public IEnumerable<ObiStitcher.Stitch> Stitches
{
[Token(Token = "0x6002A0D")]
[Address(RVA = "0xE7D780", Offset = "0xE7BF80", VA = "0x180E7D780")]
get
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
}
// Token: 0x06002A0E RID: 10766 RVA: 0x0005B9A8 File Offset: 0x00059BA8
[Token(Token = "0x6002A0E")]
[Address(RVA = "0xE7D040", Offset = "0xE7B840", VA = "0x180E7D040")]
public void OnEnable()
{
ObiActor obiActor = this.actor1;
int num = 0;
if (obiActor != num)
{
ObiActor obiActor2 = this.actor1;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler = new EventHandler(this.Actor_OnAddedToSolver);
obiActor2.OnAddedToSolver += eventHandler;
ObiActor obiActor3 = this.actor1;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler2 = new EventHandler(this.Actor_OnRemovedFromSolver);
obiActor3.OnRemovedFromSolver += eventHandler2;
}
ObiActor obiActor4 = this.actor2;
int num2 = 0;
if (obiActor4 != num2)
{
ObiActor obiActor5 = this.actor2;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler3 = new EventHandler(this.Actor_OnAddedToSolver);
obiActor5.OnAddedToSolver += eventHandler3;
ObiActor obiActor6 = this.actor2;
EventHandler<ObiActor.ObiActorSolverArgs> eventHandler4 = new EventHandler(this.Actor_OnRemovedFromSolver);
obiActor6.OnRemovedFromSolver += eventHandler4;
}
ObiActor obiActor7 = this.actor1;
int num3 = 0;
if (obiActor7 != num3)
{
ObiActor obiActor8 = this.actor2;
int num4 = 0;
if (obiActor8 != num4)
{
bool flag = Oni.EnableBatch(this.batch, true);
}
}
}
// Token: 0x06002A0F RID: 10767 RVA: 0x0005BA9C File Offset: 0x00059C9C
[Token(Token = "0x6002A0F")]
[Address(RVA = "0xE7D030", Offset = "0xE7B830", VA = "0x180E7D030")]
public void OnDisable()
{
IntPtr intPtr = this.batch;
int num = 0;
bool flag = Oni.EnableBatch(intPtr, num != 0);
}
// Token: 0x06002A10 RID: 10768 RVA: 0x0005BABC File Offset: 0x00059CBC
[Token(Token = "0x6002A10")]
[Address(RVA = "0xE7CE60", Offset = "0xE7B660", VA = "0x180E7CE60")]
public int AddStitch(int particle1, int particle2)
{
List<ObiStitcher.Stitch> list = this.stitches;
ObiStitcher.Stitch stitch = new ObiStitcher.Stitch(particle1, particle2);
list.Add(stitch);
return this.stitches._size;
}
// Token: 0x06002A11 RID: 10769 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002A11")]
[Address(RVA = "0xE7D650", Offset = "0xE7BE50", VA = "0x180E7D650")]
public void RemoveStitch(int index)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002A12 RID: 10770 RVA: 0x0005BAF0 File Offset: 0x00059CF0
[Token(Token = "0x6002A12")]
[Address(RVA = "0xE7CFD0", Offset = "0xE7B7D0", VA = "0x180E7CFD0")]
public void Clear()
{
this.stitches.Clear();
int num = 0;
this.PushDataToSolver((ParticleData)num);
}
// Token: 0x06002A13 RID: 10771 RVA: 0x0005BB18 File Offset: 0x00059D18
[Token(Token = "0x6002A13")]
[Address(RVA = "0xE7CDF0", Offset = "0xE7B5F0", VA = "0x180E7CDF0")]
private void Actor_OnRemovedFromSolver(object sender, ObiActor.ObiActorSolverArgs e)
{
ObiSolver solver = this.actor1.solver;
IntPtr intPtr = this.batch;
Oni.RemoveBatch(solver.oniSolver, intPtr);
this.batch = (IntPtr)((ulong)0L);
this.inSolver = false;
}
// Token: 0x06002A14 RID: 10772 RVA: 0x0005BB5C File Offset: 0x00059D5C
[Token(Token = "0x6002A14")]
[Address(RVA = "0xE7CC60", Offset = "0xE7B460", VA = "0x180E7CC60")]
private void Actor_OnAddedToSolver(object sender, ObiActor.ObiActorSolverArgs e)
{
ObiActor obiActor = this.actor1;
if (obiActor.inSolver)
{
ObiActor obiActor2 = this.actor2;
if (obiActor2.inSolver)
{
ObiSolver solver = obiActor2.solver;
if (obiActor.solver != solver)
{
Debug.LogError("ObiStitcher cannot handle actors in different solvers.");
return;
}
int num = 0;
IntPtr intPtr = Oni.CreateBatch(10, num != 0);
ObiActor obiActor3 = this.actor1;
this.batch = intPtr;
IntPtr oniSolver = obiActor3.solver.oniSolver;
int num2 = 0;
IntPtr intPtr2 = Oni.AddBatch(oniSolver, intPtr, num2 != 0);
this.inSolver = true;
int num3 = 0;
this.PushDataToSolver((ParticleData)num3);
if (!base.isActiveAndEnabled)
{
IntPtr intPtr3 = this.batch;
int num4 = 0;
bool flag = Oni.EnableBatch(intPtr3, num4 != 0);
return;
}
this.OnEnable();
return;
}
}
}
// Token: 0x06002A15 RID: 10773 RVA: 0x0005BC2C File Offset: 0x00059E2C
[Token(Token = "0x6002A15")]
[Address(RVA = "0xE7CF30", Offset = "0xE7B730", VA = "0x180E7CF30", Slot = "4")]
public bool AddToSolver(object info)
{
int num = 0;
IntPtr intPtr = Oni.CreateBatch(10, num != 0);
ObiActor obiActor = this.actor1;
this.batch = intPtr;
IntPtr oniSolver = obiActor.solver.oniSolver;
int num2 = 0;
IntPtr intPtr2 = Oni.AddBatch(oniSolver, intPtr, num2 != 0);
this.inSolver = true;
int num3 = 0;
this.PushDataToSolver((ParticleData)num3);
if (!base.isActiveAndEnabled)
{
IntPtr intPtr3 = this.batch;
int num4 = 0;
bool flag = Oni.EnableBatch(intPtr3, num4 != 0);
return true;
}
this.OnEnable();
return true;
}
// Token: 0x06002A16 RID: 10774 RVA: 0x0005BCAC File Offset: 0x00059EAC
[Token(Token = "0x6002A16")]
[Address(RVA = "0xE7D5E0", Offset = "0xE7BDE0", VA = "0x180E7D5E0", Slot = "5")]
public bool RemoveFromSolver(object info)
{
ObiSolver solver = this.actor1.solver;
IntPtr intPtr = this.batch;
Oni.RemoveBatch(solver.oniSolver, intPtr);
this.batch = (IntPtr)((ulong)0L);
this.inSolver = false;
return true;
}
// Token: 0x06002A17 RID: 10775 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002A17")]
[Address(RVA = "0xE7D2B0", Offset = "0xE7BAB0", VA = "0x180E7D2B0", Slot = "6")]
public void PushDataToSolver(ParticleData data = ParticleData.NONE)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002A18 RID: 10776 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002A18")]
[Address(RVA = "0x29E8B0", Offset = "0x29D0B0", VA = "0x18029E8B0", Slot = "7")]
public void PullDataFromSolver(ParticleData data = ParticleData.NONE)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002A19 RID: 10777 RVA: 0x0005BCF0 File Offset: 0x00059EF0
[Token(Token = "0x6002A19")]
[Address(RVA = "0xE7D6C0", Offset = "0xE7BEC0", VA = "0x180E7D6C0")]
public ObiStitcher()
{
List<ObiStitcher.Stitch> list = new List();
this.stitches = list;
base..ctor();
}
// Token: 0x0400331B RID: 13083
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x400331B")]
[HideInInspector]
[SerializeField]
private List<ObiStitcher.Stitch> stitches;
// Token: 0x0400331C RID: 13084
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x400331C")]
[SerializeField]
[HideInInspector]
private ObiActor actor1;
// Token: 0x0400331D RID: 13085
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x400331D")]
[SerializeField]
[HideInInspector]
private ObiActor actor2;
// Token: 0x0400331E RID: 13086
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x400331E")]
private IntPtr batch;
// Token: 0x0400331F RID: 13087
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x400331F")]
private bool inSolver;
// Token: 0x0200049F RID: 1183
[Token(Token = "0x200049F")]
[Serializable]
public class Stitch
{
// Token: 0x06002A1A RID: 10778 RVA: 0x0005BD10 File Offset: 0x00059F10
[Token(Token = "0x6002A1A")]
[Address(RVA = "0x69A310", Offset = "0x698B10", VA = "0x18069A310")]
public Stitch(int particleIndex1, int particleIndex2)
{
this.particleIndex1 = particleIndex1;
this.particleIndex2 = particleIndex2;
}
// Token: 0x04003320 RID: 13088
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4003320")]
public int particleIndex1;
// Token: 0x04003321 RID: 13089
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x4003321")]
public int particleIndex2;
}
}
}