Пример #1
0
        public override void OnMouseDown(Vector2d mousepos)
        {
            base.OnMouseDown(mousepos);
            var gamepos = ScreenToGameCoords(mousepos);

            Stop();//double check
            if (!SelectLine(gamepos))
            {
                CurrentTools.SetTool(CurrentTools.SelectTool);
                CurrentTools.SelectTool.OnMouseDown(mousepos);
                IsLeftMouseDown = false;
                _hoverline      = null;
            }
            else
            {
                UpdateHoverline(gamepos);
            }
        }
Пример #2
0
 public void Paste()
 {
     if (_copybuffer.Count != 0)
     {
         Stop(false);
         var pasteorigin = GetCopyOrigin();
         var diff        = pasteorigin - _copyorigin;
         Unselect();
         Active = true;
         if (CurrentTools.SelectedTool != this)
         {
             CurrentTools.SetTool(this);
         }
         using (var trk = game.Track.CreateTrackWriter())
         {
             game.Track.UndoManager.BeginAction();
             foreach (var line in _copybuffer)
             {
                 var add = line.Clone();
                 add.ID         = GameLine.UninitializedID;
                 add.Position  += diff;
                 add.Position2 += diff;
                 if (add is StandardLine stl)
                 {
                     stl.CalculateConstants();
                 }
                 add.SelectionState = SelectionState.Selected;
                 trk.AddLine(add);
                 var selectinfo = new LineSelection(add, true, null);
                 _selection.Add(selectinfo);
                 _selectedlines.Add(add.ID);
             }
             game.Track.UndoManager.EndAction();
         }
         _selectionbox = GetBoxFromSelected(_selection);
         game.Track.NotifyTrackChanged();
     }
 }
Пример #3
0
 private void DeferToMoveTool()
 {
     CurrentTools.SetTool(CurrentTools.MoveTool);
 }