using System; using System.Collections.Generic; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Cpp2IlInjected; using Photon.Pun; using Photon.Realtime; using RecRoom.Networking.SynchronizedFields; using UnityEngine; namespace RecRoom.Core.Creation { // Token: 0x02002B50 RID: 11088 [Token(Token = "0x2002B50")] [StructLayout(3)] public class ConnectableTool : MonoBehaviourPun, MIGCNEPBKDG, IEquatable { // Token: 0x1400019A RID: 410 // (add) Token: 0x06013609 RID: 79369 RVA: 0x004A5BE8 File Offset: 0x004A3DE8 // (remove) Token: 0x0601360A RID: 79370 RVA: 0x004A5C04 File Offset: 0x004A3E04 [Token(Token = "0x1400019A")] public event ConnectableTool.HierarchyChangeHandler ParentChangedEvent { [Token(Token = "0x6013609")] [Address(RVA = "0x18CBCC0", Offset = "0x18CA6C0", VA = "0x1818CBCC0")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x601360A")] [Address(RVA = "0x18CC310", Offset = "0x18CAD10", VA = "0x1818CC310")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x1400019B RID: 411 // (add) Token: 0x0601360B RID: 79371 RVA: 0x004A5C20 File Offset: 0x004A3E20 // (remove) Token: 0x0601360C RID: 79372 RVA: 0x004A5C3C File Offset: 0x004A3E3C [Token(Token = "0x1400019B")] public event ConnectableTool.HierarchyChangeHandler ChildAddedEvent { [Token(Token = "0x601360B")] [Address(RVA = "0x18CBAE0", Offset = "0x18CA4E0", VA = "0x1818CBAE0")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x601360C")] [Address(RVA = "0x18CC130", Offset = "0x18CAB30", VA = "0x1818CC130")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x1400019C RID: 412 // (add) Token: 0x0601360D RID: 79373 RVA: 0x004A5C58 File Offset: 0x004A3E58 // (remove) Token: 0x0601360E RID: 79374 RVA: 0x004A5C74 File Offset: 0x004A3E74 [Token(Token = "0x1400019C")] public event ConnectableTool.HierarchyChangeHandler ChildRemovedEvent { [Token(Token = "0x601360D")] [Address(RVA = "0x18CBB80", Offset = "0x18CA580", VA = "0x1818CBB80")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x601360E")] [Address(RVA = "0x18CC1D0", Offset = "0x18CABD0", VA = "0x1818CC1D0")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x1400019D RID: 413 // (add) Token: 0x0601360F RID: 79375 RVA: 0x004A5C90 File Offset: 0x004A3E90 // (remove) Token: 0x06013610 RID: 79376 RVA: 0x004A5CAC File Offset: 0x004A3EAC [Token(Token = "0x1400019D")] public event ConnectableTool.HierarchyChangeHandler ConnectionModifiedEvent { [Token(Token = "0x601360F")] [Address(RVA = "0x18CBC20", Offset = "0x18CA620", VA = "0x1818CBC20")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x6013610")] [Address(RVA = "0x18CC270", Offset = "0x18CAC70", VA = "0x1818CC270")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x1400019E RID: 414 // (add) Token: 0x06013611 RID: 79377 RVA: 0x004A5CC8 File Offset: 0x004A3EC8 // (remove) Token: 0x06013612 RID: 79378 RVA: 0x004A5CE4 File Offset: 0x004A3EE4 [Token(Token = "0x1400019E")] public event ConnectableTool.RootChangeHandler RootChangedEvent { [Token(Token = "0x6013611")] [Address(RVA = "0x18CBD60", Offset = "0x18CA760", VA = "0x1818CBD60")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x6013612")] [Address(RVA = "0x18CC3B0", Offset = "0x18CADB0", VA = "0x1818CC3B0")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x170033B1 RID: 13233 // (get) Token: 0x06013613 RID: 79379 RVA: 0x004A5D00 File Offset: 0x004A3F00 // (set) Token: 0x06013614 RID: 79380 RVA: 0x004A5D14 File Offset: 0x004A3F14 [Token(Token = "0x170033B1")] public MIGCNEPBKDG ParentConnectable { [Token(Token = "0x6013613")] [Address(RVA = "0x4CFB90", Offset = "0x4CE590", VA = "0x1804CFB90", Slot = "15")] get; [Token(Token = "0x6013614")] [Address(RVA = "0x4CFD20", Offset = "0x4CE720", VA = "0x1804CFD20")] private set; } // Token: 0x170033B2 RID: 13234 // (get) Token: 0x06013615 RID: 79381 RVA: 0x0000220F File Offset: 0x0000040F // (set) Token: 0x06013616 RID: 79382 RVA: 0x004A5D28 File Offset: 0x004A3F28 [Token(Token = "0x170033B2")] public Vector3 RelativePositionToParent { [Token(Token = "0x6013615")] [Address(RVA = "0x18CC0D0", Offset = "0x18CAAD0", VA = "0x1818CC0D0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x6013616")] [Address(RVA = "0x18CC4B0", Offset = "0x18CAEB0", VA = "0x1818CC4B0")] private set { float z = value.z; this.relativePositionToParent.z = z; } } // Token: 0x170033B3 RID: 13235 // (get) Token: 0x06013617 RID: 79383 RVA: 0x0000220F File Offset: 0x0000040F // (set) Token: 0x06013618 RID: 79384 RVA: 0x004A5D48 File Offset: 0x004A3F48 [Token(Token = "0x170033B3")] public Quaternion RelativeRotationToParent { [Token(Token = "0x6013617")] [Address(RVA = "0x18CC0F0", Offset = "0x18CAAF0", VA = "0x1818CC0F0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x6013618")] [Address(RVA = "0x18CC4C0", Offset = "0x18CAEC0", VA = "0x1818CC4C0")] private set { } } // Token: 0x170033B4 RID: 13236 // (get) Token: 0x06013619 RID: 79385 RVA: 0x004A5D58 File Offset: 0x004A3F58 // (set) Token: 0x0601361A RID: 79386 RVA: 0x004A5D6C File Offset: 0x004A3F6C [Token(Token = "0x170033B4")] public bool RelativePositionAndRotationDirty { [Token(Token = "0x6013619")] [Address(RVA = "0xAD47C0", Offset = "0xAD31C0", VA = "0x180AD47C0")] get; [Token(Token = "0x601361A")] [Address(RVA = "0xAD49D0", Offset = "0xAD33D0", VA = "0x180AD49D0")] private set; } // Token: 0x170033B5 RID: 13237 // (get) Token: 0x0601361B RID: 79387 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x170033B5")] public bool IsParented { [Token(Token = "0x601361B")] [Address(RVA = "0x18CBE20", Offset = "0x18CA820", VA = "0x1818CBE20")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x170033B6 RID: 13238 // (get) Token: 0x0601361C RID: 79388 RVA: 0x004A5D80 File Offset: 0x004A3F80 [Token(Token = "0x170033B6")] public bool ParentIsTool { [Token(Token = "0x601361C")] [Address(RVA = "0x18CBEA0", Offset = "0x18CA8A0", VA = "0x1818CBEA0")] get { if (this.k__BackingField == 0) { } int num = 0; return this != num; } } // Token: 0x170033B7 RID: 13239 // (get) Token: 0x0601361D RID: 79389 RVA: 0x004A5DA4 File Offset: 0x004A3FA4 [Token(Token = "0x170033B7")] public Tool ParentTool { [Token(Token = "0x601361D")] [Address(RVA = "0x18CBF20", Offset = "0x18CA920", VA = "0x1818CBF20")] get { if (this.k__BackingField != 0) { return; } } } // Token: 0x170033B8 RID: 13240 // (get) Token: 0x0601361E RID: 79390 RVA: 0x004A5DBC File Offset: 0x004A3FBC // (set) Token: 0x0601361F RID: 79391 RVA: 0x004A5DD0 File Offset: 0x004A3FD0 [Token(Token = "0x170033B8")] public Tool RootTool { [Token(Token = "0x601361E")] [Address(RVA = "0x5D55F0", Offset = "0x5D3FF0", VA = "0x1805D55F0")] get; [Token(Token = "0x601361F")] [Address(RVA = "0x5D5C90", Offset = "0x5D4690", VA = "0x1805D5C90")] private set; } // Token: 0x170033B9 RID: 13241 // (get) Token: 0x06013620 RID: 79392 RVA: 0x004A5DE4 File Offset: 0x004A3FE4 // (set) Token: 0x06013621 RID: 79393 RVA: 0x004A5DF8 File Offset: 0x004A3FF8 [Token(Token = "0x170033B9")] public List ChildrenConnectables { [Token(Token = "0x6013620")] [Address(RVA = "0x4B81A0", Offset = "0x4B6BA0", VA = "0x1804B81A0")] get { return this.childrenConnectables; } [Token(Token = "0x6013621")] [Address(RVA = "0x3EDEB0", Offset = "0x3EC8B0", VA = "0x1803EDEB0")] private set { this.childrenConnectables = value; } } // Token: 0x170033BA RID: 13242 // (get) Token: 0x06013622 RID: 79394 RVA: 0x004A5E0C File Offset: 0x004A400C // (set) Token: 0x06013623 RID: 79395 RVA: 0x004A5E2C File Offset: 0x004A402C [Token(Token = "0x170033BA")] public bool PhysicallyUnparented { [Token(Token = "0x6013622")] [Address(RVA = "0x18CC080", Offset = "0x18CAA80", VA = "0x1818CC080")] get { return this._physicallyUnparented.Get() != null; } [Token(Token = "0x6013623")] [Address(RVA = "0x18CC450", Offset = "0x18CAE50", VA = "0x1818CC450")] set { if (!this.ParentIsTool || this._physicallyUnparented != 0) { } } } // Token: 0x06013624 RID: 79396 RVA: 0x004A5E4C File Offset: 0x004A404C [Token(Token = "0x6013624")] [Address(RVA = "0x18C9D20", Offset = "0x18C8720", VA = "0x1818C9D20", Slot = "13")] protected override void Awake() { base..ctor(); Action action = new Action(this.OnPhysicallyUnparentedChanged); int num; int num2; SynchronizedField synchronizedField = new SynchronizedField(this, "PhU", num, (SetterPermissionMode)num2, action, num2); num2 = 0; num = 0; this._physicallyUnparented = synchronizedField; Tool.OGLAJAFKBMN oglajafkbmn; this._tool.AddCustomPickupCondition(oglajafkbmn); Tool.DNDBJKJIFNL dndbjkjifnl; this._tool.CustomSelectionForwarding = dndbjkjifnl; } // Token: 0x06013625 RID: 79397 RVA: 0x004A5EA8 File Offset: 0x004A40A8 [Token(Token = "0x6013625")] [Address(RVA = "0x18CAB30", Offset = "0x18C9530", VA = "0x1818CAB30", Slot = "14")] protected override void OnDestroy() { SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int num = 0; if (instance != num) { NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.LocalRemoveNode(this); } base.OnDestroy(); } // Token: 0x06013626 RID: 79398 RVA: 0x004A5EE0 File Offset: 0x004A40E0 [Token(Token = "0x6013626")] [Address(RVA = "0x18CB940", Offset = "0x18CA340", VA = "0x1818CB940")] private void Start() { SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int num = 0; instance.LocalAddNodeToRoot(this, num); CreationObject creationObject = this._tool.creationObject; int num2 = 0; if (creationObject != num2) { CreationObject creationObject2 = this._tool.creationObject; CreationObject.CGELIKFANLB cgelikfanlb = new CreationObject.CGELIKFANLB(this.SupportsNavMesh); creationObject2.AddCustomNavMeshSupportCondition(cgelikfanlb); } this.OnPhysicallyUnparentedChanged(); } // Token: 0x06013627 RID: 79399 RVA: 0x004A5F48 File Offset: 0x004A4148 [Token(Token = "0x6013627")] [Address(RVA = "0x18CA2F0", Offset = "0x18C8CF0", VA = "0x1818CA2F0", Slot = "32")] protected virtual bool CustomPickupCondition(Tool thisTool, global::Player selectingPlayer, Vector3 selectionPoint, bool physicalPickup) { return this.k__BackingField <= (ulong)0L || this._physicallyUnparented.Get() != null; } // Token: 0x06013628 RID: 79400 RVA: 0x004A5F74 File Offset: 0x004A4174 [Token(Token = "0x6013628")] [Address(RVA = "0x18CA350", Offset = "0x18C8D50", VA = "0x1818CA350", Slot = "33")] protected virtual Tool CustomToolForwarding(global::Player selectingPlayer, bool physicalPickupSelection, Collider selectedCollider) { if (!physicalPickupSelection && this.ParentIsTool) { MIGCNEPBKDG migcnepbkdg = this.k__BackingField; bool flag; if (!flag && this._physicallyUnparented.Get() == 0) { MIGCNEPBKDG migcnepbkdg2 = this.k__BackingField; } } return this._tool; } // Token: 0x06013629 RID: 79401 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6013629")] [Address(RVA = "0x18CBA60", Offset = "0x18CA460", VA = "0x1818CBA60")] private bool SupportsNavMesh() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0601362A RID: 79402 RVA: 0x004A5FBC File Offset: 0x004A41BC [Token(Token = "0x601362A")] [Address(RVA = "0x18CA650", Offset = "0x18C9050", VA = "0x1818CA650")] public Tool GetSafeRootTool() { if (this.ParentIsTool) { MIGCNEPBKDG migcnepbkdg = this.k__BackingField; Tool tool; return tool; } return this._tool; } // Token: 0x0601362B RID: 79403 RVA: 0x004A5FE8 File Offset: 0x004A41E8 [Token(Token = "0x601362B")] [Address(RVA = "0x18C9440", Offset = "0x18C7E40", VA = "0x1818C9440")] public void AuthorityParentThisConnectableToOther(int slotIndex, MIGCNEPBKDG parentConnectable, int parentSlotIndex) { if (parentConnectable != 0 && this._tool.hasAuthority) { SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; Transform targetTransform2 = this._tool.rigidbodyEx.MDKDCJFEBJH; } } // Token: 0x0601362C RID: 79404 RVA: 0x004A6048 File Offset: 0x004A4248 [Token(Token = "0x601362C")] [Address(RVA = "0x18C9730", Offset = "0x18C8130", VA = "0x1818C9730")] public void AuthorityUnparentThisConnectableFromOther() { if (this.k__BackingField > (ulong)0L && this._tool.hasAuthority) { NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.RequestMasterReparentToRoot(this); return; } } // Token: 0x0601362D RID: 79405 RVA: 0x004A6080 File Offset: 0x004A4280 [Token(Token = "0x601362D")] [Address(RVA = "0x18C9140", Offset = "0x18C7B40", VA = "0x1818C9140")] public void AuthorityParentOtherConnectableToThis(int slotIndex, MIGCNEPBKDG childConnectable, int childSlotIndex, [Optional] Vector3? relativePosition, [Optional] Quaternion? relativeRotation) { if (childConnectable != 0 && this._tool.hasAuthority) { Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH; Vector3 vector; float z = vector.z; Vector3 vector2; float z2 = vector2.z; Transform targetTransform2 = this._tool.rigidbodyEx.MDKDCJFEBJH; SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; } } // Token: 0x0601362E RID: 79406 RVA: 0x004A60E0 File Offset: 0x004A42E0 [Token(Token = "0x601362E")] [Address(RVA = "0x18C9690", Offset = "0x18C8090", VA = "0x1818C9690")] public void AuthorityUnparentOtherConnectableFromThis(MIGCNEPBKDG childConnectable) { if (childConnectable != 0 && this._tool.hasAuthority) { NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.RequestMasterReparentToRoot(childConnectable); } } // Token: 0x0601362F RID: 79407 RVA: 0x004A6110 File Offset: 0x004A4310 [Token(Token = "0x601362F")] [Address(RVA = "0x18CACE0", Offset = "0x18C96E0", VA = "0x1818CACE0")] private void OnPhysicallyUnparentedChanged() { while (this.ParentIsTool) { if (this._physicallyUnparented.Get() != 0 && this._tool.rigidbodyEx.IHLCHCBIBEF) { RigidbodyEx rigidbodyEx = this._tool.rigidbodyEx; int num = 0; rigidbodyEx.HICENEOPGOF = num; RigidbodyEx rigidbodyEx2 = this._tool.rigidbodyEx; object obj = this.connectionToParentToken; rigidbodyEx2.RemoveKinematic(obj); RigidbodyEx rigidbodyEx3 = this._tool.rigidbodyEx; object obj2 = this.connectionToParentToken; rigidbodyEx3.DisableProxyMovement(obj2); break; } if (!this._tool.rigidbodyEx.IHLCHCBIBEF) { RigidbodyEx rigidbodyEx4 = this._tool.rigidbodyEx; object obj3 = this.connectionToParentToken; rigidbodyEx4.AddKinematic(obj3); RigidbodyEx rigidbodyEx5 = this._tool.rigidbodyEx; object obj4 = this.connectionToParentToken; rigidbodyEx5.EnableProxyMovement(obj4); Tool tool = this._tool; MIGCNEPBKDG migcnepbkdg = this.k__BackingField; RigidbodyEx rigidbodyEx6 = tool.rigidbodyEx; RigidbodyEx rigidbodyEx7 = tool.rigidbodyEx; rigidbodyEx6.HICENEOPGOF = rigidbodyEx7; if (base.hasAuthority) { RigidbodyEx rigidbodyEx8 = this._tool.rigidbodyEx; Quaternion quaternion = this.relativeRotationToParent; float z = this.relativePositionToParent.z; return; } } } } // Token: 0x06013630 RID: 79408 RVA: 0x004A6248 File Offset: 0x004A4448 [Token(Token = "0x6013630")] [Address(RVA = "0x18CB7D0", Offset = "0x18CA1D0", VA = "0x1818CB7D0")] public void SetConnectionPoint(int index, Vector3 pos) { int length = this.connectionPoints.Length; float z = pos.z; int length2 = this.connectionPoints.Length; Debug.LogError(string.Format("SetConnectionPoint: Tried to set ConnectionPoint {0} to {1} but tool only has {2} connection points", index, length, length)); } // Token: 0x06013631 RID: 79409 RVA: 0x004A6290 File Offset: 0x004A4490 [Token(Token = "0x6013631")] [Address(RVA = "0x18CA6D0", Offset = "0x18C90D0", VA = "0x1818CA6D0")] public void OnDeformationUpdateChildrenPositionAndRotation(Vector3 previousPosition) { int num; do { num = 0; if (this.childrenConnectables == 0) { break; } List.Enumerator enumerator; if (enumerator != 0) { bool flag; while (!flag) { } Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH; bool flag2; while (!flag2) { } Transform targetTransform2 = this._tool.rigidbodyEx.MDKDCJFEBJH; Transform targetTransform3 = this._tool.rigidbodyEx.MDKDCJFEBJH; Vector3 vector; float z = vector.z; } if (num != -1) { } } while (num != 0); } // Token: 0x06013632 RID: 79410 RVA: 0x004A6350 File Offset: 0x004A4550 [Token(Token = "0x6013632")] [Address(RVA = "0x18C97C0", Offset = "0x18C81C0", VA = "0x1818C97C0")] public void AuthorityUpdateParentAndChildrenNodesRelativePositionsAndRotations() { int num; do { num = 0; if (!this._tool.hasAuthority) { break; } if (this.k__BackingField <= num) { SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; RigidbodyEx rigidbodyEx = this._tool.rigidbodyEx; RigidbodyEx rigidbodyEx2 = this._tool.rigidbodyEx; } SandboxConnectableManager instance2 = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; MIGCNEPBKDG migcnepbkdg = this.k__BackingField; RigidbodyEx rigidbodyEx3 = this._tool.rigidbodyEx; MIGCNEPBKDG migcnepbkdg2 = this.k__BackingField; RigidbodyEx rigidbodyEx4 = this._tool.rigidbodyEx; int num2 = 0; Quaternion quaternion; instance2.RequestMasterModifyNode(this, migcnepbkdg, num2, quaternion); if (this.childrenConnectables == 0) { break; } List.Enumerator enumerator; if (enumerator != 0) { bool flag; while (!flag) { } Quaternion quaternion2; NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.RequestMasterModifyNode(migcnepbkdg, this, num2, quaternion2); } if (num != -1) { } } while (num != 0); } // Token: 0x170033BB RID: 13243 // (get) Token: 0x06013633 RID: 79411 RVA: 0x004A6410 File Offset: 0x004A4610 [Token(Token = "0x170033BB")] public Transform Transform { [Token(Token = "0x6013633")] [Address(RVA = "0x18CC100", Offset = "0x18CAB00", VA = "0x1818CC100", Slot = "16")] get { return this._tool.rigidbodyEx.MDKDCJFEBJH; } } // Token: 0x170033BC RID: 13244 // (get) Token: 0x06013634 RID: 79412 RVA: 0x004A6434 File Offset: 0x004A4634 [Token(Token = "0x170033BC")] public GameObject GameObject { [Token(Token = "0x6013634")] [Address(RVA = "0x18CBE00", Offset = "0x18CA800", VA = "0x1818CBE00", Slot = "17")] get { return this._tool.gameObject; } } // Token: 0x170033BD RID: 13245 // (get) Token: 0x06013635 RID: 79413 RVA: 0x004A6454 File Offset: 0x004A4654 [Token(Token = "0x170033BD")] public string Name { [Token(Token = "0x6013635")] [Address(RVA = "0x18CBE30", Offset = "0x18CA830", VA = "0x1818CBE30", Slot = "18")] get { int spawnableToolType = (int)this._tool.OGNBCNBPFCC; string text; return text; } } // Token: 0x170033BE RID: 13246 // (get) Token: 0x06013636 RID: 79414 RVA: 0x004A6474 File Offset: 0x004A4674 [Token(Token = "0x170033BE")] public Guid PersistenceId { [Token(Token = "0x6013636")] [Address(RVA = "0x18CBF70", Offset = "0x18CA970", VA = "0x1818CBF70", Slot = "19")] get { bool flag; if (flag) { } throw new NullReferenceException(); } } // Token: 0x170033BF RID: 13247 // (get) Token: 0x06013637 RID: 79415 RVA: 0x004A648C File Offset: 0x004A468C [Token(Token = "0x170033BF")] public int PhotonId { [Token(Token = "0x6013637")] [Address(RVA = "0x18CC060", Offset = "0x18CAA60", VA = "0x1818CC060", Slot = "20")] get { return this._tool.KHDKHLFAMOK; } } // Token: 0x170033C0 RID: 13248 // (get) Token: 0x06013638 RID: 79416 RVA: 0x004A64AC File Offset: 0x004A46AC [Token(Token = "0x170033C0")] public Tool Tool { [Token(Token = "0x6013638")] [Address(RVA = "0x3EDEA0", Offset = "0x3EC8A0", VA = "0x1803EDEA0", Slot = "21")] get { return this._tool; } } // Token: 0x170033C1 RID: 13249 // (get) Token: 0x06013639 RID: 79417 RVA: 0x004A64C0 File Offset: 0x004A46C0 [Token(Token = "0x170033C1")] public virtual bool ShouldSerializeUnparented { [Token(Token = "0x6013639")] [Address(RVA = "0x413970", Offset = "0x412370", VA = "0x180413970", Slot = "34")] get { } } // Token: 0x0601363A RID: 79418 RVA: 0x004A64D0 File Offset: 0x004A46D0 [Token(Token = "0x601363A")] [Address(RVA = "0x18CA5B0", Offset = "0x18C8FB0", VA = "0x1818CA5B0", Slot = "35")] public virtual Vector3 GetConnectionSlotPosition(int slotIndex) { Vector3 vector; float z = vector.z; throw new NullReferenceException(); } // Token: 0x0601363B RID: 79419 RVA: 0x004A64EC File Offset: 0x004A46EC [Token(Token = "0x601363B")] [Address(RVA = "0x128FEC0", Offset = "0x128E8C0", VA = "0x18128FEC0", Slot = "36")] public virtual Color GetConnectionSlotColor(int slotIndex) { /* An exception occurred when decompiling this method (0601363B) ICSharpCode.Decompiler.DecompilerException: Error decompiling UnityEngine.Color RecRoom.Core.Creation.ConnectableTool::GetConnectionSlotColor(System.Int32) ---> System.Exception: Basic block has to end with unconditional control flow. { Block_0: stloc:Color(var_0_05, callgetter:Color(Color::get_red)) } 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: 0x0601363C RID: 79420 RVA: 0x004A6500 File Offset: 0x004A4700 [Token(Token = "0x601363C")] [Address(RVA = "0x18C9E50", Offset = "0x18C8850", VA = "0x1818C9E50", Slot = "37")] public virtual bool CanConnectTo(int slotIndex, MIGCNEPBKDG otherConnectable, int otherConnectableSlotIndex) { if (otherConnectable == 0) { } bool flag; if (!flag) { return flag; } return !this._tool.FNFNLDBILFE; } // Token: 0x0601363D RID: 79421 RVA: 0x004A6530 File Offset: 0x004A4730 [Token(Token = "0x601363D")] [Address(RVA = "0x18CA510", Offset = "0x18C8F10", VA = "0x1818CA510", Slot = "38")] public virtual bool Equals(MIGCNEPBKDG other) { if (other == 0) { } bool flag; return flag; } // Token: 0x0601363E RID: 79422 RVA: 0x004A6544 File Offset: 0x004A4744 [Token(Token = "0x601363E")] [Address(RVA = "0x18CAF40", Offset = "0x18C9940", VA = "0x1818CAF40", Slot = "39")] public virtual void ParentChanged(int slotIndex, MIGCNEPBKDG newParentConnectable, int newParentSlot, Vector3 newRelativePosition, Quaternion newRelativeRotation) { Tool tool = this._tool; RigidbodyEx rigidbodyEx = tool.rigidbodyEx; int num = 0; rigidbodyEx.HICENEOPGOF = num; if (this.k__BackingField != 0) { int num2 = 0; if (tool != num2) { MIGCNEPBKDG migcnepbkdg = this.k__BackingField; Action action = new Action(this.OnParentToolOwnerChanged); PhotonView photonView; photonView.OwnerChangedEvent -= action; } this.k__BackingField = (ulong)0L; } Tool tool2 = this._tool; bool flag = newParentConnectable != 0; Tool tool3; if (newParentConnectable == 0) { JAKMIGBBBOM.BAFPMPJFBEM velocityProvider = tool2.rigidbodyEx.VelocityProvider; JAKMIGBBBOM.BAFPMPJFBEM bafpmpjfbem = JAKMIGBBBOM.FMDJFHMFJLO; if (velocityProvider != bafpmpjfbem) { goto IL_CD; } tool3 = this._tool; tool3.rigidbodyEx.VelocityProvider = (ulong)0L; } if (!tool3.rigidbodyEx.OLOMGNLGBEA) { RigidbodyEx rigidbodyEx2 = this._tool.rigidbodyEx; JAKMIGBBBOM.BAFPMPJFBEM bafpmpjfbem2 = JAKMIGBBBOM.FMDJFHMFJLO; rigidbodyEx2.VelocityProvider = bafpmpjfbem2; } IL_CD: bool flag2; if (newParentConnectable != 0 && flag2) { RigidbodyEx rigidbodyEx3 = this._tool.rigidbodyEx; object obj = this.connectionToParentToken; rigidbodyEx3.EnableProxyMovement(obj); Tool tool4 = this._tool; RigidbodyEx rigidbodyEx4 = tool4.rigidbodyEx; RigidbodyEx rigidbodyEx5 = tool4.rigidbodyEx; rigidbodyEx4.HICENEOPGOF = rigidbodyEx5; PhotonView photonView2 = tool4.photonView; Action action2 = new Action(this.OnParentToolOwnerChanged); photonView2.OwnerChangedEvent += action2; Tool tool5 = this._tool; RigidbodyEx rigidbodyEx6 = tool5.rigidbodyEx; this.relativePositionToParent.z = tool5; } RigidbodyEx rigidbodyEx7 = this._tool.rigidbodyEx; object obj2 = this.connectionToParentToken; rigidbodyEx7.DisableProxyMovement(obj2); float z = Vector3.zero.z; this.relativePositionToParent.z = z; Quaternion identity = Quaternion.identity; RigidbodyEx rigidbodyEx8 = this._tool.rigidbodyEx; object obj3 = this.connectionToParentToken; rigidbodyEx8.SetKinematic(obj3, flag); this.k__BackingField = newParentConnectable; if (base.hasAuthority && this.ParentIsTool) { SynchronizedField physicallyUnparented = this._physicallyUnparented; if (physicallyUnparented != 0) { int num3 = 0; physicallyUnparented.Set(num3); } } if (this.ParentChangedEvent != 0) { } } // Token: 0x0601363F RID: 79423 RVA: 0x004A674C File Offset: 0x004A494C [Token(Token = "0x601363F")] [Address(RVA = "0x18C9F20", Offset = "0x18C8920", VA = "0x1818C9F20", Slot = "40")] public virtual void ChildAdded(int slotIndex, MIGCNEPBKDG newChildConnectable, int newChildSlot, Vector3 relativePosition, Quaternion relativeRotation) { if (!this.childrenConnectables.Contains(newChildConnectable)) { this.childrenConnectables.Add(newChildConnectable); } if (this.ChildAddedEvent != 0) { } } // Token: 0x06013640 RID: 79424 RVA: 0x004A6788 File Offset: 0x004A4988 [Token(Token = "0x6013640")] [Address(RVA = "0x18CA0B0", Offset = "0x18C8AB0", VA = "0x1818CA0B0", Slot = "41")] public virtual void ChildRemoved(int slotIndex, MIGCNEPBKDG removedChildConnectable, int removedChildSlot) { bool flag = this.childrenConnectables.Remove(removedChildConnectable); if (this.ChildRemovedEvent != 0) { } } // Token: 0x06013641 RID: 79425 RVA: 0x004A67B4 File Offset: 0x004A49B4 [Token(Token = "0x6013641")] [Address(RVA = "0x18CA190", Offset = "0x18C8B90", VA = "0x1818CA190", Slot = "42")] public virtual void ConnectionModified(int slotIndex, MIGCNEPBKDG parentConnectable, int parentSlotIndex, Vector3 relativePosition, Quaternion relativeRotation) { ConnectableTool.HierarchyChangeHandler connectionModifiedEvent = this.ConnectionModifiedEvent; this.k__BackingField = false; if (connectionModifiedEvent != 0) { } } // Token: 0x06013642 RID: 79426 RVA: 0x004A67D8 File Offset: 0x004A49D8 [Token(Token = "0x6013642")] [Address(RVA = "0x18CB670", Offset = "0x18CA070", VA = "0x1818CB670", Slot = "43")] public virtual void RootChanged(MIGCNEPBKDG previousRootConnectable, MIGCNEPBKDG newRootConnectable) { if (newRootConnectable != 0) { } int num = 0; this.k__BackingField = num; ConnectableTool.RootChangeHandler rootChangedEvent = this.RootChangedEvent; if (rootChangedEvent != 0) { rootChangedEvent(previousRootConnectable, newRootConnectable); } } // Token: 0x06013643 RID: 79427 RVA: 0x004A680C File Offset: 0x004A4A0C [Token(Token = "0x6013643")] [Address(RVA = "0x18CAC10", Offset = "0x18C9610", VA = "0x1818CAC10")] private void OnParentToolOwnerChanged(int newOwnerId) { Photon.Realtime.Player localPlayer = PhotonNetwork.LocalPlayer; if (newOwnerId == localPlayer.actorNumber && !this._tool.hasAuthority) { PhotonView photonView = this._tool.photonView; Photon.Realtime.Player localPlayer2 = PhotonNetwork.LocalPlayer; photonView.TransferOwnership(localPlayer2); } } // Token: 0x06013644 RID: 79428 RVA: 0x004A685C File Offset: 0x004A4A5C [Token(Token = "0x6013644")] [Address(RVA = "0x18CB530", Offset = "0x18C9F30", VA = "0x1818CB530")] [BBKEDJMCLLL] private static void RegisterRpcSerializationHandlers() { PMDMLFNOIDA pmdmlfnoida = PMDMLFNOIDA.ONCPNMDGGKG; Type typeFromHandle = typeof(MIGCNEPBKDG); Type typeFromHandle2 = typeof(int); int num; Converter converter = new Converter(num.SerializeIConnectable); num = 0; int num2; Converter converter2 = new Converter(num2.DeserializeIConnectable); num2 = 0; pmdmlfnoida.KFFMNCNICIO(typeFromHandle, typeFromHandle2, converter, converter2); } // Token: 0x06013645 RID: 79429 RVA: 0x004A68C0 File Offset: 0x004A4AC0 [Token(Token = "0x6013645")] [Address(RVA = "0x18CBA70", Offset = "0x18CA470", VA = "0x1818CBA70")] [AGKGJGBOJEI] private static void UnregisterRpcSerializationHandlers() { PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); } // Token: 0x06013646 RID: 79430 RVA: 0x004A68E0 File Offset: 0x004A4AE0 [Token(Token = "0x6013646")] [Address(RVA = "0x18CB700", Offset = "0x18CA100", VA = "0x1818CB700")] private static object SerializeIConnectable(object input) { PhotonView photonView; int viewIdField = photonView.viewIdField; throw new NullReferenceException(); } // Token: 0x06013647 RID: 79431 RVA: 0x004A68FC File Offset: 0x004A4AFC [Token(Token = "0x6013647")] [Address(RVA = "0x18CA440", Offset = "0x18C8E40", VA = "0x1818CA440")] private static object DeserializeIConnectable(object input) { int num = 0; PhotonView photonView; if (photonView != num) { MIGCNEPBKDG component = photonView.GetComponent(); } throw new NullReferenceException(); } // Token: 0x06013648 RID: 79432 RVA: 0x004A6924 File Offset: 0x004A4B24 [Token(Token = "0x6013648")] [Address(RVA = "0x18C8FA0", Offset = "0x18C79A0", VA = "0x1818C8FA0")] public ConnectableTool() { List list = new List(); this.childrenConnectables = list; base..ctor(); } // Token: 0x0400D27C RID: 53884 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x400D27C")] [SerializeField] private ConnectionPoint[] connectionPoints; // Token: 0x0400D27D RID: 53885 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400D27D")] [SerializeField] [DDPIINEJFMD(JIBDPHMGEGO.Self, false, false)] private Tool _tool; // Token: 0x0400D27E RID: 53886 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x400D27E")] protected object connectionToParentToken = "Parented"; // Token: 0x0400D27F RID: 53887 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x400D27F")] private List childrenConnectables; // Token: 0x0400D280 RID: 53888 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x400D280")] private SynchronizedField _physicallyUnparented; // Token: 0x0400D281 RID: 53889 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x400D281")] private Vector3 relativePositionToParent; // Token: 0x0400D282 RID: 53890 [global::Cpp2IlInjected.FieldOffset(Offset = "0x74")] [Token(Token = "0x400D282")] private Quaternion relativeRotationToParent; // Token: 0x02002B51 RID: 11089 [Token(Token = "0x2002B51")] public sealed class HierarchyChangeHandler : MulticastDelegate { // Token: 0x06013649 RID: 79433 RVA: 0x004A6950 File Offset: 0x004A4B50 [Token(Token = "0x6013649")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public HierarchyChangeHandler(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x0601364A RID: 79434 RVA: 0x004A696C File Offset: 0x004A4B6C [Token(Token = "0x601364A")] [Address(RVA = "0x16945C0", Offset = "0x1692FC0", VA = "0x1816945C0", Slot = "13")] public void Invoke(MIGCNEPBKDG childConnectable, int childConnectableSlot, MIGCNEPBKDG parentConnectable, int parentConnectableSlot, [Optional] Vector3? relativePosition, [Optional] Quaternion? relativeRotation) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x0601364B RID: 79435 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601364B")] [Address(RVA = "0x16944D0", Offset = "0x1692ED0", VA = "0x1816944D0", Slot = "14")] public IAsyncResult BeginInvoke(MIGCNEPBKDG childConnectable, int childConnectableSlot, MIGCNEPBKDG parentConnectable, int parentConnectableSlot, Vector3? relativePosition, Quaternion? relativeRotation, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0601364C RID: 79436 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601364C")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x02002B52 RID: 11090 [Token(Token = "0x2002B52")] public sealed class RootChangeHandler : MulticastDelegate { // Token: 0x0601364D RID: 79437 RVA: 0x004A6A28 File Offset: 0x004A4C28 [Token(Token = "0x601364D")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public RootChangeHandler(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x0601364E RID: 79438 RVA: 0x004A6A44 File Offset: 0x004A4C44 [Token(Token = "0x601364E")] [Address(RVA = "0x1695320", Offset = "0x1693D20", VA = "0x181695320", Slot = "13")] public void Invoke(MIGCNEPBKDG previousRootConnectable, MIGCNEPBKDG newRootConnectable) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x0601364F RID: 79439 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601364F")] [Address(RVA = "0x4330B0", Offset = "0x431AB0", VA = "0x1804330B0", Slot = "14")] public IAsyncResult BeginInvoke(MIGCNEPBKDG previousRootConnectable, MIGCNEPBKDG newRootConnectable, AsyncCallback callback, object @object) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06013650 RID: 79440 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6013650")] [Address(RVA = "0x40BFF0", Offset = "0x40A9F0", VA = "0x18040BFF0", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x02002B53 RID: 11091 [Token(Token = "0x2002B53")] public sealed class ConnectionViabilityChecker : MulticastDelegate { // Token: 0x06013651 RID: 79441 RVA: 0x004A6B14 File Offset: 0x004A4D14 [Token(Token = "0x6013651")] [Address(RVA = "0x3E5170", Offset = "0x3E3B70", VA = "0x1803E5170")] public ConnectionViabilityChecker(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x06013652 RID: 79442 RVA: 0x004A6B30 File Offset: 0x004A4D30 [Token(Token = "0x6013652")] [Address(RVA = "0x4374E0", Offset = "0x435EE0", VA = "0x1804374E0", Slot = "13")] public bool Invoke(int slotIndex, MIGCNEPBKDG otherConnectable, int otherConnectableSlotIndex) { Delegate[] delegates = this.delegates; if (delegates != 0) { } int num = 0; uint num2; if (num2 == (uint)0) { return; } Delegate @delegate = delegates[1]; Delegate delegate2 = delegates[0]; uint num3; if (@delegate.method_info == num3) { throw new ExecutionEngineException(); } ExecutionEngineException ex; if (ex != 0) { } uint num4; int num6; if (@delegate.method_info != num4) { if (delegate2 != 0) { } if (delegate2 == 0) { } int num5 = 0; MethodInfo method_info = @delegate.method_info; if (num5 < otherConnectableSlotIndex) { num5 += num5; if (num5 != otherConnectableSlotIndex) { num5++; } } num5 += method_info; num5 += 19; MethodInfo methodInfo = @delegate.method_info; methodInfo += methodInfo; MethodInfo method_info2 = @delegate.method_info; num6 = 0; if (num6 < otherConnectableSlotIndex) { num6 += num6; if (num6 != otherConnectableSlotIndex) { num6++; } } num6 += method_info2; num6 += 19; } if (delegate2 != 0 || num6 != 0) { } num++; } // Token: 0x06013653 RID: 79443 RVA: 0x004A6C14 File Offset: 0x004A4E14 [Token(Token = "0x6013653")] [Address(RVA = "0x167BA10", Offset = "0x167A410", VA = "0x18167BA10", Slot = "14")] public IAsyncResult BeginInvoke(int slotIndex, MIGCNEPBKDG otherConnectable, int otherConnectableSlotIndex, AsyncCallback callback, object @object) { } // Token: 0x06013654 RID: 79444 RVA: 0x004A6C24 File Offset: 0x004A4E24 [Token(Token = "0x6013654")] [Address(RVA = "0x433E40", Offset = "0x432840", VA = "0x180433E40", Slot = "15")] public bool EndInvoke(IAsyncResult result) { throw new NullReferenceException(); } } } }