313 lines
9.0 KiB
C#
313 lines
9.0 KiB
C#
using System;
|
|
using Cpp2IlInjected;
|
|
using UnityEngine;
|
|
|
|
namespace Obi
|
|
{
|
|
// Token: 0x020004F3 RID: 1267
|
|
[Token(Token = "0x20004F3")]
|
|
[ExecuteInEditMode]
|
|
[RequireComponent(typeof(ObiSolver))]
|
|
public class ObiParticleBaker : MonoBehaviour
|
|
{
|
|
// Token: 0x17000309 RID: 777
|
|
// (get) Token: 0x06002C43 RID: 11331 RVA: 0x0005F9E0 File Offset: 0x0005DBE0
|
|
// (set) Token: 0x06002C44 RID: 11332 RVA: 0x0005F9F4 File Offset: 0x0005DBF4
|
|
[Token(Token = "0x17000309")]
|
|
public bool Baking
|
|
{
|
|
[Token(Token = "0x6002C43")]
|
|
[Address(RVA = "0x477710", Offset = "0x475F10", VA = "0x180477710")]
|
|
get
|
|
{
|
|
return this.baking;
|
|
}
|
|
[Token(Token = "0x6002C44")]
|
|
[Address(RVA = "0xE71280", Offset = "0xE6FA80", VA = "0x180E71280")]
|
|
set
|
|
{
|
|
this.baking = value;
|
|
if (!value)
|
|
{
|
|
this.framesToSkip = (int)((ulong)0L);
|
|
Time.captureFramerate = 0;
|
|
ObiSolver obiSolver = this.solver;
|
|
int renderablePositionsClients = obiSolver.renderablePositionsClients;
|
|
if (renderablePositionsClients > 0)
|
|
{
|
|
obiSolver.renderablePositionsClients = renderablePositionsClients;
|
|
}
|
|
return;
|
|
}
|
|
int num = this.fixedBakeFramerate;
|
|
Time.captureFramerate = Mathf.Max(0, num);
|
|
ObiSolver obiSolver2 = this.solver;
|
|
this.playing = false;
|
|
obiSolver2.simulate = true;
|
|
ObiSolver obiSolver3 = this.solver;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700030A RID: 778
|
|
// (get) Token: 0x06002C45 RID: 11333 RVA: 0x0005FA6C File Offset: 0x0005DC6C
|
|
// (set) Token: 0x06002C46 RID: 11334 RVA: 0x0005FA80 File Offset: 0x0005DC80
|
|
[Token(Token = "0x1700030A")]
|
|
public bool Playing
|
|
{
|
|
[Token(Token = "0x6002C45")]
|
|
[Address(RVA = "0x477720", Offset = "0x475F20", VA = "0x180477720")]
|
|
get
|
|
{
|
|
return this.playing;
|
|
}
|
|
[Token(Token = "0x6002C46")]
|
|
[Address(RVA = "0xE71310", Offset = "0xE6FB10", VA = "0x180E71310")]
|
|
set
|
|
{
|
|
ObiSolver obiSolver = this.solver;
|
|
this.playing = value;
|
|
obiSolver.simulate = value;
|
|
if (this.playing)
|
|
{
|
|
this.baking = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700030B RID: 779
|
|
// (get) Token: 0x06002C47 RID: 11335 RVA: 0x0005FAB8 File Offset: 0x0005DCB8
|
|
// (set) Token: 0x06002C48 RID: 11336 RVA: 0x0005FACC File Offset: 0x0005DCCC
|
|
[Token(Token = "0x1700030B")]
|
|
public bool Paused
|
|
{
|
|
[Token(Token = "0x6002C47")]
|
|
[Address(RVA = "0x8A96A0", Offset = "0x8A7EA0", VA = "0x1808A96A0")]
|
|
get
|
|
{
|
|
return this.paused;
|
|
}
|
|
[Token(Token = "0x6002C48")]
|
|
[Address(RVA = "0x8A96B0", Offset = "0x8A7EB0", VA = "0x1808A96B0")]
|
|
set
|
|
{
|
|
this.paused = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002C49 RID: 11337 RVA: 0x0005FAE0 File Offset: 0x0005DCE0
|
|
[Token(Token = "0x6002C49")]
|
|
[Address(RVA = "0xE704C0", Offset = "0xE6ECC0", VA = "0x180E704C0")]
|
|
private void Awake()
|
|
{
|
|
ObiSolver component = base.GetComponent<ObiSolver>();
|
|
this.solver = component;
|
|
if (Application.isPlaying)
|
|
{
|
|
if (this.bakeOnAwake)
|
|
{
|
|
int num = this.fixedBakeFramerate;
|
|
int num2 = 0;
|
|
this.playhead = 0f;
|
|
this.baking = true;
|
|
Time.captureFramerate = Mathf.Max(num2, num);
|
|
ObiSolver obiSolver = this.solver;
|
|
this.playing = false;
|
|
obiSolver.simulate = true;
|
|
ObiSolver obiSolver2 = this.solver;
|
|
return;
|
|
}
|
|
if (this.playOnAwake)
|
|
{
|
|
ObiSolver obiSolver3 = this.solver;
|
|
this.playhead = 0f;
|
|
this.playing = true;
|
|
obiSolver3.simulate = false;
|
|
if (this.playing)
|
|
{
|
|
this.baking = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002C4A RID: 11338 RVA: 0x0005FB98 File Offset: 0x0005DD98
|
|
[Token(Token = "0x6002C4A")]
|
|
[Address(RVA = "0xE70AA0", Offset = "0xE6F2A0", VA = "0x180E70AA0")]
|
|
private void OnEnable()
|
|
{
|
|
ObiSolver obiSolver = this.solver;
|
|
EventHandler eventHandler = new EventHandler(this.Solver_OnFrameEnd);
|
|
obiSolver.OnFrameEnd += eventHandler;
|
|
ObiSolver obiSolver2 = this.solver;
|
|
EventHandler eventHandler2 = new EventHandler(this.Solver_OnBeforeActorsFrameEnd);
|
|
EventHandler onBeforeActorsFrameEnd = obiSolver2.OnBeforeActorsFrameEnd;
|
|
Delegate @delegate = Delegate.Combine(onBeforeActorsFrameEnd, eventHandler2);
|
|
if (@delegate == 0 || @delegate != 0)
|
|
{
|
|
while (@delegate != onBeforeActorsFrameEnd)
|
|
{
|
|
}
|
|
return;
|
|
}
|
|
throw new InvalidCastException();
|
|
}
|
|
|
|
// Token: 0x06002C4B RID: 11339 RVA: 0x0005FC04 File Offset: 0x0005DE04
|
|
[Token(Token = "0x6002C4B")]
|
|
[Address(RVA = "0xE70920", Offset = "0xE6F120", VA = "0x180E70920")]
|
|
private void OnDisable()
|
|
{
|
|
this.baking = false;
|
|
this.framesToSkip = (int)((ulong)0L);
|
|
Time.captureFramerate = 0;
|
|
ObiSolver obiSolver = this.solver;
|
|
int renderablePositionsClients = obiSolver.renderablePositionsClients;
|
|
if (renderablePositionsClients > 0)
|
|
{
|
|
obiSolver.renderablePositionsClients = renderablePositionsClients;
|
|
}
|
|
EventHandler eventHandler = new EventHandler(this.Solver_OnFrameEnd);
|
|
obiSolver.OnFrameEnd -= eventHandler;
|
|
ObiSolver obiSolver2 = this.solver;
|
|
EventHandler eventHandler2 = new EventHandler(this.Solver_OnBeforeActorsFrameEnd);
|
|
EventHandler onBeforeActorsFrameEnd = obiSolver2.OnBeforeActorsFrameEnd;
|
|
Delegate @delegate = Delegate.Remove(onBeforeActorsFrameEnd, eventHandler2);
|
|
if (@delegate == 0 || @delegate != 0)
|
|
{
|
|
while (@delegate != onBeforeActorsFrameEnd)
|
|
{
|
|
}
|
|
return;
|
|
}
|
|
throw new InvalidCastException();
|
|
}
|
|
|
|
// Token: 0x06002C4C RID: 11340 RVA: 0x0005FC98 File Offset: 0x0005DE98
|
|
[Token(Token = "0x6002C4C")]
|
|
[Address(RVA = "0xE71140", Offset = "0xE6F940", VA = "0x180E71140")]
|
|
private void Solver_OnFrameEnd(object sender, EventArgs e)
|
|
{
|
|
ObiParticleCache obiParticleCache = this.cache;
|
|
int num = 0;
|
|
if (obiParticleCache != num && !this.playing && this.baking)
|
|
{
|
|
float deltaTime = Time.deltaTime;
|
|
int num2 = this.framesToSkip;
|
|
this.playhead = deltaTime;
|
|
if (num2 > 0)
|
|
{
|
|
this.framesToSkip = num2;
|
|
return;
|
|
}
|
|
this.BakeFrame(deltaTime);
|
|
int num3 = this.frameSkip;
|
|
this.framesToSkip = num3;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06002C4D RID: 11341 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002C4D")]
|
|
[Address(RVA = "0xE71040", Offset = "0xE6F840", VA = "0x180E71040")]
|
|
private void Solver_OnBeforeActorsFrameEnd(object sender, EventArgs e)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002C4E RID: 11342 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002C4E")]
|
|
[Address(RVA = "0xE705A0", Offset = "0xE6EDA0", VA = "0x180E705A0")]
|
|
public void BakeFrame(float time)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002C4F RID: 11343 RVA: 0x000020D3 File Offset: 0x000002D3
|
|
[Token(Token = "0x6002C4F")]
|
|
[Address(RVA = "0xE70BF0", Offset = "0xE6F3F0", VA = "0x180E70BF0")]
|
|
private void PlaybackFrame(float time)
|
|
{
|
|
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
|
|
}
|
|
|
|
// Token: 0x06002C50 RID: 11344 RVA: 0x0005FD08 File Offset: 0x0005DF08
|
|
[Token(Token = "0x6002C50")]
|
|
[Address(RVA = "0xE71200", Offset = "0xE6FA00", VA = "0x180E71200")]
|
|
public ObiParticleBaker()
|
|
{
|
|
ObiParticleCache.Frame frame = new ObiParticleCache.Frame();
|
|
this.frame = frame;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x040034BE RID: 13502
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x40034BE")]
|
|
public ObiParticleCache cache;
|
|
|
|
// Token: 0x040034BF RID: 13503
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x40034BF")]
|
|
public float playhead;
|
|
|
|
// Token: 0x040034C0 RID: 13504
|
|
[FieldOffset(Offset = "0x24")]
|
|
[Token(Token = "0x40034C0")]
|
|
public int frameSkip = (int)((ulong)8L);
|
|
|
|
// Token: 0x040034C1 RID: 13505
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x40034C1")]
|
|
public int fixedBakeFramerate = (int)((ulong)60L);
|
|
|
|
// Token: 0x040034C2 RID: 13506
|
|
[FieldOffset(Offset = "0x2C")]
|
|
[Token(Token = "0x40034C2")]
|
|
public bool interpolate = true;
|
|
|
|
// Token: 0x040034C3 RID: 13507
|
|
[FieldOffset(Offset = "0x2D")]
|
|
[Token(Token = "0x40034C3")]
|
|
public bool loopPlayback;
|
|
|
|
// Token: 0x040034C4 RID: 13508
|
|
[FieldOffset(Offset = "0x2E")]
|
|
[Token(Token = "0x40034C4")]
|
|
public bool bakeOnAwake;
|
|
|
|
// Token: 0x040034C5 RID: 13509
|
|
[FieldOffset(Offset = "0x2F")]
|
|
[Token(Token = "0x40034C5")]
|
|
public bool playOnAwake;
|
|
|
|
// Token: 0x040034C6 RID: 13510
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x40034C6")]
|
|
private bool baking;
|
|
|
|
// Token: 0x040034C7 RID: 13511
|
|
[FieldOffset(Offset = "0x31")]
|
|
[Token(Token = "0x40034C7")]
|
|
private bool playing;
|
|
|
|
// Token: 0x040034C8 RID: 13512
|
|
[FieldOffset(Offset = "0x32")]
|
|
[Token(Token = "0x40034C8")]
|
|
private bool paused;
|
|
|
|
// Token: 0x040034C9 RID: 13513
|
|
[FieldOffset(Offset = "0x34")]
|
|
[Token(Token = "0x40034C9")]
|
|
private int framesToSkip;
|
|
|
|
// Token: 0x040034CA RID: 13514
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x40034CA")]
|
|
private ObiSolver solver;
|
|
|
|
// Token: 0x040034CB RID: 13515
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x40034CB")]
|
|
private ObiParticleCache.Frame frame;
|
|
}
|
|
}
|