Пример #1
0
        public void SetSelectedNode(NodeBehaviour nodeBehaviour)
        {
            if (_selectedNode == null)
            {
                if (_inSelectionState)
                {
                    if (!nodeBehaviour.IsSelected())
                    {
                        Debug.Log("This tile is currently not selected");
                        return;
                    }

                    ChangeColorsToGreen();
                }
                else
                {
                    _selectedNode = nodeBehaviour;
                    ChangeColorsToBlue();
                }
            }
            else
            {
                if (_inSelectionState && nodeBehaviour.IsSelected())
                {
                    ChangeColorsToBlue();
                }
                else if (_inSelectionState && !nodeBehaviour.IsSelected())
                {
                    Debug.Log("no blue or green tile clicked");
                    return;
                }
                else
                {
                    ChangeColorsToOld();
                }

                _selectedNode = nodeBehaviour;

                if (_inSelectionState)
                {
                    ChangeColorsToGreen();
                }
                else
                {
                    ChangeColorsToBlue();
                }
            }

            if (!_inSelectionState)
            {
                _selection.SetYesNoLocation(Camera.main.WorldToScreenPoint(_selectedNode.transform.position));
            }
            else
            {
                _selection.SetYesNoBuildLocation(Camera.main.WorldToScreenPoint(_selectedNode.transform.position));
            }

            if (_selectedNode.GetComponent <BuildingPrefab>() != null)
            {
                _selection.SetSidePanel(_selectedNode.GetComponent <BuildingPrefab>().MyBuilding);
            }
            else if (_selectedNode.GetComponent <PlantPrefab>() != null)
            {
                _selection.SetSidePanel(_selectedNode.GetComponent <PlantPrefab>().MyPlant);
            }
            else if (_selection.SidePannelActive())
            {
                _selection.ToggleSidePanel();
            }
            if (_selectionSize != 4 || _inSelectionState)
            {
                return;
            }
            if (!_selection.YesNoActive())
            {
                _selection.ToggleYesNo(true);
            }
        }