Example #1
0
        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;
            }
        }
Example #4
0
        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;
        }