private void Update() { if (!FocusedRoadNetwork) { return; } FocusedRoadNetwork.Update(); }
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); }