Esempio n. 1
0
 // Token: 0x06003B61 RID: 15201 RVA: 0x0012B028 File Offset: 0x00129428
 private void OffhandGrabbed(Grabbable grabbable)
 {
     if (this.m_grabbedGrabbable == grabbable)
     {
         this.GrabbableRelease(Vector3.zero, Vector3.zero);
     }
 }
Esempio n. 2
0
        // Token: 0x06003B5A RID: 15194 RVA: 0x0012AC5C File Offset: 0x0012905C
        private void GrabBegin()
        {
            float     num       = float.MaxValue;
            Grabbable grabbable = null;
            GrabPoint grabPoint = null;

            foreach (Grabbable grabbable2 in this.m_grabCandidates.Keys)
            {
                if (!grabbable2.IsGrabbed || grabbable2.AllowOffhandGrab)
                {
                    foreach (GrabPoint grabPoint2 in grabbable2.GrabPoints)
                    {
                        Vector3 b            = grabPoint2.GrabCollider.ClosestPointOnBounds(this.m_gripTransform.position);
                        float   sqrMagnitude = (this.m_gripTransform.position - b).sqrMagnitude;
                        if (sqrMagnitude < num)
                        {
                            num       = sqrMagnitude;
                            grabbable = grabbable2;
                            grabPoint = grabPoint2;
                        }
                    }
                }
            }
            this.GrabVolumeEnable(false);
            if (grabbable != null)
            {
                if (grabbable.IsGrabbed)
                {
                    grabbable.GrabbedHand.OffhandGrabbed(grabbable);
                }
                this.GrabbableGrab(grabbable, grabPoint);
            }
        }
Esempio n. 3
0
        // Token: 0x06003B51 RID: 15185 RVA: 0x0012A9A8 File Offset: 0x00128DA8
        private void OnTriggerExit(Collider otherCollider)
        {
            GrabTrigger component = otherCollider.GetComponent <GrabTrigger>();

            if (component == null)
            {
                return;
            }
            Grabbable grabbable = component.Grabbable;
            int       num       = 0;

            if (!this.m_grabCandidates.TryGetValue(grabbable, out num))
            {
                return;
            }
            if (num > 1)
            {
                this.m_grabCandidates[grabbable] = num - 1;
            }
            else
            {
                grabbable.OverlapEnd(this);
                this.m_grabCandidates.Remove(grabbable);
            }
        }
Esempio n. 4
0
 // Token: 0x06003B37 RID: 15159 RVA: 0x0012A3CB File Offset: 0x001287CB
 public void SetGrabbable(Grabbable grabbable)
 {
     if (this.m_grabbable != null)
     {
         throw new InvalidOperationException("GrabTrigger: Grabbable already set by a different grab point -- make sure multiple grab points are not referencing the same collider.");
     }
     this.m_grabbable = grabbable;
 }
Esempio n. 5
0
        // Token: 0x06003B50 RID: 15184 RVA: 0x0012A928 File Offset: 0x00128D28
        private void OnTriggerEnter(Collider otherCollider)
        {
            GrabTrigger component = otherCollider.GetComponent <GrabTrigger>();

            if (component == null)
            {
                return;
            }
            Grabbable grabbable = component.Grabbable;
            int       num       = 0;

            this.m_grabCandidates.TryGetValue(grabbable, out num);
            this.m_grabCandidates[grabbable] = num + 1;
            if (num == 0)
            {
                grabbable.OverlapBegin(this);
                if (this.m_wasGrabVolumeEnabled == this.m_grabVolumeEnabled)
                {
                    this.m_trackedController.PlayHapticEvent(320f, 0.25f, 0.05f);
                }
            }
        }
Esempio n. 6
0
 // Token: 0x06003B5D RID: 15197 RVA: 0x0012AF1C File Offset: 0x0012931C
 private void GrabbableGrab(Grabbable grabbable, GrabPoint grabPoint)
 {
     this.m_grabbedGrabbable = grabbable;
     this.m_grabbedGrabbable.GrabBegin(this, grabPoint);
     this.m_grabbedHandPose = this.m_grabbedGrabbable.HandPose;
 }