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: 0x02000FFD RID: 4093 [Token(Token = "0x2000FFD")] [DisallowMultipleComponent] public class PrefabSpawner : MonoBehaviour { // Token: 0x17000FD7 RID: 4055 // (get) Token: 0x06005CF9 RID: 23801 RVA: 0x00148BB0 File Offset: 0x00146DB0 [Token(Token = "0x17000FD7")] public IReadOnlyList BFFKHMEICIK { [Token(Token = "0x6005CF9")] [Address(RVA = "0x3F6400", Offset = "0x3F5200", VA = "0x1803F6400")] get { /* An exception occurred when decompiling this method (06005CF9) ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Collections.Generic.IReadOnlyList`1 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(var_0_06, ldfld:class [mscorlib]System.Collections.Generic.List`1(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: 0x17000FD8 RID: 4056 // (get) Token: 0x06005CFA RID: 23802 RVA: 0x00148BC4 File Offset: 0x00146DC4 [Token(Token = "0x17000FD8")] private ObjectPool BAMAOFFBHIC { [Token(Token = "0x6005CFA")] [Address(RVA = "0x1236640", Offset = "0x1235440", VA = "0x181236640")] get { ObjectPool objectPool = this._objectPool; int num = 0; if (objectPool == num) { ObjectPool objectPool2 = base.gameObject.AddComponent(); this._objectPool = objectPool2; } return this._objectPool; } } // Token: 0x06005CFB RID: 23803 RVA: 0x00148C04 File Offset: 0x00146E04 [Token(Token = "0x6005CFB")] [Address(RVA = "0x16A3150", Offset = "0x16A1F50", VA = "0x1816A3150")] public void ClearAndSpawnForList(GameObject CFAPNBBHEKB, IReadOnlyList 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: 0x06005CFC RID: 23804 RVA: 0x00148C60 File Offset: 0x00146E60 [Token(Token = "0x6005CFC")] [Address(RVA = "0x1236390", Offset = "0x1235190", VA = "0x181236390")] public void ClearAndSpawnForCount(GameObject CFAPNBBHEKB, int MNIJHBJDPPA) { this.PCHOAANENBM(CFAPNBBHEKB, MNIJHBJDPPA); this.MPDMFGOGCJC = CFAPNBBHEKB; this.DANPHIIMOAC = false; this.IPKDOMKNGMO = true; } // Token: 0x06005CFD RID: 23805 RVA: 0x00148C8C File Offset: 0x00146E8C [Token(Token = "0x6005CFD")] [Address(RVA = "0x12367B0", Offset = "0x12355B0", VA = "0x1812367B0")] private void PCHOAANENBM(GameObject CFAPNBBHEKB, int MNIJHBJDPPA) { if (this.IPKDOMKNGMO && this.MPDMFGOGCJC == CFAPNBBHEKB) { List mpmpomfcagm = this.MPMPOMFCAGM; int num = 0; if (MNIJHBJDPPA <= 0) { return; } List mpmpomfcagm2 = this.MPMPOMFCAGM; IILCGFIHJLP 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 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: 0x06005CFE RID: 23806 RVA: 0x00148D78 File Offset: 0x00146F78 [Token(Token = "0x6005CFE")] [Address(RVA = "0x1236230", Offset = "0x1235030", VA = "0x181236230")] 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 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: 0x06005CFF RID: 23807 RVA: 0x00148E14 File Offset: 0x00147014 [Token(Token = "0x6005CFF")] [Address(RVA = "0x12369E0", Offset = "0x12357E0", VA = "0x1812369E0")] 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 mpmpomfcagm = this.MPMPOMFCAGM; int num3 = 0; mpmpomfcagm.Insert(num3, gameObject); IILCGFIHJLP 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: 0x06005D00 RID: 23808 RVA: 0x00148EA0 File Offset: 0x001470A0 [Token(Token = "0x6005D00")] [Address(RVA = "0x12363C0", Offset = "0x12351C0", VA = "0x1812363C0")] public void Clear() { int num; do { num = 0; List mpmpomfcagm = this.MPMPOMFCAGM; bool flag; if (flag) { ObjectPool objectPool = this._objectPool; int num2 = 0; if (objectPool == num2) { ObjectPool objectPool2 = base.gameObject.AddComponent(); this._objectPool = objectPool2; } ObjectPool objectPool3 = this._objectPool; int num3 = 0; bool flag2 = objectPool3.Release(num3); } } while (num != 0); this.MPMPOMFCAGM.Clear(); this.DANPHIIMOAC = false; this.IPKDOMKNGMO = false; this.MPDMFGOGCJC = (ulong)0L; } // Token: 0x06005D01 RID: 23809 RVA: 0x00148F34 File Offset: 0x00147134 [Token(Token = "0x6005D01")] [Address(RVA = "0x1236B10", Offset = "0x1235910", VA = "0x181236B10")] public void Remove(IEnumerable DHDOAIMECLD) { int num; int num2; do { num = 0; num2 = 0; List mpmpomfcagm = this.MPMPOMFCAGM; Predicate predicate = (GameObject sp) => Enumerable.Contains(DHDOAIMECLD, sp); List list = ECNNGIFNNNM.FHAOCJFENEF(mpmpomfcagm, predicate); List.Enumerator enumerator = mpmpomfcagm.GetEnumerator(); bool flag; if (flag) { ObjectPool objectPool = this._objectPool; int num3 = 0; if (objectPool == num3) { ObjectPool objectPool2 = base.gameObject.AddComponent(); this._objectPool = objectPool2; } ObjectPool objectPool3 = this._objectPool; if (mpmpomfcagm != 0) { } bool flag2 = objectPool3.Release(num); } } while (num != 0); if (num2 != 0) { this.DANPHIIMOAC = false; } } // Token: 0x06005D02 RID: 23810 RVA: 0x00148FE4 File Offset: 0x001471E4 [Token(Token = "0x6005D02")] [Address(RVA = "0x12366E0", Offset = "0x12354E0", VA = "0x1812366E0")] 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: 0x06005D03 RID: 23811 RVA: 0x0014901C File Offset: 0x0014721C [Token(Token = "0x6005D03")] [Address(RVA = "0x12365C0", Offset = "0x12353C0", VA = "0x1812365C0")] private void IOFOFLHIJGM(GameObject GCCLEJOGCCE) { ObjectPool objectPool = this.BAMAOFFBHIC; if (GCCLEJOGCCE != 0) { Transform transform = GCCLEJOGCCE.transform; } int num = 0; bool flag = objectPool.Release(num); } // Token: 0x06005D04 RID: 23812 RVA: 0x0014904C File Offset: 0x0014724C [Token(Token = "0x6005D04")] [Address(RVA = "0x1236D90", Offset = "0x1235B90", VA = "0x181236D90")] public PrefabSpawner() { int num; int num2; IILCGFIHJLP iilcgfihjlp = new IILCGFIHJLP(32, num != 0, num2 != 0); num2 = 0; num = 0; this.InstanceSpawnedEvent = iilcgfihjlp; List list = new List(); this.MPMPOMFCAGM = list; base..ctor(); } // Token: 0x04003E3F RID: 15935 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003E3F")] public IILCGFIHJLP InstanceSpawnedEvent; // Token: 0x04003E40 RID: 15936 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003E40")] protected List MPMPOMFCAGM; // Token: 0x04003E41 RID: 15937 [FieldOffset(Offset = "0x28")] [Token(Token = "0x4003E41")] private ICollection GCMCDAFMKNP; // Token: 0x04003E42 RID: 15938 [FieldOffset(Offset = "0x30")] [Token(Token = "0x4003E42")] private bool DANPHIIMOAC; // Token: 0x04003E43 RID: 15939 [FieldOffset(Offset = "0x38")] [Token(Token = "0x4003E43")] private GameObject MPDMFGOGCJC; // Token: 0x04003E44 RID: 15940 [FieldOffset(Offset = "0x40")] [Token(Token = "0x4003E44")] private bool IPKDOMKNGMO; // Token: 0x04003E45 RID: 15941 [FieldOffset(Offset = "0x48")] [Token(Token = "0x4003E45")] [SerializeField] [OCIDFHDICIP(JIBDPHMGEGO.Self, false, false, false)] private ObjectPool _objectPool; // Token: 0x02000FFE RID: 4094 [Token(Token = "0x2000FFE")] [CompilerGenerated] private sealed class IFGDNOLCANM { // Token: 0x06005D05 RID: 23813 RVA: 0x00149084 File Offset: 0x00147284 [Token(Token = "0x6005D05")] [Address(RVA = "0x3F5100", Offset = "0x3F3F00", VA = "0x1803F5100")] public IFGDNOLCANM() { } // Token: 0x06005D06 RID: 23814 RVA: 0x00149098 File Offset: 0x00147298 [Token(Token = "0x6005D06")] [Address(RVA = "0x122EB10", Offset = "0x122D910", VA = "0x18122EB10")] internal bool b__0(GameObject sp) { return Enumerable.Contains(this.instances, sp); } // Token: 0x04003E46 RID: 15942 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003E46")] public IEnumerable instances; } } }