private void NodeClicked(Node node, Vector2 location) { if (!IsValidNode(node)) { return; } if (CurrentlySelectedNode == null || _resetRequired) { CurrentlySelectedNode = node; _resetRequired = false; } else if (CurrentlySelectedNode != null && CurrentlySelectedNode != node) { if (CurrentlySelectedNode.ContainsNode(node)) { CurrentlySelectedNode.RemoveNode(node); node.RememberColorState(ColorState.None); node.RemoveParent(node); } else { CurrentlySelectedNode.AddLinkedNode(node); node.Parents.Add(CurrentlySelectedNode); node.RememberColorState(ColorState.Glow); } CurrentlySelectedNode = CurrentlySelectedNode; _resetRequired = true; } }
private void UnselectNode() { if (CurrentlySelectedNode != null) { CurrentlySelectedNode.SetSelected(false); } CurrentlySelectedNode = null; }
//-------------------------------------- // Util //-------------------------------------- private void SelectNode(UINode node, bool selected) { if (selected) { if (CurrentlySelectedNode != null) { CurrentlySelectedNode.SetSelected(false); } CurrentlySelectedNode = node; CurrentlySelectedNode.SetSelected(true); } else { node.SetSelected(false); CurrentlySelectedNode = null; } }
public override void Update(GameTime gameTime) { var mouseState = GameMouse.GetState(); if (mouseState.LeftButton == ButtonState.Released && _previousMouseState.LeftButton == ButtonState.Pressed) { if (!(CurrentlySelectedNode != null && CurrentlySelectedNode.IsMouseDown)) { // Create a new node, and also set it to be the newest created node if (CurrentlySelectedNode != null) { CurrentlySelectedNode.SetColorState(ColorState.None); } CurrentlySelectedNode = CreateNode((int)World.MouseInWorld.X, (int)World.MouseInWorld.Y); CurrentlySelectedNode.SetColorState(ColorState.DarkDark); } } _previousMouseState = mouseState; }