Exemple #1
0
 private void Update()
 {
     if (!FocusedRoadNetwork)
     {
         return;
     }
     FocusedRoadNetwork.Update();
 }
Exemple #2
0
        private sBehaviour DoConnectOrCreateNodes(Event myEvent, Vector3 hitPoint, Vector3 hitNormal)
        {
            if (!myEvent.control)
            {
                return(null);
            }

            var  currentSelection      = GetCurrentlySelectedNodes();
            Node currentlySelectedNode = null;

            if (!currentSelection.IsNullOrEmpty() && currentSelection.Count == 1)
            {
                currentlySelectedNode = currentSelection[0];
            }

            int selectionMouseNum = 2;

            if (_placementKey.Value == ENodePlacementKey.RightMouse)
            {
                selectionMouseNum = 1;
            }
            sBehaviour createdObject = null;

            if (myEvent.type == EventType.MouseDown)
            {
                if (myEvent.button != selectionMouseNum)
                {
                    return(null);
                }
                if (_currentHoverNode == null)
                {
                    // Create a new node and set the selection to it
                    createdObject = FocusedRoadNetwork.CreateNewNode(hitPoint, Vector3.up, currentlySelectedNode, _currentConfiguration, FocusedRoadNetwork.CurrentNodeConfiguration);
                    SetCurrentlySelectedNodes((Node)createdObject);
                    myEvent.Use();
                    FocusedRoadNetwork.ForceThink();
                }
                else if (_currentHoverNode != null)
                {
                    // Connect two nodes
                    var currentSelectedNode = currentlySelectedNode;
                    if (currentSelectedNode != null)
                    {
                        if (myEvent.button == selectionMouseNum && myEvent.control)
                        {
                            createdObject = FocusedRoadNetwork.ConnectNodes(currentSelectedNode, _currentHoverNode,
                                                                            _currentConfiguration);
                        }
                    }
                    myEvent.Use();
                    SetCurrentlySelectedNodes(_currentHoverNode);
                    FocusedRoadNetwork.ForceThink();
                }
            }
            return(createdObject);
        }