Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

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;
}
}
}