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 ();
}
}
}