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 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 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: 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(); 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(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: 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 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: 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 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 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: 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 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: 0x06006047 RID: 24647 RVA: 0x00150B54 File Offset: 0x0014ED54 [Token(Token = "0x6006047")] [Address(RVA = "0x1CFFD10", Offset = "0x1CFED10", VA = "0x181CFFD10")] 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: 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(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 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: 0x04003FAE RID: 16302 [FieldOffset(Offset = "0x18")] [Token(Token = "0x4003FAE")] public IILCGFIHJLP InstanceSpawnedEvent; // Token: 0x04003FAF RID: 16303 [FieldOffset(Offset = "0x20")] [Token(Token = "0x4003FAF")] protected List 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 b__0(GameObject sp) { return Enumerable.Contains(this.instances, sp); } // Token: 0x04003FB5 RID: 16309 [FieldOffset(Offset = "0x10")] [Token(Token = "0x4003FB5")] public IEnumerable instances; } } }