Ejemplo n.º 1
0
        private void HighlightObjectOnUnUse(object sender, ObjectInteraction.InteractableObjectEventArgs e)
        {
            if (_gameObject == null)
            {
                return;
            }

            VarwinHighlightEffect highlighter = _highlightOverriderGameObject
                ? _highlightOverriderGameObject.GetComponent <VarwinHighlightEffect>()
                : _gameObject.GetComponent <VarwinHighlightEffect>();

            if (highlighter == null)
            {
                return;
            }

            if (highlighter.IsHighlightEnabled)
            {
                _lastHighlightedInputController?.UnHighlightObject(this, e);
                highlighter.SetHighlightEnabled(true);
            }

            highlighter.SetConfiguration(DefaultHighlightConfig);
            _lastHighlightedInputController = this;
        }
Ejemplo n.º 2
0
        private void OnGrabEndVoid(
            object sender,
            ObjectInteraction.InteractableObjectEventArgs interactableObjectEventArgs)
        {
            if (Settings.Instance().Multiplayer)
            {
                ChangeOwner();
                ObjectController.photonView.RPC("OnGrabEndRpc", PhotonTargets.All);
            }
            else
            {
                foreach (IGrabEndAware grabEndAware in _grabEndList)
                {
                    grabEndAware?.OnGrabEnd();
                }

                if (_grabPoint == null)
                {
                    return;
                }

                //Fixed joint grab attach in progress...

                /*GrabPointJoint grabAttach = _gameObject.GetComponent<GrabPointJoint>();
                 * grabAttach.ReturnAttachPoint();
                 * Object.Destroy(grabAttach);*/
            }
        }
Ejemplo n.º 3
0
 private void EditorUngrabbed(
     object sender,
     ObjectInteraction.InteractableObjectEventArgs interactableObjectEventArgs)
 {
     if (Settings.Instance().Multiplayer)
     {
         ObjectController.photonView.RPC("OnUngrabbedRpc", PhotonTargets.All);
     }
     else
     {
         _onEditorGrabEnd();
     }
 }
Ejemplo n.º 4
0
        private void UnHighlightObject(object sender, ObjectInteraction.InteractableObjectEventArgs e)
        {
            if (_gameObject == null)
            {
                return;
            }

            VarwinHighlightEffect highlighter = _highlightOverriderGameObject
                ? _highlightOverriderGameObject.GetComponent <VarwinHighlightEffect>()
                : _gameObject.GetComponent <VarwinHighlightEffect>();

            if (highlighter == null)
            {
                return;
            }

            highlighter.SetHighlightEnabled(false);

            if (_lastHighlightedInputController == this)
            {
                _lastHighlightedInputController = null;
            }
            else
            {
                _nextToHighlightInputController = this;
            }

            if (_nextToHighlightInputController != null)
            {
                if (_nextToHighlightInputController != this)
                {
                    _nextToHighlightInputController.HighlightObject(this, e);
                }

                _nextToHighlightInputController = null;
            }

            if (sender == null)
            {
                return;
            }

            if (sender.GetType() == typeof(InputController))
            {
                _nextToHighlightInputController = this;
            }
        }
Ejemplo n.º 5
0
 private void OnUseEndVoid(
     object sender,
     ObjectInteraction.InteractableObjectEventArgs interactableObjectEventArgs)
 {
     if (Settings.Instance().Multiplayer)
     {
         ChangeOwner();
         ObjectController.photonView.RPC("OnUseEndRpc", PhotonTargets.All);
     }
     else
     {
         foreach (IUseEndAware useEndAware in _useEndList)
         {
             useEndAware?.OnUseEnd();
         }
     }
 }
Ejemplo n.º 6
0
        private void OnAnyGrabEnd(object sender, ObjectInteraction.InteractableObjectEventArgs e)
        {
            if (!_isRoot)
            {
                return;
            }

            CollisionController collisionController = _gameObject.GetComponent <CollisionController>();

            if (collisionController != null)
            {
                collisionController.enabled = false;
                Object.Destroy(collisionController);
            }

            InputAdapter.Instance.PlayerController.Nodes.GetControllerReference(e.Hand).Controller.AddColliders(null);
        }
Ejemplo n.º 7
0
 private void OnTouchStartVoid(
     object sender,
     ObjectInteraction.InteractableObjectEventArgs interactableObjectEventArgs)
 {
     if (Settings.Instance().Multiplayer)
     {
         ChangeOwner();
         ObjectController.photonView.RPC("OnTouchStartRpc", PhotonTargets.All);
     }
     else
     {
         foreach (ITouchStartAware touchStartAware in _touchStartList)
         {
             touchStartAware?.OnTouchStart();
         }
     }
 }
Ejemplo n.º 8
0
        private void OnUseStartVoid(
            object sender,
            ObjectInteraction.InteractableObjectEventArgs interactableObjectEventArgs)
        {
            if (Settings.Instance().Multiplayer)
            {
                ChangeOwner();
                ObjectController.photonView.RPC("OnUseStartRpc", PhotonTargets.All);
            }
            else
            {
                UsingContext context = new UsingContext {
                    GameObject = Vio.GetUsingObject(), Hand = interactableObjectEventArgs.Hand
                };

                foreach (IUseStartAware useStartAware in _useStartList)
                {
                    useStartAware?.OnUseStart(context);
                }
            }
        }
Ejemplo n.º 9
0
        private void OnAnyGrabStart(object sender, ObjectInteraction.InteractableObjectEventArgs e)
        {
            if (!_isRoot)
            {
                return;
            }

            CollisionController collisionController = _gameObject.GetComponent <CollisionController>();

            if (collisionController == null || !collisionController.enabled)
            {
                _gameObject.AddComponent <CollisionController>().InitializeController(this);
            }

            //all I can say is OOF; no regrets
            var hc = InputAdapter.Instance.PlayerController.Nodes.GetControllerReference(e.Hand);

            hc.Controller.AddColliders(hc.Controller.GetGrabbedObject().GetComponentsInChildren <Collider>());

            ControllerEvents = InputAdapter.Instance.ControllerInput.ControllerEventFactory.GetFrom(_vio.GetGrabbingObject());
        }
Ejemplo n.º 10
0
        private void OnGrabStartVoid(
            object sender,
            ObjectInteraction.InteractableObjectEventArgs interactableObjectEventArgs)
        {
            if (Settings.Instance().Multiplayer)
            {
                ChangeOwner();
                ObjectController.photonView.RPC("OnGrabStartRpc", PhotonTargets.All);
            }
            else
            {
                GrabingContext context = new GrabingContext {
                    GameObject = Vio.GetGrabbingObject(), Hand = interactableObjectEventArgs.Hand
                };

                foreach (IGrabStartAware startAware in _grabStartList)
                {
                    startAware?.OnGrabStart(context);
                }

                if (_grabPoint == null)
                {
                    return;
                }

                //Fixed joint grab attach in progress...

                /*Transform grabPosition =
                 *  context.GameObject.name.Contains("Left") ?
                 *      _grabPoint.GetLeftGrabPoint() :
                 *      _grabPoint.GetRightGrabPoint();
                 *
                 * PlayerController.PlayerNodes.ControllerNode handNode = context.GameObject.name.Contains("Left") ?
                 *  InputAdapter.Instance.PlayerController.Nodes.LeftHand :
                 *  InputAdapter.Instance.PlayerController.Nodes.RightHand;
                 *
                 * _gameObject.AddComponent<GrabPointJoint>().Init(handNode, grabPosition);*/
            }
        }