public override void OnMouseUpOnElement(MouseEvent args, GuiElementMap mapElem) { if (args.Button == EnumMouseButton.Right) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double x = viewPos.X + mapElem.Bounds.renderX; double y = viewPos.Y + mapElem.Bounds.renderY; if (waypoint.Pinned) { x = (float)GameMath.Clamp(x, mapElem.Bounds.renderX + 2, mapElem.Bounds.renderX + mapElem.Bounds.InnerWidth - 2); y = (float)GameMath.Clamp(y, mapElem.Bounds.renderY + 2, mapElem.Bounds.renderY + mapElem.Bounds.InnerHeight - 2); } double dX = args.X - x; double dY = args.Y - y; if (Math.Abs(dX) < 7 && Math.Abs(dY) < 7) { if (editWpDlg != null) { editWpDlg.TryClose(); editWpDlg.Dispose(); } editWpDlg = new GuiDialogEditWayPoint(capi, waypoint, waypointIndex); editWpDlg.TryOpen(); args.Handled = true; } } }
public override void OnMouseUpOnElement(MouseEvent args, GuiElementMap mapElem) { if (args.Button == EnumMouseButton.Right) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double x = viewPos.X + mapElem.Bounds.renderX; double y = viewPos.Y + mapElem.Bounds.renderY; if (waypoint.Pinned) { mapElem.ClampButPreserveAngle(ref viewPos, 2); x = viewPos.X + mapElem.Bounds.renderX; y = viewPos.Y + mapElem.Bounds.renderY; x = (float)GameMath.Clamp(x, mapElem.Bounds.renderX + 2, mapElem.Bounds.renderX + mapElem.Bounds.InnerWidth - 2); y = (float)GameMath.Clamp(y, mapElem.Bounds.renderY + 2, mapElem.Bounds.renderY + mapElem.Bounds.InnerHeight - 2); } double dX = args.X - x; double dY = args.Y - y; if (Math.Abs(dX) < 7 && Math.Abs(dY) < 7) { if (editWpDlg != null) { editWpDlg.TryClose(); editWpDlg.Dispose(); } editWpDlg = new GuiDialogEditWayPoint(capi, waypoint, waypointIndex); editWpDlg.TryOpen(); editWpDlg.OnClosed += () => capi.Gui.RequestFocus(capi.ModLoader.GetModSystem <WorldMapManager>().worldMapDlg); args.Handled = true; } } }
public override void OnMouseUpOnElement(MouseEvent args, GuiElementMap mapElem) { if (args.Button == EnumMouseButton.Right) { Vec2f viewPos = new Vec2f(); mapElem.TranslateWorldPosToViewPos(waypoint.Position, ref viewPos); double mouseX = args.X - mapElem.Bounds.renderX; double mouseY = args.Y - mapElem.Bounds.renderY; if (Math.Abs(viewPos.X - mouseX) < 5 && Math.Abs(viewPos.Y - mouseY) < 5) { if (editWpDlg != null) { editWpDlg.TryClose(); editWpDlg.Dispose(); } editWpDlg = new GuiDialogEditWayPoint(capi, waypoint, waypointIndex); editWpDlg.TryOpen(); args.Handled = true; } } }