Knot3.Game.Input.EdgeMovement.SelectEdges C# (CSharp) Method

SelectEdges() private method

Führt die Auswahl von Kanten mit Linksklick und evtl. Shift/Ctrl aus.
private SelectEdges ( GameTime time ) : void
time Microsoft.Xna.Framework.GameTime
return void
        private void SelectEdges(GameTime time)
        {
            // Überprüfe, ob das Objekt über dem die Maus liegt, eine Pipe ist
            if (World.SelectedObject is Pipe) {
                Pipe pipe = World.SelectedObject as Pipe;

                // Bei einem Linksklick...
                if (Screen.InputManager.LeftMouseButton == ClickState.SingleClick) {
                    // Zeichne im nächsten Frame auf jeden Fall neu
                    World.Redraw = true;

                    try {
                        Edge selectedEdge = pipe.Edge;
                        Log.Debug ("knot.Count () = ", Knot.Count ());

                        // Ctrl gedrückt
                        if (Screen.InputManager.KeyHeldDown (KnotInputHandler.LookupKey (Knot3PlayerAction.AddToEdgeSelection))) {
                            Knot.AddToSelection (selectedEdge);
                        }
                        // Shift gedrückt
                        else if (Screen.InputManager.KeyHeldDown (KnotInputHandler.LookupKey (Knot3PlayerAction.AddRangeToEdgeSelection))) {
                            Knot.AddRangeToSelection (selectedEdge);
                        }
                        // keine Taste gedrückt
                        else {
                            if (!Knot.IsSelected (selectedEdge)) {
                                Knot.ClearSelection ();
                                Knot.AddToSelection (selectedEdge);
                            }
                        }
                    }
                    catch (ArgumentOutOfRangeException exp) {
                        Log.Debug (exp);
                    }
                }
            }

            // Wenn das selektierte Objekt weder Kante noch Pfeil ist...
            else if (!(World.SelectedObject is Arrow)) {
                // dann leert ein Linksklick die Selektion
                if (Screen.InputManager.LeftMouseButton == ClickState.SingleClick) {
                    Knot.ClearSelection ();
                }
            }
        }