Пример #1
0
    void OnMouseExit()
    {
        if (!enabled)
        {
            return;
        }

        editState state = _editor.GetState();

        if (state == editState.Create)
        {
            _renderer.material.color = restColor;
        }
        if (transform.parent.childCount > 1)
        {
            for (var i = 0; i < transform.parent.childCount; i++)
            {
                if (state == editState.Edit && transform.parent.parent.gameObject == _editor._selected)
                {
                    transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = editColor;
                }
                else
                {
                    transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color = restColor;
                }
            }
        }
        else
        {
        }
    }
Пример #2
0
    void OnMouseDown()
    {
        if (!enabled)
        {
            return;
        }

        editState state = _editor.GetState();

        if (state == editState.Create)
        {
            if (this.transform.parent.name == "QFloor(Clone)")
            {
                String clicked_object = this.transform.parent.name;
                if (clicked_object == "QFloor(Clone)" || clicked_object == "QFloor (1)")
                {
                    //editor.PlaceQubit(_transform.position + Vector3.up * 5f);
                    _editor.PlaceQubitByIndex(_qubit.index);
                }
            }
            else
            {
                var newIndex = _qubit.index + pointsTowards;
                //editor.PlaceQubit(newPos);
                _editor.PlaceQubitByIndex(newIndex);
            }
            _renderer.material.color = restColor;
            //editor.SetState(editState.Edit);
        }
        else if (state == editState.Edit || state == editState.Rest)
        {
            if (state == editState.Rest)
            {
                _editor.SetState(editState.Edit);
            }
            if (_editor._selected)
            {
                _editor._selected.GetComponent <Qubit>().Deselect();
            }

            // Make sure we're not selecting part of the editor
            if (!this.transform.parent.transform.parent.gameObject.GetComponent <Editor>())
            {
                //_editor._selected = transform.parent.transform.parent.gameObject;
                _editor.SelectQubit(transform.parent.transform.parent.gameObject);

                for (int i = 0; i < transform.parent.childCount; i++)
                {
                    transform.parent.GetChild(i).gameObject.GetComponent <availableFace>()._renderer.material.color = editColor;
                }
            }
        }
    }
Пример #3
0
 public void OnModeSwitch(editState state)
 {
     if (state == editState.Create)
     {
         _renderer.material.color = restColor;
     }
     else
     {
         if (transform.parent.childCount > 1)
         {
             for (var i = 0; i < transform.parent.childCount; i++)
             {
                 transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color =
                     restColor;
             }
         }
     }
 }
Пример #4
0
    public void SetState(editState newState)
    {
        //Debug.Log("state now equal to " + newState);
        var oldState = _state;

        Ray rayToFace = _camera.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(rayToFace, out RaycastHit currentFace))
        {
            if (currentFace.transform.gameObject.GetComponent <availableFace>())
            {
                currentFace.transform.gameObject.GetComponent <availableFace>().OnModeSwitch(oldState);
            }
        }

        if (newState != editState.Edit)
        {
            if (_selected)
            {
                _selected.GetComponent <Qubit>().Deselect();
                _selected = null;
            }

            Destroy(transformInstance);
        }

        if (newState == editState.Create)
        {
            Destroy(GhostBlock);
            GhostBlock = MakeGhostBlock(placingQubit);
        }
        else // (newState != editState.Create)
        {
            Destroy(GhostBlock);
            GhostBlock = null;
        }

        if (newState == editState.Rest && oldState == editState.Create)
        {
            Destroy(transformInstance);
        }

        _state = newState;
    }
Пример #5
0
    void OnMouseEnter()
    {
        if (!enabled)
        {
            return;
        }


        editState state = _editor.GetState();

        if (state == editState.Create)
        {
//            _renderer.material.color = hoverColor;
            _editor.GhostBlock.transform.position = _editor.indexToPosition(_qubit.index + pointsTowards);
        }

        /*else
         * {
         *  if (transform.parent.childCount > 1)
         *  {
         *      if (_editor._selected != _qubit.gameObject)
         *      {
         *          for (var i = 0; i < transform.parent.childCount; i++)
         *          {
         *              transform.parent.GetChild(i).gameObject.GetComponent<MeshRenderer>().material.color =
         *                  hoverColor;
         *          }
         *      }
         *  }
         *  else
         *  {
         *      _renderer.material.color = restColor;
         *  }
         * }
         */
    }
Пример #6
0
    private void OnMouseOver()
    {
        if (!enabled)
        {
            return;
        }
        editState state = _editor.GetState();

        if (state == editState.Create)
        {
            if (_editor.level != null)
            {
                switch (_editor.placingQubit.name)
                {
                case "QRails-v4":
                    if (_editor.level.GetResource(0) == 0)
                    {
                        _renderer.material.color = invalidColor;
                    }
                    else
                    {
                        _renderer.material.color = hoverColor;
                    }
                    break;

                case "QTurn-v3":
                    if (_editor.level.GetResource(1) == 0)
                    {
                        _renderer.material.color = invalidColor;
                    }
                    else
                    {
                        _renderer.material.color = hoverColor;
                    }
                    break;

                case "QSlant-v4":
                    if (_editor.level.GetResource(2) == 0)
                    {
                        _renderer.material.color = invalidColor;
                    }
                    else
                    {
                        _renderer.material.color = hoverColor;
                    }
                    break;

                default:
                    break;
                }
            }
            else
            {
                _renderer.material.color = hoverColor;
            }
        }
        else
        {
            if (_editor._selected == _qubit.gameObject)
            {
                for (var i = 0; i < transform.parent.childCount; i++)
                {
                    transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color =
                        editColor;
                }
            }
            else if (transform.parent.childCount > 1 && !_qubit.editable)
            {
                for (var i = 0; i < transform.parent.childCount; i++)
                {
                    transform.parent.GetChild(i).gameObject.GetComponent <MeshRenderer>().material.color =
                        selectColor;
                }
            }
            else
            {
                _renderer.material.color = restColor;
            }
        }
    }