void cursors_Click(object sender, CursorEventArgs e) { if (ShowPins) { int cursorX = (int)Math.Round(e.Position.X * ScreenManager.GraphicsDevice.Viewport.Width); int cursorY = (int)Math.Round((1.0-e.Position.Y) * ScreenManager.GraphicsDevice.Viewport.Height); TransformWindowToImage(cursorX, cursorY, out cursorX, out cursorY); double minDistance = double.MaxValue; int index = -1; Pin[] pins = CurrentPins; for (int ii = 0; ii < pins.Length; ii++) { Pin p = pins[ii]; double distance = Math.Sqrt(Math.Pow(p.X - cursorX, 2) + Math.Pow(p.Y - cursorY, 2)); if (distance < minDistance) { minDistance = distance; index = ii; } } if (minDistance < PIN_DISTANCE) { informationPane.Header = pins[index].Name; informationPane.Text = pins[index].Description; if (pins[index].BioSystems != null) { foreach (string bio in pins[index].BioSystems) { informationPane.AddIcon(IconTextures[bio]); } } } else { informationPane.Header = ""; informationPane.Text = ""; informationPane.ClearIcons(); } } }
private void OnCursorEvent(object sender, CursorEventArgs e) { if((int)Math.Round(e.Position.Y) > 0.5) { selectedEntry = (int)Math.Round(e.Position.X * (Math.Ceiling(this.MenuEntries.Count / 2.0))); } else { selectedEntry = (int)Math.Ceiling(this.MenuEntries.Count / 2.0) + (int)Math.Round(e.Position.X * (this.MenuEntries.Count / 2)); } if (e.WasClick) { // TODO: Make multiplayer OnSelectEntry(selectedEntry, PlayerIndex.One); } }