private void Field_Click(object sender, EventArgs e) { NavigationFocus.Focus(); if (View.Editor == null || View.Editor.ActiveTool == null) { return; } var mE = (MouseEventArgs)e; Vector2f pf = ren.ImageToGame(mE.X, mE.Y - (Field.Height - Field.Image.Height) / 2); Position p = new Position((int)Math.Round(pf.X), (int)Math.Round(pf.Y)); int actionIndex = 0; if (mE.Button == MouseButtons.Left) { actionIndex = 1; } if (mE.Button == MouseButtons.Right) { actionIndex = 2; } if (mE.Button == MouseButtons.Left && ModifierKeys == Keys.Shift) { actionIndex = 2; } if (mE.Button == MouseButtons.Middle) { actionIndex = 3; } if (mE.Button == MouseButtons.Left && ModifierKeys == Keys.Control) { actionIndex = 3; } if (actionIndex == 0) { return; } if (!Game.State.IsPositionValid(p)) { return; } List <GameAction> actions = View.Editor.ActiveTool.Click(Game, actionIndex, p).ToList(); View.Editor.AddActions(actions); }
private void GameTreePaintBox_Click(object sender, EventArgs e) { NavigationFocus.Focus(); if (View.Editor == null) { return; } var mE = (MouseEventArgs)e; Point pixelPos = mE.Location; int x = (pixelPos.X - GameTreePaintBox.AutoScrollPosition.X) / TreeBlockSize; int y = (pixelPos.Y - GameTreePaintBox.AutoScrollPosition.Y) / TreeBlockSize; int? node = Game.Tree.NodeAtPosition(new Vector2i(x, y)); if (node == null) { return; } View.Editor.AddActions(new GameAction[] { new SelectStateAction((int)node) }); }