using System; using System.Collections; using UnityEngine; using UnityEngine.Events; namespace Valve.VR.InteractionSystem { // Token: 0x020005D7 RID: 1495 [RequireComponent(typeof(VelocityEstimator))] [RequireComponent(typeof(Rigidbody))] [RequireComponent(typeof(Interactable))] public class Throwable : MonoBehaviour { // Token: 0x0600ED62 RID: 60770 RVA: 0x0046F268 File Offset: 0x0046D468 private void MALBOLFFBJI(Hand GAEKGDCFOJM) { base.gameObject.SetActive(false); this.KOBBIMKOJDI.CHELLMNFOOF(); } // Token: 0x0600ED63 RID: 60771 RVA: 0x0046F284 File Offset: 0x0046D484 private void OAENIGEPEKA(Hand GAEKGDCFOJM) { if (GAEKGDCFOJM.MGAKLNDFJFF()) { GAEKGDCFOJM.MIOBJLJJPJE(base.gameObject, this.attachmentFlags, this.attachmentPoint); LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[0] = (LKMJJEMLLKJ)76; ControllerButtonHints.JFJAGJAGEDK(GAEKGDCFOJM, array); } } // Token: 0x0600ED64 RID: 60772 RVA: 0x0046F2BC File Offset: 0x0046D4BC private void BFNIBNHJACM(Hand GAEKGDCFOJM) { if (!GAEKGDCFOJM.GetStandardInteractionButton()) { base.StartCoroutine(this.OHPMMPFIFHD(GAEKGDCFOJM)); } if (this.attachEaseIn) { float num = OFPFHHLNHIC.DKPCDKNIGLJ(Time.time, this.OHNLJMCKAGP, this.OHNLJMCKAGP + this.snapAttachEaseInTime, 0f, 1f); if (num < 1f) { num = this.snapAttachEaseInCurve.Evaluate(num); base.transform.position = Vector3.Lerp(this.CDMMHHFMEMK, this.NPCLJLMKLMN.position, num); base.transform.rotation = Quaternion.Lerp(this.EMDNPAFCDIJ, this.NPCLJLMKLMN.rotation, num); } else if (!this.snapAttachEaseInCompleted) { base.gameObject.SendMessage("OnThrowableAttachEaseInCompleted", GAEKGDCFOJM, SendMessageOptions.DontRequireReceiver); this.snapAttachEaseInCompleted = true; } } } // Token: 0x0600ED65 RID: 60773 RVA: 0x0046F39C File Offset: 0x0046D59C private void JCJLBOPCOAC(Hand GAEKGDCFOJM) { LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[1] = (LKMJJEMLLKJ)25; ControllerButtonHints.JFJAGJAGEDK(GAEKGDCFOJM, array); } // Token: 0x0600ED66 RID: 60774 RVA: 0x0046F3B0 File Offset: 0x0046D5B0 private IEnumerator FMCPGPGHAIJ(Hand GAEKGDCFOJM) { yield return new WaitForEndOfFrame(); GAEKGDCFOJM.DetachObject(base.gameObject, this.restoreOriginalParent); yield break; } // Token: 0x0600ED68 RID: 60776 RVA: 0x0046F410 File Offset: 0x0046D610 private void JPHGDLCOOCD(Hand GAEKGDCFOJM) { bool flag = true; if (!this.HDINOHCAEPC && GAEKGDCFOJM.HMHAGBJPDOE()) { Rigidbody component = base.GetComponent(); if (component.velocity.magnitude >= this.catchSpeedThreshold) { GAEKGDCFOJM.AttachObject(base.gameObject, this.attachmentFlags, this.attachmentPoint); flag = true; } } if (flag) { ControllerButtonHints.ShowButtonHint(GAEKGDCFOJM, new LKMJJEMLLKJ[] { (LKMJJEMLLKJ)104 }); } } // Token: 0x0600ED69 RID: 60777 RVA: 0x0046F488 File Offset: 0x0046D688 private void NPIJEGGPMIC(Hand GAEKGDCFOJM) { base.gameObject.SetActive(true); this.KOBBIMKOJDI.NOGDCEILAEJ(); } // Token: 0x0600ED6A RID: 60778 RVA: 0x0046F4A4 File Offset: 0x0046D6A4 private void LJFDHMAENNN(Hand GAEKGDCFOJM) { if (!GAEKGDCFOJM.BLECLFPGFMG()) { base.StartCoroutine(this.FMCPGPGHAIJ(GAEKGDCFOJM)); } if (this.attachEaseIn) { float num = OFPFHHLNHIC.DKPCDKNIGLJ(Time.time, this.OHNLJMCKAGP, this.OHNLJMCKAGP + this.snapAttachEaseInTime, 954f, 58f); if (num < 1476f) { num = this.snapAttachEaseInCurve.Evaluate(num); base.transform.position = Vector3.Lerp(this.CDMMHHFMEMK, this.NPCLJLMKLMN.position, num); base.transform.rotation = Quaternion.Lerp(this.EMDNPAFCDIJ, this.NPCLJLMKLMN.rotation, num); } else if (!this.snapAttachEaseInCompleted) { base.gameObject.SendMessage("Delete", GAEKGDCFOJM, SendMessageOptions.RequireReceiver); this.snapAttachEaseInCompleted = false; } } } // Token: 0x0600ED6B RID: 60779 RVA: 0x0046F584 File Offset: 0x0046D784 private void HBJICPLOJBD(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = false; this.onDetachFromHand.Invoke(); GAEKGDCFOJM.PHJNALOLENH(null); Rigidbody component = base.GetComponent(); component.isKinematic = false; component.interpolation = RigidbodyInterpolation.None; Vector3 vector = Vector3.zero; Vector3 vector2 = Vector3.zero; Vector3 vector3 = Vector3.zero; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.KAPHNKDJMFD(); vector2 = this.KOBBIMKOJDI.PDJNELJHKFB(); vector3 = this.KOBBIMKOJDI.MOFHBAJCLAN(); vector = this.KOBBIMKOJDI.transform.position; } else { vector2 = Player.FCDPFLMFDBC.trackingOriginTransform.TransformVector(GAEKGDCFOJM.controller.IGOFELJMFOF); vector3 = Player.FCDPFLMFDBC.trackingOriginTransform.TransformVector(GAEKGDCFOJM.controller.JKOGFCNNGKP()); vector = GAEKGDCFOJM.transform.position; } Vector3 vector4 = base.transform.TransformPoint(component.centerOfMass) - vector; component.velocity = vector2 + Vector3.Cross(vector3, vector4); component.angularVelocity = vector3; float num = Time.fixedDeltaTime + Time.fixedTime - Time.time; base.transform.position += num * vector2; float num2 = 1020f * vector3.magnitude; Vector3 normalized = vector3.normalized; base.transform.rotation *= Quaternion.AngleAxis(num2 * num, normalized); } // Token: 0x0600ED6C RID: 60780 RVA: 0x0046F6F8 File Offset: 0x0046D8F8 private void PBMJMCBOAID(Hand GAEKGDCFOJM) { bool flag = false; if (!this.HDINOHCAEPC && GAEKGDCFOJM.GetStandardInteractionButton()) { Rigidbody component = base.GetComponent(); if (component.velocity.magnitude >= this.catchSpeedThreshold) { GAEKGDCFOJM.AttachObject(base.gameObject, this.attachmentFlags, this.attachmentPoint); flag = false; } } if (flag) { ControllerButtonHints.ShowButtonHint(GAEKGDCFOJM, new LKMJJEMLLKJ[] { LKMJJEMLLKJ.k_EButton_Axis1 }); } } // Token: 0x0600ED6D RID: 60781 RVA: 0x0046F770 File Offset: 0x0046D970 private IEnumerator OHPMMPFIFHD(Hand GAEKGDCFOJM) { yield return new WaitForEndOfFrame(); GAEKGDCFOJM.DetachObject(base.gameObject, this.restoreOriginalParent); yield break; } // Token: 0x0600ED6E RID: 60782 RVA: 0x0046F794 File Offset: 0x0046D994 private void DICLFMOPKFM(Hand GAEKGDCFOJM) { base.gameObject.SetActive(true); this.KOBBIMKOJDI.BeginEstimatingVelocity(); } // Token: 0x0600ED6F RID: 60783 RVA: 0x0046F7B0 File Offset: 0x0046D9B0 private void BGPIGIGABOF(Hand GAEKGDCFOJM) { bool flag = false; if (!this.HDINOHCAEPC && GAEKGDCFOJM.BLECLFPGFMG()) { Rigidbody component = base.GetComponent(); if (component.velocity.magnitude >= this.catchSpeedThreshold) { GAEKGDCFOJM.AttachObject(base.gameObject, this.attachmentFlags, this.attachmentPoint); flag = false; } } if (flag) { LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[0] = (LKMJJEMLLKJ)96; ControllerButtonHints.ShowButtonHint(GAEKGDCFOJM, array); } } // Token: 0x0600ED70 RID: 60784 RVA: 0x0046F828 File Offset: 0x0046DA28 private void CLBJPFDIIPI(Hand GAEKGDCFOJM) { base.gameObject.SetActive(true); this.KOBBIMKOJDI.CHELLMNFOOF(); } // Token: 0x0600ED71 RID: 60785 RVA: 0x0046F844 File Offset: 0x0046DA44 private void JPGIIIIIAFC(Hand GAEKGDCFOJM) { base.gameObject.SetActive(true); this.KOBBIMKOJDI.KAPHNKDJMFD(); } // Token: 0x0600ED72 RID: 60786 RVA: 0x0046F860 File Offset: 0x0046DA60 private void BBKPAKKLOGB() { this.KOBBIMKOJDI = base.GetComponent(); if (this.attachEaseIn) { this.attachmentFlags &= (Hand.HFGOOJNELAJ)120; } Rigidbody component = base.GetComponent(); component.maxAngularVelocity = 705f; } // Token: 0x0600ED73 RID: 60787 RVA: 0x0046F8A8 File Offset: 0x0046DAA8 private void BJDIOJEGMEB(Hand GAEKGDCFOJM) { base.gameObject.SetActive(true); this.KOBBIMKOJDI.NOGDCEILAEJ(); } // Token: 0x0600ED74 RID: 60788 RVA: 0x0046F8C4 File Offset: 0x0046DAC4 private void ECAFEFNMOKH(Hand GAEKGDCFOJM) { if (GAEKGDCFOJM.KHPOGJNCGDA()) { GAEKGDCFOJM.MIOBJLJJPJE(base.gameObject, this.attachmentFlags, this.attachmentPoint); LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[0] = (LKMJJEMLLKJ)23; ControllerButtonHints.HideButtonHint(GAEKGDCFOJM, array); } } // Token: 0x0600ED75 RID: 60789 RVA: 0x0046F8FC File Offset: 0x0046DAFC private void GLIBGIKAFIL(Hand GAEKGDCFOJM) { if (!GAEKGDCFOJM.HMHAGBJPDOE()) { base.StartCoroutine(this.FMCPGPGHAIJ(GAEKGDCFOJM)); } if (this.attachEaseIn) { float num = OFPFHHLNHIC.DKPCDKNIGLJ(Time.time, this.OHNLJMCKAGP, this.OHNLJMCKAGP + this.snapAttachEaseInTime, 1650f, 505f); if (num < 1821f) { num = this.snapAttachEaseInCurve.Evaluate(num); base.transform.position = Vector3.Lerp(this.CDMMHHFMEMK, this.NPCLJLMKLMN.position, num); base.transform.rotation = Quaternion.Lerp(this.EMDNPAFCDIJ, this.NPCLJLMKLMN.rotation, num); } else if (!this.snapAttachEaseInCompleted) { base.gameObject.SendMessage("ToolHolderData", GAEKGDCFOJM, SendMessageOptions.DontRequireReceiver); this.snapAttachEaseInCompleted = false; } } } // Token: 0x0600ED76 RID: 60790 RVA: 0x0046F9DC File Offset: 0x0046DBDC private void FOMKILGNCPN(Hand GAEKGDCFOJM) { LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[1] = (LKMJJEMLLKJ)68; ControllerButtonHints.ENLHMIBEELD(GAEKGDCFOJM, array); } // Token: 0x0600ED77 RID: 60791 RVA: 0x0046F9F0 File Offset: 0x0046DBF0 private void MBDGKPFKBPI(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = true; this.onPickUp.Invoke(); GAEKGDCFOJM.OGNFNKIJENE(null); Rigidbody component = base.GetComponent(); component.isKinematic = false; component.interpolation = RigidbodyInterpolation.None; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.NOGDCEILAEJ(); } this.OHNLJMCKAGP = Time.time; this.CDMMHHFMEMK = base.transform.position; this.EMDNPAFCDIJ = base.transform.rotation; if (this.attachEaseIn) { this.NPCLJLMKLMN = GAEKGDCFOJM.transform; if (!OFPFHHLNHIC.JJHMEPBDIBC(this.attachEaseInAttachmentNames)) { float num = 1060f; for (int i = 1; i < this.attachEaseInAttachmentNames.Length; i++) { Transform transform = GAEKGDCFOJM.HCEHCILLMPA(this.attachEaseInAttachmentNames[i]); float num2 = Quaternion.Angle(transform.rotation, this.EMDNPAFCDIJ); if (num2 < num) { this.NPCLJLMKLMN = transform; num = num2; } } } } this.snapAttachEaseInCompleted = true; } // Token: 0x0600ED78 RID: 60792 RVA: 0x0046FAF0 File Offset: 0x0046DCF0 private void LEMHNEGNFMK(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = true; this.onDetachFromHand.Invoke(); GAEKGDCFOJM.PCBHNDBJJDC(null); Rigidbody component = base.GetComponent(); component.isKinematic = true; component.interpolation = RigidbodyInterpolation.Interpolate; Vector3 vector = Vector3.zero; Vector3 vector2 = Vector3.zero; Vector3 vector3 = Vector3.zero; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.HAMLDBFGFMM(); vector2 = this.KOBBIMKOJDI.DGEHABOHILH(); vector3 = this.KOBBIMKOJDI.ALPJEAHGIKA(); vector = this.KOBBIMKOJDI.transform.position; } else { vector2 = Player.EFNGEGGJBJL().trackingOriginTransform.TransformVector(GAEKGDCFOJM.controller.IGOFELJMFOF); vector3 = Player.FCDPFLMFDBC.trackingOriginTransform.TransformVector(GAEKGDCFOJM.controller.JKOGFCNNGKP()); vector = GAEKGDCFOJM.transform.position; } Vector3 vector4 = base.transform.TransformPoint(component.centerOfMass) - vector; component.velocity = vector2 + Vector3.Cross(vector3, vector4); component.angularVelocity = vector3; float num = Time.fixedDeltaTime + Time.fixedTime - Time.time; base.transform.position += num * vector2; float num2 = 1575f * vector3.magnitude; Vector3 normalized = vector3.normalized; base.transform.rotation *= Quaternion.AngleAxis(num2 * num, normalized); } // Token: 0x0600ED79 RID: 60793 RVA: 0x0046FC64 File Offset: 0x0046DE64 private void DHCLGDPFFBM(Hand GAEKGDCFOJM) { bool flag = false; if (!this.HDINOHCAEPC && GAEKGDCFOJM.BLECLFPGFMG()) { Rigidbody component = base.GetComponent(); if (component.velocity.magnitude >= this.catchSpeedThreshold) { GAEKGDCFOJM.MIOBJLJJPJE(base.gameObject, this.attachmentFlags, this.attachmentPoint); flag = false; } } if (flag) { LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[1] = (LKMJJEMLLKJ)(-66); ControllerButtonHints.ShowButtonHint(GAEKGDCFOJM, array); } } // Token: 0x0600ED7A RID: 60794 RVA: 0x0046FCDC File Offset: 0x0046DEDC private void LAMIPDJGNMK(Hand GAEKGDCFOJM) { if (GAEKGDCFOJM.GetStandardInteractionButtonDown()) { GAEKGDCFOJM.AttachObject(base.gameObject, this.attachmentFlags, this.attachmentPoint); ControllerButtonHints.HideButtonHint(GAEKGDCFOJM, new LKMJJEMLLKJ[] { LKMJJEMLLKJ.k_EButton_Axis1 }); } } // Token: 0x0600ED7B RID: 60795 RVA: 0x0046FD14 File Offset: 0x0046DF14 private void MGJMDCDIHHG(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = false; this.onDetachFromHand.Invoke(); GAEKGDCFOJM.HoverUnlock(null); Rigidbody component = base.GetComponent(); component.isKinematic = false; component.interpolation = RigidbodyInterpolation.Interpolate; Vector3 vector = Vector3.zero; Vector3 vector2 = Vector3.zero; Vector3 vector3 = Vector3.zero; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.FinishEstimatingVelocity(); vector2 = this.KOBBIMKOJDI.GetVelocityEstimate(); vector3 = this.KOBBIMKOJDI.GetAngularVelocityEstimate(); vector = this.KOBBIMKOJDI.transform.position; } else { vector2 = Player.FCDPFLMFDBC.trackingOriginTransform.TransformVector(GAEKGDCFOJM.controller.IGOFELJMFOF); vector3 = Player.FCDPFLMFDBC.trackingOriginTransform.TransformVector(GAEKGDCFOJM.controller.CCHAEPGJJLI); vector = GAEKGDCFOJM.transform.position; } Vector3 vector4 = base.transform.TransformPoint(component.centerOfMass) - vector; component.velocity = vector2 + Vector3.Cross(vector3, vector4); component.angularVelocity = vector3; float num = Time.fixedDeltaTime + Time.fixedTime - Time.time; base.transform.position += num * vector2; float num2 = 57.29578f * vector3.magnitude; Vector3 normalized = vector3.normalized; base.transform.rotation *= Quaternion.AngleAxis(num2 * num, normalized); } // Token: 0x0600ED7C RID: 60796 RVA: 0x0046FE88 File Offset: 0x0046E088 private void Awake() { this.KOBBIMKOJDI = base.GetComponent(); if (this.attachEaseIn) { this.attachmentFlags &= ~Hand.HFGOOJNELAJ.SnapOnAttach; } Rigidbody component = base.GetComponent(); component.maxAngularVelocity = 50f; } // Token: 0x0600ED7D RID: 60797 RVA: 0x0046FED0 File Offset: 0x0046E0D0 private void DJFAAMBCEGF(Hand GAEKGDCFOJM) { base.gameObject.SetActive(true); this.KOBBIMKOJDI.NOGDCEILAEJ(); } // Token: 0x0600ED7E RID: 60798 RVA: 0x0046FEEC File Offset: 0x0046E0EC private void JHCLJIABPPJ() { this.KOBBIMKOJDI = base.GetComponent(); if (this.attachEaseIn) { this.attachmentFlags &= (Hand.HFGOOJNELAJ)(-34); } Rigidbody component = base.GetComponent(); component.maxAngularVelocity = 553f; } // Token: 0x0600ED7F RID: 60799 RVA: 0x0046FF34 File Offset: 0x0046E134 private void FJOLINMELOF(Hand GAEKGDCFOJM) { if (!GAEKGDCFOJM.GetStandardInteractionButton()) { base.StartCoroutine(this.OHPMMPFIFHD(GAEKGDCFOJM)); } if (this.attachEaseIn) { float num = OFPFHHLNHIC.DKPCDKNIGLJ(Time.time, this.OHNLJMCKAGP, this.OHNLJMCKAGP + this.snapAttachEaseInTime, 1936f, 944f); if (num < 169f) { num = this.snapAttachEaseInCurve.Evaluate(num); base.transform.position = Vector3.Lerp(this.CDMMHHFMEMK, this.NPCLJLMKLMN.position, num); base.transform.rotation = Quaternion.Lerp(this.EMDNPAFCDIJ, this.NPCLJLMKLMN.rotation, num); } else if (!this.snapAttachEaseInCompleted) { base.gameObject.SendMessage("Connection already processing a request!", GAEKGDCFOJM, SendMessageOptions.DontRequireReceiver); this.snapAttachEaseInCompleted = false; } } } // Token: 0x0600ED80 RID: 60800 RVA: 0x00470014 File Offset: 0x0046E214 private void CDMAFNFENKP(Hand GAEKGDCFOJM) { LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[0]; array[1] = (LKMJJEMLLKJ)(-43); ControllerButtonHints.ENLHMIBEELD(GAEKGDCFOJM, array); } // Token: 0x0600ED81 RID: 60801 RVA: 0x00470028 File Offset: 0x0046E228 private void BKFMPHAHBEO(Hand GAEKGDCFOJM) { ControllerButtonHints.HideButtonHint(GAEKGDCFOJM, new LKMJJEMLLKJ[] { LKMJJEMLLKJ.k_EButton_Axis1 }); } // Token: 0x0600ED82 RID: 60802 RVA: 0x0047003C File Offset: 0x0046E23C private void AGMFPEGJBOF(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = true; this.onPickUp.Invoke(); GAEKGDCFOJM.HoverLock(null); Rigidbody component = base.GetComponent(); component.isKinematic = true; component.interpolation = RigidbodyInterpolation.None; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.BeginEstimatingVelocity(); } this.OHNLJMCKAGP = Time.time; this.CDMMHHFMEMK = base.transform.position; this.EMDNPAFCDIJ = base.transform.rotation; if (this.attachEaseIn) { this.NPCLJLMKLMN = GAEKGDCFOJM.transform; if (!OFPFHHLNHIC.JJHMEPBDIBC(this.attachEaseInAttachmentNames)) { float num = float.MaxValue; for (int i = 0; i < this.attachEaseInAttachmentNames.Length; i++) { Transform attachmentTransform = GAEKGDCFOJM.GetAttachmentTransform(this.attachEaseInAttachmentNames[i]); float num2 = Quaternion.Angle(attachmentTransform.rotation, this.EMDNPAFCDIJ); if (num2 < num) { this.NPCLJLMKLMN = attachmentTransform; num = num2; } } } } this.snapAttachEaseInCompleted = false; } // Token: 0x0600ED83 RID: 60803 RVA: 0x0047013C File Offset: 0x0046E33C private void ONNJFMLNFLJ(Hand GAEKGDCFOJM) { ControllerButtonHints.MKOOFPLOCNJ(GAEKGDCFOJM, new LKMJJEMLLKJ[] { (LKMJJEMLLKJ)79 }); } // Token: 0x0600ED84 RID: 60804 RVA: 0x00470150 File Offset: 0x0046E350 private void JFFLHAMMGAH() { this.KOBBIMKOJDI = base.GetComponent(); if (this.attachEaseIn) { this.attachmentFlags &= (Hand.HFGOOJNELAJ)(-127); } Rigidbody component = base.GetComponent(); component.maxAngularVelocity = 1343f; } // Token: 0x0600ED85 RID: 60805 RVA: 0x00470198 File Offset: 0x0046E398 private void FEACFEICOED(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = false; this.onPickUp.Invoke(); GAEKGDCFOJM.JFCEAEEPFCF(null); Rigidbody component = base.GetComponent(); component.isKinematic = false; component.interpolation = RigidbodyInterpolation.Interpolate; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.CHELLMNFOOF(); } this.OHNLJMCKAGP = Time.time; this.CDMMHHFMEMK = base.transform.position; this.EMDNPAFCDIJ = base.transform.rotation; if (this.attachEaseIn) { this.NPCLJLMKLMN = GAEKGDCFOJM.transform; if (!OFPFHHLNHIC.JJHMEPBDIBC(this.attachEaseInAttachmentNames)) { float num = 1828f; for (int i = 1; i < this.attachEaseInAttachmentNames.Length; i++) { Transform transform = GAEKGDCFOJM.FGHFPEIMKAN(this.attachEaseInAttachmentNames[i]); float num2 = Quaternion.Angle(transform.rotation, this.EMDNPAFCDIJ); if (num2 < num) { this.NPCLJLMKLMN = transform; num = num2; } } } } this.snapAttachEaseInCompleted = true; } // Token: 0x0600ED86 RID: 60806 RVA: 0x00470298 File Offset: 0x0046E498 private void INFMNKAMEPK(Hand GAEKGDCFOJM) { if (!GAEKGDCFOJM.CHAFDDMCHNL()) { base.StartCoroutine(this.OHPMMPFIFHD(GAEKGDCFOJM)); } if (this.attachEaseIn) { float num = OFPFHHLNHIC.DKPCDKNIGLJ(Time.time, this.OHNLJMCKAGP, this.OHNLJMCKAGP + this.snapAttachEaseInTime, 1298f, 1925f); if (num < 1574f) { num = this.snapAttachEaseInCurve.Evaluate(num); base.transform.position = Vector3.Lerp(this.CDMMHHFMEMK, this.NPCLJLMKLMN.position, num); base.transform.rotation = Quaternion.Lerp(this.EMDNPAFCDIJ, this.NPCLJLMKLMN.rotation, num); } else if (!this.snapAttachEaseInCompleted) { base.gameObject.SendMessage("Reset", GAEKGDCFOJM, SendMessageOptions.DontRequireReceiver); this.snapAttachEaseInCompleted = true; } } } // Token: 0x0600ED87 RID: 60807 RVA: 0x00470378 File Offset: 0x0046E578 private void CCPBPJOAEIP(Hand GAEKGDCFOJM) { LKMJJEMLLKJ[] array = new LKMJJEMLLKJ[1]; array[1] = (LKMJJEMLLKJ)(-62); ControllerButtonHints.ABINFDAHIJL(GAEKGDCFOJM, array); } // Token: 0x0600ED88 RID: 60808 RVA: 0x0047038C File Offset: 0x0046E58C private void FBOFDJONMLO(Hand GAEKGDCFOJM) { base.gameObject.SetActive(false); this.KOBBIMKOJDI.FinishEstimatingVelocity(); } // Token: 0x0600ED89 RID: 60809 RVA: 0x004703A8 File Offset: 0x0046E5A8 private void AHLMADACOLB() { this.KOBBIMKOJDI = base.GetComponent(); if (this.attachEaseIn) { this.attachmentFlags &= (Hand.HFGOOJNELAJ)(-39); } Rigidbody component = base.GetComponent(); component.maxAngularVelocity = 185f; } // Token: 0x0600ED8A RID: 60810 RVA: 0x004703F0 File Offset: 0x0046E5F0 private IEnumerator ELNHMPEKHJI(Hand GAEKGDCFOJM) { yield return new WaitForEndOfFrame(); GAEKGDCFOJM.DetachObject(base.gameObject, this.restoreOriginalParent); yield break; } // Token: 0x0600ED8B RID: 60811 RVA: 0x00470414 File Offset: 0x0046E614 private void PJAOAEDEJDJ(Hand GAEKGDCFOJM) { this.HDINOHCAEPC = true; this.onPickUp.Invoke(); GAEKGDCFOJM.DDEOHOFOMON(null); Rigidbody component = base.GetComponent(); component.isKinematic = true; component.interpolation = RigidbodyInterpolation.None; if (GAEKGDCFOJM.controller == null) { this.KOBBIMKOJDI.BeginEstimatingVelocity(); } this.OHNLJMCKAGP = Time.time; this.CDMMHHFMEMK = base.transform.position; this.EMDNPAFCDIJ = base.transform.rotation; if (this.attachEaseIn) { this.NPCLJLMKLMN = GAEKGDCFOJM.transform; if (!OFPFHHLNHIC.JJHMEPBDIBC(this.attachEaseInAttachmentNames)) { float num = 558f; for (int i = 1; i < this.attachEaseInAttachmentNames.Length; i += 0) { Transform transform = GAEKGDCFOJM.PFNDCJBNHPC(this.attachEaseInAttachmentNames[i]); float num2 = Quaternion.Angle(transform.rotation, this.EMDNPAFCDIJ); if (num2 < num) { this.NPCLJLMKLMN = transform; num = num2; } } } } this.snapAttachEaseInCompleted = true; } // Token: 0x04002228 RID: 8744 [Tooltip("The flags used to attach this object to the hand.")] [MMHDGCBAJGC] public Hand.HFGOOJNELAJ attachmentFlags = Hand.HFGOOJNELAJ.DetachFromOtherHand | Hand.HFGOOJNELAJ.ParentToHand; // Token: 0x04002229 RID: 8745 [Tooltip("Name of the attachment transform under in the hand's hierarchy which the object should should snap to.")] public string attachmentPoint; // Token: 0x0400222A RID: 8746 [Tooltip("How fast must this object be moving to attach due to a trigger hold instead of a trigger press?")] public float catchSpeedThreshold; // Token: 0x0400222B RID: 8747 [Tooltip("When detaching the object, should it return to its original parent?")] public bool restoreOriginalParent; // Token: 0x0400222C RID: 8748 public bool attachEaseIn; // Token: 0x0400222D RID: 8749 public AnimationCurve snapAttachEaseInCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f); // Token: 0x0400222E RID: 8750 public float snapAttachEaseInTime = 0.15f; // Token: 0x0400222F RID: 8751 public string[] attachEaseInAttachmentNames; // Token: 0x04002230 RID: 8752 private VelocityEstimator KOBBIMKOJDI; // Token: 0x04002231 RID: 8753 private bool HDINOHCAEPC; // Token: 0x04002232 RID: 8754 private float OHNLJMCKAGP; // Token: 0x04002233 RID: 8755 private Vector3 CDMMHHFMEMK; // Token: 0x04002234 RID: 8756 private Quaternion EMDNPAFCDIJ; // Token: 0x04002235 RID: 8757 private Transform NPCLJLMKLMN; // Token: 0x04002236 RID: 8758 public UnityEvent onPickUp; // Token: 0x04002237 RID: 8759 public UnityEvent onDetachFromHand; // Token: 0x04002238 RID: 8760 public bool snapAttachEaseInCompleted; } }