393 lines
13 KiB
C#
393 lines
13 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.CompilerServices;
|
|
using Cpp2IlInjected;
|
|
using RecRoom.Core.Pools;
|
|
using UnityEngine;
|
|
|
|
namespace RRUI.Data
|
|
{
|
|
// Token: 0x020010C8 RID: 4296
|
|
[Token(Token = "0x20010C8")]
|
|
[DisallowMultipleComponent]
|
|
public class PrefabSpawner : MonoBehaviour
|
|
{
|
|
// Token: 0x1700104B RID: 4171
|
|
// (get) Token: 0x0600603F RID: 24639 RVA: 0x001507D0 File Offset: 0x0014E9D0
|
|
[Token(Token = "0x1700104B")]
|
|
public IReadOnlyList<GameObject> BFFKHMEICIK
|
|
{
|
|
[Token(Token = "0x600603F")]
|
|
[Address(RVA = "0x4157C0", Offset = "0x4147C0", VA = "0x1804157C0")]
|
|
get
|
|
{
|
|
/*
|
|
An exception occurred when decompiling this method (0600603F)
|
|
|
|
ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IReadOnlyList`1<UnityEngine.GameObject> RRUI.Data.PrefabSpawner::get_SpawnedInstances()
|
|
|
|
---> System.Exception: Basic block has to end with unconditional control flow.
|
|
{
|
|
Block_0:
|
|
stloc:class [mscorlib]System.Collections.Generic.List`1<class [UnityEngine.CoreModule]UnityEngine.GameObject>(var_0_06, ldfld:class [mscorlib]System.Collections.Generic.List`1<class [UnityEngine.CoreModule]UnityEngine.GameObject>(PrefabSpawner::MPMPOMFCAGM, ldloc:PrefabSpawner(this)))
|
|
}
|
|
|
|
at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
|
|
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 355
|
|
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 1663
|
|
*/;
|
|
}
|
|
}
|
|
|
|
// Token: 0x1700104C RID: 4172
|
|
// (get) Token: 0x06006040 RID: 24640 RVA: 0x001507E4 File Offset: 0x0014E9E4
|
|
[Token(Token = "0x1700104C")]
|
|
private ObjectPool BAMAOFFBHIC
|
|
{
|
|
[Token(Token = "0x6006040")]
|
|
[Address(RVA = "0x1CFF840", Offset = "0x1CFE840", VA = "0x181CFF840")]
|
|
get
|
|
{
|
|
ObjectPool objectPool = this._objectPool;
|
|
int num = 0;
|
|
if (objectPool == num)
|
|
{
|
|
ObjectPool objectPool2 = base.gameObject.AddComponent<ObjectPool>();
|
|
this._objectPool = objectPool2;
|
|
}
|
|
return this._objectPool;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06006041 RID: 24641 RVA: 0x00150824 File Offset: 0x0014EA24
|
|
[Token(Token = "0x6006041")]
|
|
[Address(RVA = "0x217E250", Offset = "0x217D250", VA = "0x18217E250")]
|
|
public void ClearAndSpawnForList<T>(GameObject CFAPNBBHEKB, IReadOnlyList<T> DAAFDLFCOGO)
|
|
{
|
|
if (this.DANPHIIMOAC)
|
|
{
|
|
GameObject mpdmfgogcjc = this.MPDMFGOGCJC;
|
|
bool flag = CFAPNBBHEKB == mpdmfgogcjc;
|
|
if (flag && flag)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
if (DAAFDLFCOGO == 0 || "{il2cpp array field il2cppMethodInfo->}" == (ulong)1L)
|
|
{
|
|
}
|
|
int num = 0;
|
|
this.PCHOAANENBM(CFAPNBBHEKB, num);
|
|
this.MPDMFGOGCJC = CFAPNBBHEKB;
|
|
this.DANPHIIMOAC = true;
|
|
this.IPKDOMKNGMO = true;
|
|
}
|
|
|
|
// Token: 0x06006042 RID: 24642 RVA: 0x00150880 File Offset: 0x0014EA80
|
|
[Token(Token = "0x6006042")]
|
|
[Address(RVA = "0x1CFF590", Offset = "0x1CFE590", VA = "0x181CFF590")]
|
|
public void ClearAndSpawnForCount(GameObject CFAPNBBHEKB, int MNIJHBJDPPA)
|
|
{
|
|
this.PCHOAANENBM(CFAPNBBHEKB, MNIJHBJDPPA);
|
|
this.MPDMFGOGCJC = CFAPNBBHEKB;
|
|
this.DANPHIIMOAC = false;
|
|
this.IPKDOMKNGMO = true;
|
|
}
|
|
|
|
// Token: 0x06006043 RID: 24643 RVA: 0x001508AC File Offset: 0x0014EAAC
|
|
[Token(Token = "0x6006043")]
|
|
[Address(RVA = "0x1CFF9B0", Offset = "0x1CFE9B0", VA = "0x181CFF9B0")]
|
|
private void PCHOAANENBM(GameObject CFAPNBBHEKB, int MNIJHBJDPPA)
|
|
{
|
|
if (this.IPKDOMKNGMO && this.MPDMFGOGCJC == CFAPNBBHEKB)
|
|
{
|
|
List<GameObject> mpmpomfcagm = this.MPMPOMFCAGM;
|
|
int num = 0;
|
|
if (MNIJHBJDPPA <= 0)
|
|
{
|
|
return;
|
|
}
|
|
List<GameObject> mpmpomfcagm2 = this.MPMPOMFCAGM;
|
|
IILCGFIHJLP<GameObject, int> instanceSpawnedEvent = this.InstanceSpawnedEvent;
|
|
ThrowHelper.ThrowArgumentOutOfRangeException();
|
|
num++;
|
|
}
|
|
this.Clear();
|
|
int num2 = 0;
|
|
if (MNIJHBJDPPA > 0)
|
|
{
|
|
GameObject gameObject = this.OBCMOHDGJNN(CFAPNBBHEKB);
|
|
Transform transform = gameObject.transform;
|
|
int num3 = base.transform.childCount - 1;
|
|
transform.SetSiblingIndex(num3);
|
|
this.MPMPOMFCAGM.Add(gameObject);
|
|
IILCGFIHJLP<GameObject, int> instanceSpawnedEvent2 = this.InstanceSpawnedEvent;
|
|
if (instanceSpawnedEvent2 != 0)
|
|
{
|
|
int size = this.MPMPOMFCAGM._size;
|
|
instanceSpawnedEvent2.CNFDGDEOPPF(gameObject, size);
|
|
}
|
|
num2++;
|
|
}
|
|
GameObject mpdmfgogcjc = this.MPDMFGOGCJC;
|
|
this.DANPHIIMOAC = false;
|
|
if (CFAPNBBHEKB != mpdmfgogcjc)
|
|
{
|
|
this.IPKDOMKNGMO = false;
|
|
this.MPDMFGOGCJC = CFAPNBBHEKB;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06006044 RID: 24644 RVA: 0x00150998 File Offset: 0x0014EB98
|
|
[Token(Token = "0x6006044")]
|
|
[Address(RVA = "0x1CFF430", Offset = "0x1CFE430", VA = "0x181CFF430")]
|
|
public void Append(GameObject CFAPNBBHEKB, int MNIJHBJDPPA = 1)
|
|
{
|
|
int num = 0;
|
|
if (MNIJHBJDPPA > 0)
|
|
{
|
|
GameObject gameObject = this.OBCMOHDGJNN(CFAPNBBHEKB);
|
|
Transform transform = gameObject.transform;
|
|
int num2 = base.transform.childCount - 1;
|
|
transform.SetSiblingIndex(num2);
|
|
this.MPMPOMFCAGM.Add(gameObject);
|
|
IILCGFIHJLP<GameObject, int> instanceSpawnedEvent = this.InstanceSpawnedEvent;
|
|
if (instanceSpawnedEvent != 0)
|
|
{
|
|
int size = this.MPMPOMFCAGM._size;
|
|
instanceSpawnedEvent.CNFDGDEOPPF(gameObject, size);
|
|
}
|
|
num++;
|
|
}
|
|
GameObject mpdmfgogcjc = this.MPDMFGOGCJC;
|
|
this.DANPHIIMOAC = false;
|
|
if (CFAPNBBHEKB != mpdmfgogcjc)
|
|
{
|
|
this.IPKDOMKNGMO = false;
|
|
this.MPDMFGOGCJC = CFAPNBBHEKB;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06006045 RID: 24645 RVA: 0x00150A34 File Offset: 0x0014EC34
|
|
[Token(Token = "0x6006045")]
|
|
[Address(RVA = "0x1CFFBE0", Offset = "0x1CFEBE0", VA = "0x181CFFBE0")]
|
|
public void Prepend(GameObject CFAPNBBHEKB, int MNIJHBJDPPA = 1)
|
|
{
|
|
int num = 0;
|
|
if (MNIJHBJDPPA > 0)
|
|
{
|
|
GameObject gameObject = this.OBCMOHDGJNN(CFAPNBBHEKB);
|
|
Transform transform = gameObject.transform;
|
|
int num2 = 0;
|
|
transform.SetSiblingIndex(num2);
|
|
List<GameObject> mpmpomfcagm = this.MPMPOMFCAGM;
|
|
int num3 = 0;
|
|
mpmpomfcagm.Insert(num3, gameObject);
|
|
IILCGFIHJLP<GameObject, int> instanceSpawnedEvent = this.InstanceSpawnedEvent;
|
|
if (instanceSpawnedEvent != 0)
|
|
{
|
|
int num4 = 0;
|
|
instanceSpawnedEvent.CNFDGDEOPPF(gameObject, num4);
|
|
}
|
|
num++;
|
|
}
|
|
GameObject mpdmfgogcjc = this.MPDMFGOGCJC;
|
|
this.DANPHIIMOAC = false;
|
|
if (CFAPNBBHEKB != mpdmfgogcjc)
|
|
{
|
|
this.IPKDOMKNGMO = false;
|
|
this.MPDMFGOGCJC = CFAPNBBHEKB;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06006046 RID: 24646 RVA: 0x00150AC0 File Offset: 0x0014ECC0
|
|
[Token(Token = "0x6006046")]
|
|
[Address(RVA = "0x1CFF5C0", Offset = "0x1CFE5C0", VA = "0x181CFF5C0")]
|
|
public void Clear()
|
|
{
|
|
int num;
|
|
do
|
|
{
|
|
num = 0;
|
|
List<GameObject> mpmpomfcagm = this.MPMPOMFCAGM;
|
|
bool flag;
|
|
if (flag)
|
|
{
|
|
ObjectPool objectPool = this._objectPool;
|
|
int num2 = 0;
|
|
if (objectPool == num2)
|
|
{
|
|
ObjectPool objectPool2 = base.gameObject.AddComponent<ObjectPool>();
|
|
this._objectPool = objectPool2;
|
|
}
|
|
ObjectPool objectPool3 = this._objectPool;
|
|
int num3 = 0;
|
|
bool flag2 = objectPool3.Release<Transform>(num3);
|
|
}
|
|
}
|
|
while (num != 0);
|
|
this.MPMPOMFCAGM.Clear();
|
|
this.DANPHIIMOAC = false;
|
|
this.IPKDOMKNGMO = false;
|
|
this.MPDMFGOGCJC = (ulong)0L;
|
|
}
|
|
|
|
// Token: 0x06006047 RID: 24647 RVA: 0x00150B54 File Offset: 0x0014ED54
|
|
[Token(Token = "0x6006047")]
|
|
[Address(RVA = "0x1CFFD10", Offset = "0x1CFED10", VA = "0x181CFFD10")]
|
|
public void Remove(IEnumerable<GameObject> DHDOAIMECLD)
|
|
{
|
|
int num;
|
|
int num2;
|
|
do
|
|
{
|
|
num = 0;
|
|
num2 = 0;
|
|
List<GameObject> mpmpomfcagm = this.MPMPOMFCAGM;
|
|
Predicate<GameObject> predicate = (GameObject sp) => Enumerable.Contains<GameObject>(DHDOAIMECLD, sp);
|
|
List<GameObject> list = ECNNGIFNNNM.FHAOCJFENEF<GameObject>(mpmpomfcagm, predicate);
|
|
List<GameObject>.Enumerator enumerator = mpmpomfcagm.GetEnumerator();
|
|
bool flag;
|
|
if (flag)
|
|
{
|
|
ObjectPool objectPool = this._objectPool;
|
|
int num3 = 0;
|
|
if (objectPool == num3)
|
|
{
|
|
ObjectPool objectPool2 = base.gameObject.AddComponent<ObjectPool>();
|
|
this._objectPool = objectPool2;
|
|
}
|
|
ObjectPool objectPool3 = this._objectPool;
|
|
if (mpmpomfcagm != 0)
|
|
{
|
|
}
|
|
bool flag2 = objectPool3.Release<Transform>(num);
|
|
}
|
|
}
|
|
while (num != 0);
|
|
if (num2 != 0)
|
|
{
|
|
this.DANPHIIMOAC = false;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06006048 RID: 24648 RVA: 0x00150C04 File Offset: 0x0014EE04
|
|
[Token(Token = "0x6006048")]
|
|
[Address(RVA = "0x1CFF8E0", Offset = "0x1CFE8E0", VA = "0x181CFF8E0")]
|
|
private GameObject OBCMOHDGJNN(GameObject CFAPNBBHEKB)
|
|
{
|
|
ObjectPool objectPool = this.BAMAOFFBHIC;
|
|
if (CFAPNBBHEKB != 0)
|
|
{
|
|
Transform transform = CFAPNBBHEKB.transform;
|
|
}
|
|
int num = 0;
|
|
Transform transform2;
|
|
if (!(transform2 != num))
|
|
{
|
|
}
|
|
GameObject gameObject;
|
|
return gameObject;
|
|
}
|
|
|
|
// Token: 0x06006049 RID: 24649 RVA: 0x00150C3C File Offset: 0x0014EE3C
|
|
[Token(Token = "0x6006049")]
|
|
[Address(RVA = "0x1CFF7C0", Offset = "0x1CFE7C0", VA = "0x181CFF7C0")]
|
|
private void IOFOFLHIJGM(GameObject GCCLEJOGCCE)
|
|
{
|
|
ObjectPool objectPool = this.BAMAOFFBHIC;
|
|
if (GCCLEJOGCCE != 0)
|
|
{
|
|
Transform transform = GCCLEJOGCCE.transform;
|
|
}
|
|
int num = 0;
|
|
bool flag = objectPool.Release<Transform>(num);
|
|
}
|
|
|
|
// Token: 0x0600604A RID: 24650 RVA: 0x00150C6C File Offset: 0x0014EE6C
|
|
[Token(Token = "0x600604A")]
|
|
[Address(RVA = "0x1CFFF90", Offset = "0x1CFEF90", VA = "0x181CFFF90")]
|
|
public PrefabSpawner()
|
|
{
|
|
int num;
|
|
int num2;
|
|
IILCGFIHJLP<GameObject, int> iilcgfihjlp = new IILCGFIHJLP(32, num != 0, num2 != 0);
|
|
num2 = 0;
|
|
num = 0;
|
|
this.InstanceSpawnedEvent = iilcgfihjlp;
|
|
List<GameObject> list = new List();
|
|
this.MPMPOMFCAGM = list;
|
|
base..ctor();
|
|
}
|
|
|
|
// Token: 0x04003FAE RID: 16302
|
|
[FieldOffset(Offset = "0x18")]
|
|
[Token(Token = "0x4003FAE")]
|
|
public IILCGFIHJLP<GameObject, int> InstanceSpawnedEvent;
|
|
|
|
// Token: 0x04003FAF RID: 16303
|
|
[FieldOffset(Offset = "0x20")]
|
|
[Token(Token = "0x4003FAF")]
|
|
protected List<GameObject> MPMPOMFCAGM;
|
|
|
|
// Token: 0x04003FB0 RID: 16304
|
|
[FieldOffset(Offset = "0x28")]
|
|
[Token(Token = "0x4003FB0")]
|
|
private ICollection GCMCDAFMKNP;
|
|
|
|
// Token: 0x04003FB1 RID: 16305
|
|
[FieldOffset(Offset = "0x30")]
|
|
[Token(Token = "0x4003FB1")]
|
|
private bool DANPHIIMOAC;
|
|
|
|
// Token: 0x04003FB2 RID: 16306
|
|
[FieldOffset(Offset = "0x38")]
|
|
[Token(Token = "0x4003FB2")]
|
|
private GameObject MPDMFGOGCJC;
|
|
|
|
// Token: 0x04003FB3 RID: 16307
|
|
[FieldOffset(Offset = "0x40")]
|
|
[Token(Token = "0x4003FB3")]
|
|
private bool IPKDOMKNGMO;
|
|
|
|
// Token: 0x04003FB4 RID: 16308
|
|
[FieldOffset(Offset = "0x48")]
|
|
[Token(Token = "0x4003FB4")]
|
|
[SerializeField]
|
|
[OAGJHJAIMMP(FHBJCBPFODN.Self, false, false, false)]
|
|
private ObjectPool _objectPool;
|
|
|
|
// Token: 0x020010C9 RID: 4297
|
|
[Token(Token = "0x20010C9")]
|
|
[CompilerGenerated]
|
|
private sealed class IFGDNOLCANM
|
|
{
|
|
// Token: 0x0600604B RID: 24651 RVA: 0x00150CA4 File Offset: 0x0014EEA4
|
|
[Token(Token = "0x600604B")]
|
|
[Address(RVA = "0x412370", Offset = "0x411370", VA = "0x180412370")]
|
|
public IFGDNOLCANM()
|
|
{
|
|
}
|
|
|
|
// Token: 0x0600604C RID: 24652 RVA: 0x00150CB8 File Offset: 0x0014EEB8
|
|
[Token(Token = "0x600604C")]
|
|
[Address(RVA = "0x1CF7270", Offset = "0x1CF6270", VA = "0x181CF7270")]
|
|
internal bool <Remove>b__0(GameObject sp)
|
|
{
|
|
return Enumerable.Contains<GameObject>(this.instances, sp);
|
|
}
|
|
|
|
// Token: 0x04003FB5 RID: 16309
|
|
[FieldOffset(Offset = "0x10")]
|
|
[Token(Token = "0x4003FB5")]
|
|
public IEnumerable<GameObject> instances;
|
|
}
|
|
}
|
|
}
|