using System; using System.Collections.Generic; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Cpp2IlInjected; using Photon.Pun; using UnityEngine; namespace RecRoom.Core.Creation { // Token: 0x02003080 RID: 12416 [Token(Token = "0x2003080")] public class ConnectableTool : MonoBehaviourPun, MIGCNEPBKDG, IEquatable { // Token: 0x140001CB RID: 459 // (add) Token: 0x06015218 RID: 86552 RVA: 0x004F2094 File Offset: 0x004F0294 // (remove) Token: 0x06015219 RID: 86553 RVA: 0x004F20B0 File Offset: 0x004F02B0 [Token(Token = "0x140001CB")] public event ConnectableTool.HierarchyChangeHandler ParentChangedEvent { [Token(Token = "0x6015218")] [Address(RVA = "0xDE8690", Offset = "0xDE7490", VA = "0x180DE8690")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x6015219")] [Address(RVA = "0xDE8CE0", Offset = "0xDE7AE0", VA = "0x180DE8CE0")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x140001CC RID: 460 // (add) Token: 0x0601521A RID: 86554 RVA: 0x004F20CC File Offset: 0x004F02CC // (remove) Token: 0x0601521B RID: 86555 RVA: 0x004F20E8 File Offset: 0x004F02E8 [Token(Token = "0x140001CC")] public event ConnectableTool.HierarchyChangeHandler ChildAddedEvent { [Token(Token = "0x601521A")] [Address(RVA = "0xDE84B0", Offset = "0xDE72B0", VA = "0x180DE84B0")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x601521B")] [Address(RVA = "0xDE8B00", Offset = "0xDE7900", VA = "0x180DE8B00")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x140001CD RID: 461 // (add) Token: 0x0601521C RID: 86556 RVA: 0x004F2104 File Offset: 0x004F0304 // (remove) Token: 0x0601521D RID: 86557 RVA: 0x004F2120 File Offset: 0x004F0320 [Token(Token = "0x140001CD")] public event ConnectableTool.HierarchyChangeHandler ChildRemovedEvent { [Token(Token = "0x601521C")] [Address(RVA = "0xDE8550", Offset = "0xDE7350", VA = "0x180DE8550")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x601521D")] [Address(RVA = "0xDE8BA0", Offset = "0xDE79A0", VA = "0x180DE8BA0")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x140001CE RID: 462 // (add) Token: 0x0601521E RID: 86558 RVA: 0x004F213C File Offset: 0x004F033C // (remove) Token: 0x0601521F RID: 86559 RVA: 0x004F2158 File Offset: 0x004F0358 [Token(Token = "0x140001CE")] public event ConnectableTool.HierarchyChangeHandler ConnectionModifiedEvent { [Token(Token = "0x601521E")] [Address(RVA = "0xDE85F0", Offset = "0xDE73F0", VA = "0x180DE85F0")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x601521F")] [Address(RVA = "0xDE8C40", Offset = "0xDE7A40", VA = "0x180DE8C40")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x140001CF RID: 463 // (add) Token: 0x06015220 RID: 86560 RVA: 0x004F2174 File Offset: 0x004F0374 // (remove) Token: 0x06015221 RID: 86561 RVA: 0x004F2190 File Offset: 0x004F0390 [Token(Token = "0x140001CF")] public event ConnectableTool.RootChangeHandler RootChangedEvent { [Token(Token = "0x6015220")] [Address(RVA = "0xDE8730", Offset = "0xDE7530", VA = "0x180DE8730")] [CompilerGenerated] add { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } [Token(Token = "0x6015221")] [Address(RVA = "0xDE8D80", Offset = "0xDE7B80", VA = "0x180DE8D80")] [CompilerGenerated] remove { Delegate @delegate; while (@delegate != 0 && @delegate == 0) { } while (@delegate != this) { } } } // Token: 0x17003A42 RID: 14914 // (get) Token: 0x06015222 RID: 86562 RVA: 0x004F21AC File Offset: 0x004F03AC // (set) Token: 0x06015223 RID: 86563 RVA: 0x004F21C0 File Offset: 0x004F03C0 [Token(Token = "0x17003A42")] public MIGCNEPBKDG ParentConnectable { [Token(Token = "0x6015222")] [Address(RVA = "0x536410", Offset = "0x535210", VA = "0x180536410", Slot = "15")] get; [Token(Token = "0x6015223")] [Address(RVA = "0x536B40", Offset = "0x535940", VA = "0x180536B40")] private set; } // Token: 0x17003A43 RID: 14915 // (get) Token: 0x06015224 RID: 86564 RVA: 0x0000220F File Offset: 0x0000040F // (set) Token: 0x06015225 RID: 86565 RVA: 0x004F21D4 File Offset: 0x004F03D4 [Token(Token = "0x17003A43")] public Vector3 RelativePositionToParent { [Token(Token = "0x6015224")] [Address(RVA = "0xDE8AA0", Offset = "0xDE78A0", VA = "0x180DE8AA0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x6015225")] [Address(RVA = "0xDE8E80", Offset = "0xDE7C80", VA = "0x180DE8E80")] private set { float z = value.z; this.relativePositionToParent.z = z; } } // Token: 0x17003A44 RID: 14916 // (get) Token: 0x06015226 RID: 86566 RVA: 0x0000220F File Offset: 0x0000040F // (set) Token: 0x06015227 RID: 86567 RVA: 0x004F21F4 File Offset: 0x004F03F4 [Token(Token = "0x17003A44")] public Quaternion RelativeRotationToParent { [Token(Token = "0x6015226")] [Address(RVA = "0xDE8AC0", Offset = "0xDE78C0", VA = "0x180DE8AC0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } [Token(Token = "0x6015227")] [Address(RVA = "0xDE8E90", Offset = "0xDE7C90", VA = "0x180DE8E90")] private set { } } // Token: 0x17003A45 RID: 14917 // (get) Token: 0x06015228 RID: 86568 RVA: 0x004F2204 File Offset: 0x004F0404 // (set) Token: 0x06015229 RID: 86569 RVA: 0x004F2218 File Offset: 0x004F0418 [Token(Token = "0x17003A45")] public bool RelativePositionAndRotationDirty { [Token(Token = "0x6015228")] [Address(RVA = "0xBA8160", Offset = "0xBA6F60", VA = "0x180BA8160")] get; [Token(Token = "0x6015229")] [Address(RVA = "0xBA8060", Offset = "0xBA6E60", VA = "0x180BA8060")] private set; } // Token: 0x17003A46 RID: 14918 // (get) Token: 0x0601522A RID: 86570 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x17003A46")] public bool IsParented { [Token(Token = "0x601522A")] [Address(RVA = "0xDE87F0", Offset = "0xDE75F0", VA = "0x180DE87F0")] get { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x17003A47 RID: 14919 // (get) Token: 0x0601522B RID: 86571 RVA: 0x004F222C File Offset: 0x004F042C [Token(Token = "0x17003A47")] public bool ParentIsTool { [Token(Token = "0x601522B")] [Address(RVA = "0xDE8870", Offset = "0xDE7670", VA = "0x180DE8870")] get { if (this.k__BackingField == 0) { } int num = 0; return this != num; } } // Token: 0x17003A48 RID: 14920 // (get) Token: 0x0601522C RID: 86572 RVA: 0x004F2250 File Offset: 0x004F0450 [Token(Token = "0x17003A48")] public Tool ParentTool { [Token(Token = "0x601522C")] [Address(RVA = "0xDE88F0", Offset = "0xDE76F0", VA = "0x180DE88F0")] get { if (this.k__BackingField != 0) { return; } } } // Token: 0x17003A49 RID: 14921 // (get) Token: 0x0601522D RID: 86573 RVA: 0x004F2268 File Offset: 0x004F0468 // (set) Token: 0x0601522E RID: 86574 RVA: 0x004F227C File Offset: 0x004F047C [Token(Token = "0x17003A49")] public Tool RootTool { [Token(Token = "0x601522D")] [Address(RVA = "0x7E2670", Offset = "0x7E1470", VA = "0x1807E2670")] get; [Token(Token = "0x601522E")] [Address(RVA = "0x7E12F0", Offset = "0x7E00F0", VA = "0x1807E12F0")] private set; } // Token: 0x17003A4A RID: 14922 // (get) Token: 0x0601522F RID: 86575 RVA: 0x004F2290 File Offset: 0x004F0490 // (set) Token: 0x06015230 RID: 86576 RVA: 0x004F22A4 File Offset: 0x004F04A4 [Token(Token = "0x17003A4A")] public List ChildrenConnectables { [Token(Token = "0x601522F")] [Address(RVA = "0x423D40", Offset = "0x422B40", VA = "0x180423D40")] get { return this.childrenConnectables; } [Token(Token = "0x6015230")] [Address(RVA = "0x466B90", Offset = "0x465990", VA = "0x180466B90")] private set { this.childrenConnectables = value; } } // Token: 0x17003A4B RID: 14923 // (get) Token: 0x06015231 RID: 86577 RVA: 0x004F22B8 File Offset: 0x004F04B8 // (set) Token: 0x06015232 RID: 86578 RVA: 0x004F22D8 File Offset: 0x004F04D8 [Token(Token = "0x17003A4B")] public bool PhysicallyUnparented { [Token(Token = "0x6015231")] [Address(RVA = "0xDE8A50", Offset = "0xDE7850", VA = "0x180DE8A50")] get { return this._physicallyUnparented.IAHDANBDAAM() != null; } [Token(Token = "0x6015232")] [Address(RVA = "0xDE8E20", Offset = "0xDE7C20", VA = "0x180DE8E20")] set { if (!this.ParentIsTool || this._physicallyUnparented != 0) { } } } // Token: 0x06015233 RID: 86579 RVA: 0x004F22F8 File Offset: 0x004F04F8 [Token(Token = "0x6015233")] [Address(RVA = "0xDE6750", Offset = "0xDE5550", VA = "0x180DE6750", Slot = "13")] protected override void Awake() { base..ctor(); Action action = new Action(this.OnPhysicallyUnparentedChanged); int num; int num2; KLLMCPFPIIE kllmcpfpiie = new KLLMCPFPIIE(this, "PhU", num, (OHOEENCHJJE)num2, action, num2); num2 = 0; num = 0; this._physicallyUnparented = kllmcpfpiie; Tool.OGLAJAFKBMN oglajafkbmn; this._tool.AddCustomPickupCondition(oglajafkbmn); Tool.DNDBJKJIFNL dndbjkjifnl; this._tool.CustomSelectionForwarding = dndbjkjifnl; } // Token: 0x06015234 RID: 86580 RVA: 0x004F2354 File Offset: 0x004F0554 [Token(Token = "0x6015234")] [Address(RVA = "0xDE7540", Offset = "0xDE6340", VA = "0x180DE7540", Slot = "14")] protected override void OnDestroy() { SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int num = 0; if (instance != num) { NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.LocalRemoveNode(this); } base.OnDestroy(); } // Token: 0x06015235 RID: 86581 RVA: 0x004F238C File Offset: 0x004F058C [Token(Token = "0x6015235")] [Address(RVA = "0xDE8300", Offset = "0xDE7100", VA = "0x180DE8300")] private void Start() { SandboxConnectableManager instance = NetworkedSingletonMonoBehaviour.ONCPNMDGGKG; int num = 0; instance.LocalAddNodeToRoot(this, num, true); 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: 0x06015236 RID: 86582 RVA: 0x004F23F4 File Offset: 0x004F05F4 [Token(Token = "0x6015236")] [Address(RVA = "0xDE6D20", Offset = "0xDE5B20", VA = "0x180DE6D20", Slot = "32")] protected virtual bool CustomPickupCondition(Tool thisTool, Player selectingPlayer, Vector3 selectionPoint, bool physicalPickup) { return this.k__BackingField <= (ulong)0L || this._physicallyUnparented.IAHDANBDAAM() != null; } // Token: 0x06015237 RID: 86583 RVA: 0x004F2420 File Offset: 0x004F0620 [Token(Token = "0x6015237")] [Address(RVA = "0xDE6D80", Offset = "0xDE5B80", VA = "0x180DE6D80", Slot = "33")] protected virtual Tool CustomToolForwarding(Player selectingPlayer, bool physicalPickupSelection, Collider selectedCollider) { if (!physicalPickupSelection && this.ParentIsTool) { MIGCNEPBKDG migcnepbkdg = this.k__BackingField; bool flag; if (!flag && this._physicallyUnparented.IAHDANBDAAM() == 0) { MIGCNEPBKDG migcnepbkdg2 = this.k__BackingField; } } return this._tool; } // Token: 0x06015238 RID: 86584 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x6015238")] [Address(RVA = "0xDE8430", Offset = "0xDE7230", VA = "0x180DE8430")] private bool SupportsNavMesh() { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x06015239 RID: 86585 RVA: 0x004F2468 File Offset: 0x004F0668 [Token(Token = "0x6015239")] [Address(RVA = "0xDE7090", Offset = "0xDE5E90", VA = "0x180DE7090")] public Tool GetSafeRootTool() { if (this.ParentIsTool) { MIGCNEPBKDG migcnepbkdg = this.k__BackingField; Tool tool; return tool; } return this._tool; } // Token: 0x0601523A RID: 86586 RVA: 0x004F2494 File Offset: 0x004F0694 [Token(Token = "0x601523A")] [Address(RVA = "0xDE5E90", Offset = "0xDE4C90", VA = "0x180DE5E90")] public void AuthorityParentThisConnectableToOther(int slotIndex, MIGCNEPBKDG parentConnectable, int parentSlotIndex) { if (parentConnectable != 0 && this._tool.OGIBLNIIHDK) { 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: 0x0601523B RID: 86587 RVA: 0x004F24F4 File Offset: 0x004F06F4 [Token(Token = "0x601523B")] [Address(RVA = "0xDE6180", Offset = "0xDE4F80", VA = "0x180DE6180")] public void AuthorityUnparentThisConnectableFromOther() { if (this.k__BackingField > (ulong)0L && this._tool.OGIBLNIIHDK) { NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.RequestMasterReparentToRoot(this); return; } } // Token: 0x0601523C RID: 86588 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601523C")] [Address(RVA = "0xDE5B90", Offset = "0xDE4990", VA = "0x180DE5B90")] public void AuthorityParentOtherConnectableToThis(int slotIndex, MIGCNEPBKDG childConnectable, int childSlotIndex, [Optional] Vector3? relativePosition, [Optional] Quaternion? relativeRotation) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } // Token: 0x0601523D RID: 86589 RVA: 0x004F252C File Offset: 0x004F072C [Token(Token = "0x601523D")] [Address(RVA = "0xDE60E0", Offset = "0xDE4EE0", VA = "0x180DE60E0")] public void AuthorityUnparentOtherConnectableFromThis(MIGCNEPBKDG childConnectable) { if (childConnectable != 0 && this._tool.OGIBLNIIHDK) { NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.RequestMasterReparentToRoot(childConnectable); } } // Token: 0x0601523E RID: 86590 RVA: 0x004F255C File Offset: 0x004F075C [Token(Token = "0x601523E")] [Address(RVA = "0xDE76D0", Offset = "0xDE64D0", VA = "0x180DE76D0")] private void OnPhysicallyUnparentedChanged() { while (this.ParentIsTool) { if (this._physicallyUnparented.IAHDANBDAAM() != 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.OGIBLNIIHDK) { RigidbodyEx rigidbodyEx8 = this._tool.rigidbodyEx; Quaternion quaternion = this.relativeRotationToParent; float z = this.relativePositionToParent.z; return; } } } } // Token: 0x0601523F RID: 86591 RVA: 0x004F2694 File Offset: 0x004F0894 [Token(Token = "0x601523F")] [Address(RVA = "0xDE8190", Offset = "0xDE6F90", VA = "0x180DE8190")] 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: 0x06015240 RID: 86592 RVA: 0x004F26DC File Offset: 0x004F08DC [Token(Token = "0x6015240")] [Address(RVA = "0xDE7110", Offset = "0xDE5F10", VA = "0x180DE7110")] public void OnDeformationUpdateChildrenPositionAndRotation(Vector3 previousPosition) { int num; do { num = 0; if (this.childrenConnectables == 0) { break; } bool flag; if (flag) { bool flag2; while (!flag2) { } Transform targetTransform = this._tool.rigidbodyEx.MDKDCJFEBJH; bool flag3; while (!flag3) { } Transform targetTransform2 = this._tool.rigidbodyEx.MDKDCJFEBJH; Transform targetTransform3 = this._tool.rigidbodyEx.MDKDCJFEBJH; Vector3 vector; float z = vector.z; } } while (num != 0); } // Token: 0x06015241 RID: 86593 RVA: 0x004F2798 File Offset: 0x004F0998 [Token(Token = "0x6015241")] [Address(RVA = "0xDE6210", Offset = "0xDE5010", VA = "0x180DE6210")] public void AuthorityUpdateParentAndChildrenNodesRelativePositionsAndRotations() { int num; do { num = 0; if (!this._tool.OGIBLNIIHDK) { 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; } bool flag; if (flag) { bool flag2; while (!flag2) { } Quaternion quaternion2; NetworkedSingletonMonoBehaviour.ONCPNMDGGKG.RequestMasterModifyNode(migcnepbkdg, this, num2, quaternion2); } } while (num != 0); } // Token: 0x17003A4C RID: 14924 // (get) Token: 0x06015242 RID: 86594 RVA: 0x004F2854 File Offset: 0x004F0A54 [Token(Token = "0x17003A4C")] public Transform Transform { [Token(Token = "0x6015242")] [Address(RVA = "0xDE8AD0", Offset = "0xDE78D0", VA = "0x180DE8AD0", Slot = "16")] get { return this._tool.rigidbodyEx.MDKDCJFEBJH; } } // Token: 0x17003A4D RID: 14925 // (get) Token: 0x06015243 RID: 86595 RVA: 0x004F2878 File Offset: 0x004F0A78 [Token(Token = "0x17003A4D")] public GameObject GameObject { [Token(Token = "0x6015243")] [Address(RVA = "0xDE87D0", Offset = "0xDE75D0", VA = "0x180DE87D0", Slot = "17")] get { return this._tool.gameObject; } } // Token: 0x17003A4E RID: 14926 // (get) Token: 0x06015244 RID: 86596 RVA: 0x004F2898 File Offset: 0x004F0A98 [Token(Token = "0x17003A4E")] public string Name { [Token(Token = "0x6015244")] [Address(RVA = "0xDE8800", Offset = "0xDE7600", VA = "0x180DE8800", Slot = "18")] get { int spawnableToolType = (int)this._tool.OGNBCNBPFCC; string text; return text; } } // Token: 0x17003A4F RID: 14927 // (get) Token: 0x06015245 RID: 86597 RVA: 0x004F28B8 File Offset: 0x004F0AB8 [Token(Token = "0x17003A4F")] public Guid PersistenceId { [Token(Token = "0x6015245")] [Address(RVA = "0xDE8940", Offset = "0xDE7740", VA = "0x180DE8940", Slot = "19")] get { bool flag; if (flag) { } throw new NullReferenceException(); } } // Token: 0x17003A50 RID: 14928 // (get) Token: 0x06015246 RID: 86598 RVA: 0x004F28D0 File Offset: 0x004F0AD0 [Token(Token = "0x17003A50")] public int PhotonId { [Token(Token = "0x6015246")] [Address(RVA = "0xDE8A30", Offset = "0xDE7830", VA = "0x180DE8A30", Slot = "20")] get { return this._tool.KHDKHLFAMOK; } } // Token: 0x17003A51 RID: 14929 // (get) Token: 0x06015247 RID: 86599 RVA: 0x004F28F0 File Offset: 0x004F0AF0 [Token(Token = "0x17003A51")] public Tool Tool { [Token(Token = "0x6015247")] [Address(RVA = "0x3FA170", Offset = "0x3F8F70", VA = "0x1803FA170", Slot = "21")] get { return this._tool; } } // Token: 0x17003A52 RID: 14930 // (get) Token: 0x06015248 RID: 86600 RVA: 0x004F2904 File Offset: 0x004F0B04 [Token(Token = "0x17003A52")] public virtual bool ShouldSerializeUnparented { [Token(Token = "0x6015248")] [Address(RVA = "0x403930", Offset = "0x402730", VA = "0x180403930", Slot = "34")] get { } } // Token: 0x06015249 RID: 86601 RVA: 0x004F2914 File Offset: 0x004F0B14 [Token(Token = "0x6015249")] [Address(RVA = "0xDE6FE0", Offset = "0xDE5DE0", VA = "0x180DE6FE0", Slot = "35")] public virtual Vector3 GetConnectionSlotPosition(int slotIndex) { if (this != 0) { Tool tool = this._tool; Vector3 vector; float z = vector.z; } throw new NullReferenceException(); } // Token: 0x0601524A RID: 86602 RVA: 0x004F2938 File Offset: 0x004F0B38 [Token(Token = "0x601524A")] [Address(RVA = "0xA43610", Offset = "0xA42410", VA = "0x180A43610", Slot = "36")] public virtual Color GetConnectionSlotColor(int slotIndex) { /* An exception occurred when decompiling this method (0601524A) 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 1660 */; } // Token: 0x0601524B RID: 86603 RVA: 0x004F294C File Offset: 0x004F0B4C [Token(Token = "0x601524B")] [Address(RVA = "0xDE6880", Offset = "0xDE5680", VA = "0x180DE6880", 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: 0x0601524C RID: 86604 RVA: 0x004F297C File Offset: 0x004F0B7C [Token(Token = "0x601524C")] [Address(RVA = "0xDE6F40", Offset = "0xDE5D40", VA = "0x180DE6F40", Slot = "38")] public virtual bool Equals(MIGCNEPBKDG other) { if (other == 0) { } bool flag; return flag; } // Token: 0x0601524D RID: 86605 RVA: 0x004F2990 File Offset: 0x004F0B90 [Token(Token = "0x601524D")] [Address(RVA = "0xDE7930", Offset = "0xDE6730", VA = "0x180DE7930", 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.OnParentToolAuthorityChanged); } 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_C4; } 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_C4: 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; Action action2 = new Action(this.OnParentToolAuthorityChanged); tool4.AuthorityChangedEvent += 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.OGIBLNIIHDK && this.ParentIsTool) { KLLMCPFPIIE physicallyUnparented = this._physicallyUnparented; if (physicallyUnparented != 0) { int num3 = 0; physicallyUnparented.BDJFGEJFPPO(num3); } } if (this.ParentChangedEvent != 0) { } } // Token: 0x0601524E RID: 86606 RVA: 0x004F2B84 File Offset: 0x004F0D84 [Token(Token = "0x601524E")] [Address(RVA = "0xDE6950", Offset = "0xDE5750", VA = "0x180DE6950", 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: 0x0601524F RID: 86607 RVA: 0x004F2BC0 File Offset: 0x004F0DC0 [Token(Token = "0x601524F")] [Address(RVA = "0xDE6AE0", Offset = "0xDE58E0", VA = "0x180DE6AE0", Slot = "41")] public virtual void ChildRemoved(int slotIndex, MIGCNEPBKDG removedChildConnectable, int removedChildSlot) { bool flag = this.childrenConnectables.Remove(removedChildConnectable); if (this.ChildRemovedEvent != 0) { } } // Token: 0x06015250 RID: 86608 RVA: 0x004F2BEC File Offset: 0x004F0DEC [Token(Token = "0x6015250")] [Address(RVA = "0xDE6BC0", Offset = "0xDE59C0", VA = "0x180DE6BC0", 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: 0x06015251 RID: 86609 RVA: 0x004F2C10 File Offset: 0x004F0E10 [Token(Token = "0x6015251")] [Address(RVA = "0xDE8030", Offset = "0xDE6E30", VA = "0x180DE8030", 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: 0x06015252 RID: 86610 RVA: 0x004F2C44 File Offset: 0x004F0E44 [Token(Token = "0x6015252")] [Address(RVA = "0xDE7620", Offset = "0xDE6420", VA = "0x180DE7620")] private void OnParentToolAuthorityChanged(AGAJMBPABDL newAuthority) { if (newAuthority != 0 && newAuthority.DMKCIEPGGAB && !this._tool.OGIBLNIIHDK) { PhotonView photonView = this._tool.JDHMIOJKLCK; AGAJMBPABDL agajmbpabdl = KKPBCOOONNK.MDMMDPEKICF; photonView.TransferOwnership(agajmbpabdl); } } // Token: 0x06015253 RID: 86611 RVA: 0x004F2C90 File Offset: 0x004F0E90 [Token(Token = "0x6015253")] [Address(RVA = "0xDE7EF0", Offset = "0xDE6CF0", VA = "0x180DE7EF0")] [CBEAKPMNJOL(LGFJHLDANJN.Unity_AfterSceneLoad)] 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: 0x06015254 RID: 86612 RVA: 0x004F2CF4 File Offset: 0x004F0EF4 [Token(Token = "0x6015254")] [Address(RVA = "0xDE8440", Offset = "0xDE7240", VA = "0x180DE8440")] [CALLMFDLAPD(IFJNJDOONNL.ExitingPlayMode, 0)] private static void UnregisterRpcSerializationHandlers() { PMDMLFNOIDA.ONCPNMDGGKG.NFJKPKDIFKP(); } // Token: 0x06015255 RID: 86613 RVA: 0x004F2D14 File Offset: 0x004F0F14 [Token(Token = "0x6015255")] [Address(RVA = "0xDE80C0", Offset = "0xDE6EC0", VA = "0x180DE80C0")] private static object SerializeIConnectable(object input) { PhotonView photonView; int viewIdField = photonView.viewIdField; throw new NullReferenceException(); } // Token: 0x06015256 RID: 86614 RVA: 0x004F2D30 File Offset: 0x004F0F30 [Token(Token = "0x6015256")] [Address(RVA = "0xDE6E70", Offset = "0xDE5C70", VA = "0x180DE6E70")] private static object DeserializeIConnectable(object input) { int num = 0; PhotonView photonView; if (photonView != num) { MIGCNEPBKDG component = photonView.GetComponent(); } throw new NullReferenceException(); } // Token: 0x06015257 RID: 86615 RVA: 0x004F2D58 File Offset: 0x004F0F58 [Token(Token = "0x6015257")] [Address(RVA = "0xDE59F0", Offset = "0xDE47F0", VA = "0x180DE59F0")] public ConnectableTool() { List list = new List(); this.childrenConnectables = list; base..ctor(); } // Token: 0x0400E004 RID: 57348 [global::Cpp2IlInjected.FieldOffset(Offset = "0x40")] [Token(Token = "0x400E004")] [SerializeField] private ConnectionPoint[] connectionPoints; // Token: 0x0400E005 RID: 57349 [global::Cpp2IlInjected.FieldOffset(Offset = "0x48")] [Token(Token = "0x400E005")] [SerializeField] [DDPIINEJFMD(JIBDPHMGEGO.Self, false, false, false)] private Tool _tool; // Token: 0x0400E006 RID: 57350 [global::Cpp2IlInjected.FieldOffset(Offset = "0x50")] [Token(Token = "0x400E006")] protected object connectionToParentToken = "Parented"; // Token: 0x0400E007 RID: 57351 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x400E007")] private List childrenConnectables; // Token: 0x0400E008 RID: 57352 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x400E008")] private KLLMCPFPIIE _physicallyUnparented; // Token: 0x0400E009 RID: 57353 [global::Cpp2IlInjected.FieldOffset(Offset = "0x68")] [Token(Token = "0x400E009")] private Vector3 relativePositionToParent; // Token: 0x0400E00A RID: 57354 [global::Cpp2IlInjected.FieldOffset(Offset = "0x74")] [Token(Token = "0x400E00A")] private Quaternion relativeRotationToParent; // Token: 0x02003081 RID: 12417 [Token(Token = "0x2003081")] public sealed class HierarchyChangeHandler : MulticastDelegate { // Token: 0x06015258 RID: 86616 RVA: 0x004F2D84 File Offset: 0x004F0F84 [Token(Token = "0x6015258")] [Address(RVA = "0x448ED0", Offset = "0x447CD0", VA = "0x180448ED0")] public HierarchyChangeHandler(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x06015259 RID: 86617 RVA: 0x004F2DA0 File Offset: 0x004F0FA0 [Token(Token = "0x6015259")] [Address(RVA = "0xDF4510", Offset = "0xDF3310", VA = "0x180DF4510", 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: 0x0601525A RID: 86618 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601525A")] [Address(RVA = "0xDF4420", Offset = "0xDF3220", VA = "0x180DF4420", 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: 0x0601525B RID: 86619 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601525B")] [Address(RVA = "0x448B70", Offset = "0x447970", VA = "0x180448B70", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x02003082 RID: 12418 [Token(Token = "0x2003082")] public sealed class RootChangeHandler : MulticastDelegate { // Token: 0x0601525C RID: 86620 RVA: 0x004F2E80 File Offset: 0x004F1080 [Token(Token = "0x601525C")] [Address(RVA = "0x448ED0", Offset = "0x447CD0", VA = "0x180448ED0")] public RootChangeHandler(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x0601525D RID: 86621 RVA: 0x004F2E9C File Offset: 0x004F109C [Token(Token = "0x601525D")] [Address(RVA = "0xD18F00", Offset = "0xD17D00", VA = "0x180D18F00", Slot = "13")] public void Invoke(MIGCNEPBKDG previousRootConnectable, MIGCNEPBKDG newRootConnectable) { if (this.delegates != 0) { } uint num; if (num != (uint)0) { throw new ExecutionEngineException(); } } // Token: 0x0601525E RID: 86622 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601525E")] [Address(RVA = "0x457420", Offset = "0x456220", VA = "0x180457420", 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: 0x0601525F RID: 86623 RVA: 0x0000220F File Offset: 0x0000040F [Token(Token = "0x601525F")] [Address(RVA = "0x448B70", Offset = "0x447970", VA = "0x180448B70", Slot = "15")] public void EndInvoke(IAsyncResult result) { throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method."); } } // Token: 0x02003083 RID: 12419 [Token(Token = "0x2003083")] public sealed class ConnectionViabilityChecker : MulticastDelegate { // Token: 0x06015260 RID: 86624 RVA: 0x004F2F78 File Offset: 0x004F1178 [Token(Token = "0x6015260")] [Address(RVA = "0x448ED0", Offset = "0x447CD0", VA = "0x180448ED0")] public ConnectionViabilityChecker(object @object, IntPtr method) { this.method = method; this.m_target = @object; } // Token: 0x06015261 RID: 86625 RVA: 0x004F2F94 File Offset: 0x004F1194 [Token(Token = "0x6015261")] [Address(RVA = "0xDEAD60", Offset = "0xDE9B60", VA = "0x180DEAD60", 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) { } int num6; if (delegate2 != 0) { uint num4; if (@delegate.method_info == num4) { goto IL_C9; } 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 (num6 != 0) { } IL_C9: num++; } // Token: 0x06015262 RID: 86626 RVA: 0x004F3070 File Offset: 0x004F1270 [Token(Token = "0x6015262")] [Address(RVA = "0xDEACC0", Offset = "0xDE9AC0", VA = "0x180DEACC0", Slot = "14")] public IAsyncResult BeginInvoke(int slotIndex, MIGCNEPBKDG otherConnectable, int otherConnectableSlotIndex, AsyncCallback callback, object @object) { } // Token: 0x06015263 RID: 86627 RVA: 0x004F3080 File Offset: 0x004F1280 [Token(Token = "0x6015263")] [Address(RVA = "0x451890", Offset = "0x450690", VA = "0x180451890", Slot = "15")] public bool EndInvoke(IAsyncResult result) { throw new NullReferenceException(); } } } }